ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/comparaison/src/vct_comparaison.cpp
Revision: 74
Committed: Tue Apr 1 18:36:45 2008 UTC (17 years, 1 month ago) by souaissa
Original Path: magic/lib/vectorisation/vectorisation/src/vct_comparaison.cpp
File size: 3508 byte(s)
Log Message:
mise  à jour de la classe vct_comparaison.cpp

File Contents

# User Rev Content
1 souaissa 66 //---------------------------------------------------------------------------
2     #include"gestionversion.h"
3    
4     #pragma hdrstop
5    
6     #include "vct_comparaison.h"
7 souaissa 74 #include"ot_mathematique.h"
8     #include <iomanip.h>
9     #include "vct.h"
10 souaissa 66 //---------------------------------------------------------------------------
11    
12     #pragma package(smart_init)
13    
14    
15     VCT_COMPARAISON::VCT_COMPARAISON(char*fil1,char*fil2)
16     {
17    
18     gest1=new MG_FILE(fil1);
19     gest2=new MG_FILE(fil2);
20    
21    
22     }
23    
24     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
25    
26     void VCT_COMPARAISON:: get_comparaison_geometrie()
27     {
28    
29     MG_GEOMETRIE*mggeo1=gest1->get_mg_geometrie(0);
30     MG_GEOMETRIE*mggeo2=gest2->get_mg_geometrie(0);
31    
32     int nb_face1=mggeo1->get_nb_mg_face();
33     int nb_face2=mggeo2->get_nb_mg_face();
34    
35 souaissa 74 vector<int> similarite;
36 souaissa 66
37    
38     for(int i=0;i<nb_face1; i++)
39     {
40     MG_FACE* face1=mggeo1->get_mg_face(i);
41 souaissa 74 MG_SURFACE*surf1=face1->get_surface();
42 souaissa 66 int id1=face1->get_id();
43 souaissa 74 OT_TENSEUR tns1_face(4),tns1_surf(4);
44     int nb_top1_pts= face1->get_vectorisation().get_nb_points();
45     int nb_geo1_pts= surf1->get_vectorisation().get_nb_points();
46 souaissa 66
47 souaissa 74 tns1_face=face1->get_vectorisation().calcule_tenseur_metrique();
48     tns1_surf=surf1->get_vectorisation().calcule_tenseur_metrique();
49 souaissa 66
50     for(int j=0;j<nb_face2;j++)
51     {
52    
53     MG_FACE* face2=mggeo2->get_mg_face(j);
54 souaissa 74 MG_SURFACE*surf2=face2->get_surface();
55 souaissa 66 int id2=face2->get_id();
56 souaissa 74 OT_TENSEUR tns2_face(4),tns2_surf(4);
57     int nb_top2_pts= face2->get_vectorisation().get_nb_points();
58     int nb_geo2_pts= surf2->get_vectorisation().get_nb_points();
59     tns2_face=face2->get_vectorisation().calcule_tenseur_metrique();
60     tns2_surf=surf2->get_vectorisation().calcule_tenseur_metrique();
61 souaissa 66
62 souaissa 74 if(nb_geo1_pts==nb_geo2_pts&&nb_top1_pts==nb_top2_pts)
63 souaissa 66 {
64 souaissa 74 if(tns1_face.est_til_equivalent(tns2_face))
65 souaissa 66 {
66 souaissa 74 if(tns1_surf.est_til_equivalent(tns2_surf))
67     similarite.insert(similarite.end(),i);
68     similarite.insert(similarite.end(),j);
69 souaissa 66 }
70    
71     /*
72     if (tns1_arete==tns2_arete)
73     {
74     carte_geometrique_aretes(i,j)=1;
75     }
76    
77     if(tns1_arete.is_equivalent_at(tns2_arete))
78     {
79     carte_geometrique_aretes(i,j)=1;
80     }
81     if((tns1_face==tns2_face))//&&(tns1_arete==tns2_arete))
82     {
83     carte_geometrique_faces(i,j)=1;
84     }
85     */
86    
87     }
88    
89     }
90     }
91    
92    
93    
94    
95    
96    
97    
98     }
99    
100    
101     VCT_COMPARAISON::~VCT_COMPARAISON()
102     {
103     delete gest1;
104     delete gest2;
105     }
106    
107    
108    
109     void VCT_COMPARAISON::enregistrer(std::ostream& os)
110     {
111     os<<"COMPARAISON VECTORIELLE DE DEUX GEOMETRIES"<<endl;
112     int nb_cl=2;
113     int nb_lg=carte_geometrique_faces.size()/2;
114     os<<"FACES_PREMIERE_GEOMETRIE : ";
115     for(int j=0;j<nb_lg;j++)
116     os<<setw(5)<<carte_geometrique_faces[j*nb_cl+0];
117     os<<endl;
118     os<<"FACES_SECONDE_GEOMETRIE : ";
119     for(int j=0;j<nb_lg;j++)
120     os<<setw(5)<<carte_geometrique_faces[j*nb_cl+1];
121     os<<endl;
122    
123     }
124    
125    
126     std::ostream& operator <<(std::ostream& os,const VCT_COMPARAISON& vct_cmp)
127     {
128     vct_cmp.enregistrer(os) ;
129     return os;
130     }