/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   R E L A T I V E S   A U   R E C U I T   S I M U L E  :                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrk/recuit_2D.19$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1994??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
               Bblock
               DoIn(point,PREMIER_POINT_DU_RESEAU,DERNIER_POINT_DU_RESEAU,I)
                    Bblock
                    EGAL(cx,ASD1(ACCES_POINT(point),x));
                    EGAL(cy,ASD1(ACCES_POINT(point),y));
                    EGAL(cz,ASD1(ACCES_POINT(point),z));
                                        /* Recuperation de la position du point courant (cx,cy,cz)...                                */
                    EGAL(dcx,ACCES_ROUGE(point));
                    EGAL(dcy,ACCES_VERTE(point));
                    EGAL(dcz,ACCES_BLEUE(point));
                                        /* Forcage arbitraire des derivees (dcx,dcy,dcz) au point courant.                           */

                    CALS(memorisation_1_point_08(SOUS(cx,Xcentre_ESPACE)
                                                ,SOUS(cy,Ycentre_ESPACE)
                                                ,SOUS(cz,Zcentre_ESPACE)
                                                ,dcx
                                                ,dcy
                                                ,dcz
                                                ,numero_des_points
                                                ,MUL2(grossissement_du_rayon_de_visualisation_des_points
                                                     ,rayon_de_visualisation
                                                      )
                                                 )
                         );
                                        /* Memorisation du point courant...                                                          */
                    Eblock
               EDoI

               Test(IL_FAUT(materialiser_les_connexions))
                    Bblock
                    DoIn(pointI,PREMIER_POINT_DU_RESEAU,DERNIER_POINT_DU_RESEAU,I)
                         Bblock
                         DoIn(pointJ,PREMIER_POINT_DU_RESEAU,DERNIER_POINT_DU_RESEAU,I)
                              Bblock
                              Test(IFET(EST_VRAI(ACCES_CONNEXION(pointI,pointJ)),IFGT(pointI,pointJ)))
                                   Bblock
                                        /* Cas ou les points 'pointI' et 'pointJ' sont 4-connectes : on materialise la connexion...  */
                                        /* Le test 'IFGT(...)' est du au fait que si 'pointI' et 'pointJ' sont 4-connectes, alors    */
                                        /* 'pointJ' et 'pointI' le sont aussi, et qu'il ne faut donc pas materialiser deux fois la   */
                                        /* connexion...                                                                              */
                                   Repe(NOMBRE_DE_POINTS_SUR_UNE_CHAINE_DE_CONNEXION)
                                        Bblock
                                        DEFV(Float,INIT(lambda
                                                       ,ADD2(COORDONNEE_BARYCENTRIQUE_MINIMALE
                                                            ,SCAL(compteur_des_repetitions_du_Repe
                                                                 ,SOUS(ADD3(UN,NOMBRE_DE_POINTS_SUR_UNE_CHAINE_DE_CONNEXION,UN)
                                                                      ,PREMIERE_ITERATION_D_UN_Repe
                                                                       )
                                                                 ,SOUS(COORDONNEE_BARYCENTRIQUE_MAXIMALE
                                                                      ,COORDONNEE_BARYCENTRIQUE_MINIMALE
                                                                       )
                                                                  )
                                                             )
                                                        )
                                             );
                                        /* Definition de la coordonnee barycentrique d'interpolation des coordonnees et des          */
                                        /* couleurs des points de l'espace. On notera le 'ADD3(UN,...,UN)' destine a prendre en      */
                                        /* compte le fait que 'NOMBRE_DE_POINTS_SUR_UNE_CHAINE_DE_CONNEXION' exclut les extremites   */
                                        /* qui correspondent aux points du reseau eux-memes. On notera que 'lambda' ne peut etre     */
                                        /* egal ni a 'COORDONNEE_BARYCENTRIQUE_MINIMALE' ni a 'COORDONNEE_BARYCENTRIQUE_MAXIMALE'    */
                                        /* et qu'ainsi on ne va pas reprendre en compte les extremites de la chaine qui ont deja     */
                                        /* ete marques juste avant...                                                                */

                                        EGAL(cx,BARY(ASD1(ACCES_POINT(pointI),x),ASD1(ACCES_POINT(pointJ),x),lambda));
                                        EGAL(cy,BARY(ASD1(ACCES_POINT(pointI),y),ASD1(ACCES_POINT(pointJ),y),lambda));
                                        EGAL(cz,BARY(ASD1(ACCES_POINT(pointI),z),ASD1(ACCES_POINT(pointJ),z),lambda));
                                        /* Recuperation de la position du point courant (cx,cy,cz)...                                */
                                        EGAL(dcx,BARY(ACCES_ROUGE(pointI),ACCES_ROUGE(pointJ),lambda));
                                        EGAL(dcy,BARY(ACCES_VERTE(pointI),ACCES_VERTE(pointJ),lambda));
                                        EGAL(dcz,BARY(ACCES_BLEUE(pointI),ACCES_BLEUE(pointJ),lambda));
                                        /* Forcage arbitraire des derivees (dcx,dcy,dcz) au point courant.                           */

                                        CALS(memorisation_1_point_08(SOUS(cx,Xcentre_ESPACE)
                                                                    ,SOUS(cy,Ycentre_ESPACE)
                                                                    ,SOUS(cz,Zcentre_ESPACE)
                                                                    ,dcx
                                                                    ,dcy
                                                                    ,dcz
                                                                    ,numero_des_points
                                                                    ,NEUT(rayon_de_visualisation)
                                                                     )
                                             );
                                        /* Memorisation du point courant...                                                          */
                                        Eblock
                                   ERep
                                   Eblock
                              ATes
                                   Bblock
                                        /* Cas ou les points 'pointI' et 'pointJ' ne sont pas 4-connectes...                         */
                                   Eblock
                              ETes
                              Eblock
                         EDoI
                         Eblock
                    EDoI
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes
               Eblock



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.