/*************************************************************************************************************************************/ /* */ /* D E V E L O P P E M E N T T R I D I M E N S I O N N E L D ' U N E I M A G E F L O T T A N T E : */ /* */ /* */ /* Author of '$xci/develo_3D.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20040907150617). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N T E R F A C E ' listG ' : */ /* */ /* */ /* :Debut_listG: */ /* :Fin_listG: */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_BASE #include image_image_IMAGESF_EXT /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #define EXTRAIRE_LES_EXTREMA \ VRAI \ /* Faut-il extraire les extrema ('VRAI') ou bien prendre les arguments d'appel ('FAUX') ? */ #define PONDERATION_AX \ FDU #define PONDERATION_AY \ FDU /* Ponderations des images {AX,AY}. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E V E L O P P E M E N T T R I D I M E N S I O N N E L D ' U N E I M A G E F L O T T A N T E : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageAX),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageAY),NOM_PIPE)); DEFV(Float,INIT(ponderation_AX,PONDERATION_AX)); DEFV(Float,INIT(ponderation_AY,PONDERATION_AY)); /* Ponderations des images {AX,AY}. */ /*..............................................................................................................................*/ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("imageAX=""AX=",nom_imageAX); GET_ARGUMENT_C("imageAY=""AY=",nom_imageAY); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_L("drenormaliser=""dr=" ,IFdeveloppement_tridimensionnel_____faire_IFnormalisation_automatique_des_operandes ); GET_ARGUMENT_F("pax=""pAX=",ponderation_AX); GET_ARGUMENT_F("pay=""pAY=",ponderation_AY); GET_ARGUMENT_L("periodiser_X=""periodX=",IFdeveloppement_tridimensionnel_____periodiser_X); GET_ARGUMENT_L("periodiser_Y=""periodY=",IFdeveloppement_tridimensionnel_____periodiser_Y); GET_ARGUMENT_L("symetriser_X=""symetrX=",IFdeveloppement_tridimensionnel_____symetriser_X); GET_ARGUMENT_L("symetriser_Y=""symetrY=",IFdeveloppement_tridimensionnel_____symetriser_Y); GET_ARGUMENT_L("prolonger_X=""prolX=",IFdeveloppement_tridimensionnel_____prolonger_X); GET_ARGUMENT_L("prolonger_Y=""prolY=",IFdeveloppement_tridimensionnel_____prolonger_Y); GET_ARGUMENT_F("niveau_hors_image=""niveau=",IFdeveloppement_tridimensionnel_____niveau_hors_image); ) ); CALi(IFinitialisation(IFmageR,FZERO)); /* Initialisation de l'image Resultat. */ Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA,nom_imageA)))) Bblock Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA1,nom_imageAX)))) Bblock /* Chargement de la premiere image Argument. */ Test(PAS_D_ERREUR(CODE_ERROR(IloadF_image(IFmageA2,nom_imageAY)))) Bblock /* Chargement de la deuxieme image Argument. */ CALS(IFdeveloppement_tridimensionnel(IFmageR ,IFmageA ,ponderation_AX,IFmageA1 ,ponderation_AY,IFmageA2 ) ); /* Et "developpement tridimensionnel"... */ CALi(IupdateF_image(nom_imageR,IFmageR)); Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes RETU_Commande; Eblock ECommande