ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/comparaison/src/vct_comparaison.h
Revision: 276
Committed: Wed Jun 15 18:25:46 2011 UTC (13 years, 11 months ago) by francois
Content type: text/plain
Original Path: magic/lib/vectorisation/src/vct_comparaison.h
File size: 5677 byte(s)
Log Message:
Correction de bug + Version toIbrep  version du premier exmple complet + construction de la vectorisation a la lecture du fichier

File Contents

# User Rev Content
1 souaissa 66 //---------------------------------------------------------------------------
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 francois 169 #include <vector>
17 francois 253 #include "ot_tenseur.h"
18 souaissa 87 #include "vct.h"
19 francois 102 #include "mg_gestionnaire.h"
20 souaissa 66 #include "ot_tenseur.h"
21 francois 169 #include <ostream>
22 souaissa 87 #include "tpl_liste_entite.h"
23 souaissa 142 #include "vct_comparaison_resultat.h"
24 souaissa 153 #include"ot_mathematique.h"
25 souaissa 66 //----------------------------------------------------------------------------
26    
27 souaissa 87 using namespace std;
28    
29 souaissa 66 class DLLPORTVECTORISATION VCT_COMPARAISON
30     {
31     public:
32 francois 102 VCT_COMPARAISON(MG_GESTIONNAIRE *gst1,MG_GEOMETRIE *mgeo1,MG_GESTIONNAIRE *gst2,MG_GEOMETRIE *mgeo2);
33 souaissa 66 ~VCT_COMPARAISON();
34 francois 253
35    
36    
37 francois 276 void compare(class VCT_COMPARAISON_RESULTAT &cmp,MG_VOLUME* vol1=NULL,MG_VOLUME* vol2=NULL,class OT_CPU *cpu=NULL);
38 francois 253 void trouve_similarite(void);
39     void trouve_identite(void);
40     void trouve_localise(VCT_COMPARAISON_RESULTAT &cmp);
41 francois 275 void identifie_topologie_sous_jacente(VCT_COMPARAISON_RESULTAT &cmp,MG_FACE* face1,MG_FACE* face2,int& sommetparfait,int& areteparfait);
42 francois 258 void identifie_correspondance(VCT_COMPARAISON_RESULTAT &cmp);
43     void trouve_modification_partielle(VCT_COMPARAISON_RESULTAT &cmp);
44 francois 253 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 francois 258
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 275
57 francois 276
58 francois 275 void active_affichage(void (*fonc)(char*));
59 francois 253 /*virtual void trouver_les_identites(int affiche_couleur);
60 souaissa 143 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 souaissa 90 virtual void compare_une_geometrie_inertiellement(int modele);
64     virtual void affecter_les_couleurs(int niveau);
65 souaissa 87 virtual TPL_LISTE_ENTITE<int> get_liste_des_identitees();
66 souaissa 99 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 souaissa 90 virtual void enregistrer(ostream& os);
69 souaissa 87 friend ostream& operator <<(ostream& o,VCT_COMPARAISON& vct_f);
70 souaissa 99 virtual void trouve_face_de_reference(int &face_ref1,int &face_ref2) ;
71 souaissa 153 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 souaissa 142 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 souaissa 153 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 francois 276 virtual void get_syteme_daxes_g int affichageactif;
76     void (*affiche)(char *mess);lobale();
77 souaissa 159 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 souaissa 153 int modele_a_change_de_repere();
80 francois 253 virtual void verifier_le_repere(OT_TENSEUR& rep1,OT_TENSEUR& rep2,vector<double2>& inert1,vector<double2>& inert2);*/
81 souaissa 66 private:
82 francois 253 /*TPL_LISTE_ENTITE<int> sim1,sim2; //pour la sim vectorielle dans un mme modele
83 souaissa 142 TPL_LISTE_ENTITE<int> ssim1,ssim2; //pour la sim vectorielle dans un mme modele
84 souaissa 87 TPL_LISTE_ENTITE<int> similarite; //pour la sim vectorielle
85     TPL_LISTE_ENTITE<int> ssimilarite; //pour la sim inertielle
86 souaissa 99 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 souaissa 153 TPL_LISTE_ENTITE<int> surf_ident; //pour les surfaces identiques
90 souaissa 142 int face_ref1;
91     int face_ref2;
92 francois 253 */
93 souaissa 142 MG_GESTIONNAIRE *gest1;
94     MG_GESTIONNAIRE *gest2;
95 souaissa 87 MG_GEOMETRIE*mggeo1;
96     MG_GEOMETRIE*mggeo2;
97 francois 258 double eps;
98 francois 253 /*
99 souaissa 99 // void trouve_face_de_reference(int &face_ref1,int &face_ref2) ; //,TPL_LISTE_ENTITE<int>& list
100 souaissa 90 void choisir_une_couleur(double& val);
101 souaissa 142 int comparer_liste_des_pts( vector<OT_VECTEUR_4DD> &pts1,vector<OT_VECTEUR_4DD> &pts2);
102 souaissa 99 // void trouve_la_face_de_reference(TPL_LISTE_ENTITE<int>&lst_sim_inert);
103 souaissa 153 OT_TENSEUR T1;
104 francois 253 OT_TENSEUR T2;*/
105     TPL_LISTE_ENTITE<int> similarite;
106     TPL_LISTE_ENTITE<int> identite;
107     TPL_LISTE_ENTITE<int> localise;
108 francois 258 OT_TENSEUR transformation;
109     OT_TENSEUR transformation_inverse;
110 francois 275 int affichageactif;
111 francois 276 void (*affiche)(char *mess);
112 souaissa 66 };
113    
114 francois 253
115 souaissa 66 #endif