ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/comparaison/src/vct_comparaison.h
Revision: 351
Committed: Tue Jul 31 19:12:56 2012 UTC (12 years, 9 months ago) by francois
Content type: text/plain
Original Path: magic/lib/vectorisation/src/vct_comparaison.h
File size: 5662 byte(s)
Log Message:
Adaptation du comparateur en vue de la publi numerique. Plus visualisateur propre en VTK

File Contents

# User Rev Content
1 francois 283 //---------------------------------------------------------------------------
2    
3     #ifndef vct_comparisonH
4     #define vct_comparisonH
5     //---------------------------------------------------------------------------
6     #ifdef WINDOWS_VERSION
7     #ifdef BUILT_DLL_VECTORISATION
8     #define DLLPORTVECTORISATION __declspec(dllexport)
9     #else
10     #define DLLPORTVECTORISATION __declspec(dllimport)
11     #endif
12     #else
13     #define DLLPORTVECTORISATION
14     #endif
15     //----------------------------------------------------------------------------
16     #include <vector>
17     #include "ot_tenseur.h"
18     #include "vct.h"
19     #include "mg_gestionnaire.h"
20     #include "ot_tenseur.h"
21     #include <ostream>
22     #include "tpl_liste_entite.h"
23     #include "vct_comparaison_resultat.h"
24     #include"ot_mathematique.h"
25     //----------------------------------------------------------------------------
26    
27     using namespace std;
28    
29     class DLLPORTVECTORISATION VCT_COMPARAISON
30     {
31     public:
32     VCT_COMPARAISON(MG_GESTIONNAIRE *gst1,MG_GEOMETRIE *mgeo1,MG_GESTIONNAIRE *gst2,MG_GEOMETRIE *mgeo2);
33     ~VCT_COMPARAISON();
34    
35    
36    
37     void compare(class VCT_COMPARAISON_RESULTAT &cmp,MG_VOLUME* vol1=NULL,MG_VOLUME* vol2=NULL,class OT_CPU *cpu=NULL);
38     void trouve_similarite(void);
39     void trouve_identite(void);
40     void trouve_localise(VCT_COMPARAISON_RESULTAT &cmp);
41     void identifie_topologie_sous_jacente(VCT_COMPARAISON_RESULTAT &cmp,MG_FACE* face1,MG_FACE* face2,int& sommetparfait,int& areteparfait);
42     void identifie_correspondance(VCT_COMPARAISON_RESULTAT &cmp);
43     void trouve_modification_partielle(VCT_COMPARAISON_RESULTAT &cmp);
44     void recale_repere_reference(MG_FACE* faceref1,MG_FACE* faceref2,std::vector<OT_TENSEUR> &list);
45     OT_TENSEUR calcul_transformation(OT_VECTEUR_3DD &bary1,OT_VECTEUR_3DD &bary2,OT_TENSEUR &tns1,OT_TENSEUR &tns2);
46    
47     void choisir_une_couleur(double& val);
48     void affecter_les_couleurs(TPL_LISTE_ENTITE<int>& liste);
49     double recherche_couleur(MG_ELEMENT_TOPOLOGIQUE* ele);
50     void supprime_couleur(MG_ELEMENT_TOPOLOGIQUE* ele);
51    
52     int localise_courbe(MG_COURBE *crb1,MG_COURBE *crb2);
53     int localise_surface(MG_SURFACE *surf1,MG_SURFACE *surf2);
54     void change_point_inverse(double *xyz);
55     void change_point(double *xyz);
56 francois 351
57 francois 283
58     void active_affichage(void (*fonc)(char*));
59     /*virtual void trouver_les_identites(int affiche_couleur);
60     virtual void compare_les_deux_geometries(int affiche_couleur);
61     virtual void compare_les_deux_geometries_vectoriellement(int affiche_couleur);
62     virtual void compare_les_deux_geometries_inertiellement(int affiche_couleur);
63     virtual void compare_une_geometrie_inertiellement(int modele);
64     virtual void affecter_les_couleurs(int niveau);
65     virtual TPL_LISTE_ENTITE<int> get_liste_des_identitees();
66     virtual TPL_LISTE_ENTITE<int> get_liste_des_simalarite_vectorielle(int type_comparais);
67     virtual TPL_LISTE_ENTITE<int> get_liste_des_simalarite_inertielle(int type_comparais);
68     virtual void enregistrer(ostream& os);
69     friend ostream& operator <<(ostream& o,VCT_COMPARAISON& vct_f);
70     virtual void trouve_face_de_reference(int &face_ref1,int &face_ref2) ;
71     virtual void identifier_aretes_face_modifiee(MG_FACE* face1,MG_FACE* face2,TPL_LISTE_ENTITE<int>& aretes_identiques,TPL_LISTE_ENTITE<int>& aretes_simil,TPL_LISTE_ENTITE<int>&lst_corrsp_sommets,TPL_LISTE_ENTITE<int>& aret1_conservees,TPL_LISTE_ENTITE<int>& aret1_disparues,TPL_LISTE_ENTITE<int>& aret2_conservees ,TPL_LISTE_ENTITE<int>& aret2_nouvelles ,TPL_LISTE_ENTITE<int>& aret2_partielles ) ;
72     virtual int comparer_aretes_faces(MG_FACE* f_ref1,MG_FACE* f_ref2,MG_FACE* face1,MG_FACE* face2,TPL_LISTE_ENTITE<int>& aretes_identiques,TPL_LISTE_ENTITE<int>& aretes_sim) ;
73     virtual void identifier_les_modifications_appliquees(VCT_COMPARAISON_RESULTAT& Results);
74     virtual void identifier_les_sommets(MG_FACE* face1_ref,MG_FACE* face2_ref,TPL_LISTE_ENTITE<int>& lst_corrsp_sommets,VCT_COMPARAISON_RESULTAT& Results) ;
75     virtual void get_syteme_daxes_g int affichageactif;
76     void (*affiche)(char *mess);lobale();
77     virtual int surfaces_sont_elles_identiques(MG_FACE* face1,MG_FACE* face2);
78     virtual int courbes_sont_elles_identiques(MG_ARETE* arete1,MG_ARETE* arete2);
79     int modele_a_change_de_repere();
80     virtual void verifier_le_repere(OT_TENSEUR& rep1,OT_TENSEUR& rep2,vector<double2>& inert1,vector<double2>& inert2);*/
81     private:
82     /*TPL_LISTE_ENTITE<int> sim1,sim2; //pour la sim vectorielle dans un mme modele
83     TPL_LISTE_ENTITE<int> ssim1,ssim2; //pour la sim vectorielle dans un mme modele
84     TPL_LISTE_ENTITE<int> similarite; //pour la sim vectorielle
85     TPL_LISTE_ENTITE<int> ssimilarite; //pour la sim inertielle
86     TPL_LISTE_ENTITE<int> sim_double; //pour la sim vectorielle et inertielle
87     TPL_LISTE_ENTITE<int> identite; //pour l'iden inertielle
88     TPL_LISTE_ENTITE<int> nb_sim;
89     TPL_LISTE_ENTITE<int> surf_ident; //pour les surfaces identiques
90     int face_ref1;
91     int face_ref2;
92     */
93     MG_GESTIONNAIRE *gest1;
94     MG_GESTIONNAIRE *gest2;
95     MG_GEOMETRIE*mggeo1;
96     MG_GEOMETRIE*mggeo2;
97     double eps;
98     /*
99     // void trouve_face_de_reference(int &face_ref1,int &face_ref2) ; //,TPL_LISTE_ENTITE<int>& list
100     void choisir_une_couleur(double& val);
101     int comparer_liste_des_pts( vector<OT_VECTEUR_4DD> &pts1,vector<OT_VECTEUR_4DD> &pts2);
102     // void trouve_la_face_de_reference(TPL_LISTE_ENTITE<int>&lst_sim_inert);
103     OT_TENSEUR T1;
104     OT_TENSEUR T2;*/
105     TPL_LISTE_ENTITE<int> similarite;
106     TPL_LISTE_ENTITE<int> identite;
107     TPL_LISTE_ENTITE<int> localise;
108     OT_TENSEUR transformation;
109     OT_TENSEUR transformation_inverse;
110     int affichageactif;
111     void (*affiche)(char *mess);
112     };
113    
114    
115     #endif