#!/bin/csh
#######################################################################################################################################
# #
# R E C H E R C H E D U M E I L L E U R C A D R A G E V E R T I C A L #
# P O U R U N E M O N T A G N E V U E D E C O T E : #
# #
# #
# Utilisation : #
# #
# $xci/montagne.12$Z <surface> #
# #
# #
# Author of '$xci/montagne.12$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
set surface=$1
if (-e $surface) then
FileTmpB nomM $M
# Nom de la montagne temporaire que l'on est oblige de generer. #
set unite=1.0
set dimensionY=$dimension_formatY
#AAAAMMJJ: set cadrage=`$xci/montagne.01$X A=$surface T=$xiio/BLANC R=$nomM Ty=0.0 cadrage=VRAI $formatI |& $CA` #
set cadrage=`$xci/montagne.01$X A=$surface T=$BLANC R=$nomM Ty=0.0 cadrage=VRAI $formatI Prme=VRAI`
# Recherche du cadrage avec une translation verticale nulle. #
FileTmpE nomM
set cadrageG=$cadrage[1]
set cadrageG=`$xcg/scale$X nombre=$cadrageG multiplicateur=$dimensionY diviseur=$unite entier=VRAI`
# Recherche de la plus grande ordonnee sur l'ensemble de la montagne. #
set cadrageL=$cadrage[2]
set cadrageL=`$xcg/scale$X nombre=$cadrageL multiplicateur=$dimensionY diviseur=$unite entier=VRAI`
# Recherche de la plus grande ordonnee sur la 'last' ligne de la montagne. #
@ amplitude = $cadrageG - $cadrageL
if ($amplitude < 0) then
@ amplitude = 0 - $amplitude
else
endif
# On calcule la valeur absolue de '$cadrageG - $cadrageL' (soit 'amplitude'). #
if ($amplitude >= $dimensionY) then
@ translationY = $dimensionY - $cadrageG
# Lorsque l'amplitude est plus grande que l'image, la translation verticale est donnee #
# uniquement par '$cadrageG', c'est-a-dire la plus grande ordonnee globale. #
else
if ($cadrageL >= 0) then
@ translationY = 0 - $cadrageL
# Sinon, et si la plus grande ordonnee de la 'last' ligne est positive (ce qui doit #
# induire un defaut en bas), on descend suffisamment pour qu'elle disparaisse. #
else
@ LtranslationY = 0 - $cadrageL
@ GtranslationY = $dimensionY - $cadrageG
if ($LtranslationY < $GtranslationY) then
@ translationY = $LtranslationY
else
@ translationY = $GtranslationY
endif
# Enfin, dans le dernier cas, on peut remonter l'image jusqu'a ce que, soit le plus #
# haut de la montagne ($cadrageG) touche en haut, soit le defaut du bas ($cadrageL) #
# "tangente" le bas de l'image. #
endif
endif
set translationY=`$xcg/scale$X nombre=$translationY multiplicateur=$unite diviseur=$dimensionY entier=FAUX`
# Recherche de la plus grande ordonnee sur la 'last' ligne de la montagne. #
echo $translationY
# Edition de la meilleure translation verticale pour la montagne argument. #
else
EROR "L'image argument n'existe pas."
endif