1 |
francois |
283 |
//------------------------------------------------------------ |
2 |
|
|
//------------------------------------------------------------ |
3 |
|
|
// MAGiC |
4 |
|
|
// Jean Christophe Cuilli�re et Vincent FRANCOIS |
5 |
|
|
// D�partement de G�nie M�canique - UQTR |
6 |
|
|
//------------------------------------------------------------ |
7 |
|
|
// Le projet MAGIC est un projet de recherche du d�partement |
8 |
|
|
// de g�nie m�canique de l'Universit� du Qu�bec � |
9 |
|
|
// Trois Rivi�res |
10 |
|
|
// Les librairies ne peuvent �tre utilis�es sans l'accord |
11 |
|
|
// des auteurs (contact : francois@uqtr.ca) |
12 |
|
|
//------------------------------------------------------------ |
13 |
|
|
//------------------------------------------------------------ |
14 |
|
|
// |
15 |
|
|
// m3d_triangle.cpp |
16 |
|
|
// |
17 |
|
|
//------------------------------------------------------------ |
18 |
|
|
//------------------------------------------------------------ |
19 |
|
|
// COPYRIGHT 2000 |
20 |
|
|
// Version du 02/03/2006 � 11H23 |
21 |
|
|
//------------------------------------------------------------ |
22 |
|
|
//------------------------------------------------------------ |
23 |
|
|
|
24 |
|
|
|
25 |
|
|
#include "gestionversion.h" |
26 |
|
|
|
27 |
|
|
|
28 |
|
|
//#pragma hdrstop |
29 |
|
|
|
30 |
|
|
#include "m3d_triangle.h" |
31 |
|
|
|
32 |
|
|
//--------------------------------------------------------------------------- |
33 |
|
|
|
34 |
|
|
//#pragma package(smart_init) |
35 |
|
|
|
36 |
|
|
|
37 |
|
|
|
38 |
|
|
|
39 |
|
|
|
40 |
|
|
|
41 |
francois |
420 |
M3D_TRIANGLE::M3D_TRIANGLE(unsigned long num,MG_ELEMENT_TOPOLOGIQUE* topo,class MG_NOEUD *mgnoeud1,class MG_NOEUD *mgnoeud2,class MG_NOEUD *mgnoeud3,class MG_SEGMENT* mgsegment1,class MG_SEGMENT* mgsegment2,class MG_SEGMENT* mgsegment3,int origine):MG_TRIANGLE(num,topo,mgnoeud1,mgnoeud2,mgnoeud3,mgsegment1,mgsegment2,mgsegment3,origine),nb_voisin(0),etat_front(FRONT_NONACTIF),frontiere(0) |
42 |
francois |
283 |
{ |
43 |
|
|
} |
44 |
|
|
|
45 |
|
|
|
46 |
francois |
420 |
M3D_TRIANGLE::M3D_TRIANGLE(MG_ELEMENT_TOPOLOGIQUE* topo,class MG_NOEUD *mgnoeud1,class MG_NOEUD *mgnoeud2,class MG_NOEUD *mgnoeud3,class MG_SEGMENT* mgsegment1,class MG_SEGMENT* mgsegment2,class MG_SEGMENT* mgsegment3,int origine):MG_TRIANGLE(topo,mgnoeud1,mgnoeud2,mgnoeud3,mgsegment1,mgsegment2,mgsegment3,origine),nb_voisin(0),etat_front(FRONT_NONACTIF),frontiere(0) |
47 |
francois |
283 |
{ |
48 |
|
|
} |
49 |
|
|
|
50 |
francois |
420 |
M3D_TRIANGLE::M3D_TRIANGLE(M3D_TRIANGLE& mdd):MG_TRIANGLE(mdd),nb_voisin(mdd.nb_voisin),frontiere(mdd.frontiere) |
51 |
francois |
283 |
{ |
52 |
|
|
voisin[0]=mdd.voisin[0]; |
53 |
|
|
voisin[1]=mdd.voisin[1]; |
54 |
|
|
} |
55 |
|
|
|
56 |
|
|
M3D_TRIANGLE::~M3D_TRIANGLE() |
57 |
|
|
{ |
58 |
|
|
} |
59 |
|
|
|
60 |
|
|
|
61 |
|
|
int M3D_TRIANGLE::get_type_entite(void) |
62 |
|
|
{ |
63 |
|
|
return IDM3D_TRIANGLE; |
64 |
|
|
} |
65 |
|
|
|
66 |
|
|
|
67 |
|
|
void M3D_TRIANGLE::change_etat_front(int num) |
68 |
|
|
{ |
69 |
|
|
etat_front=num; |
70 |
|
|
} |
71 |
|
|
int M3D_TRIANGLE::get_etat_front(void) |
72 |
|
|
{ |
73 |
|
|
return etat_front; |
74 |
|
|
} |
75 |
|
|
|
76 |
|
|
|
77 |
|
|
void M3D_TRIANGLE::change_mgfront(class MG_FRONT_3D* ft) |
78 |
|
|
{ |
79 |
|
|
mgfront=ft; |
80 |
|
|
} |
81 |
|
|
|
82 |
|
|
MG_FRONT_3D* M3D_TRIANGLE::get_mgfront(void) |
83 |
|
|
{ |
84 |
|
|
return mgfront; |
85 |
|
|
} |
86 |
|
|
|
87 |
|
|
|
88 |
|
|
int M3D_TRIANGLE::ajouter_voisin(class MG_TETRA* tet) |
89 |
|
|
{ |
90 |
|
|
if (nb_voisin==0) |
91 |
|
|
{ |
92 |
|
|
voisin[0]=tet; |
93 |
|
|
voisin[1]=NULL; |
94 |
|
|
nb_voisin=1; |
95 |
|
|
return 1; |
96 |
|
|
} |
97 |
|
|
if (nb_voisin==1) |
98 |
|
|
{ |
99 |
|
|
voisin[1]=tet; |
100 |
|
|
nb_voisin=2; |
101 |
|
|
return 1; |
102 |
|
|
} |
103 |
|
|
return 0; |
104 |
|
|
} |
105 |
|
|
|
106 |
|
|
int M3D_TRIANGLE::supprimer_voisin(class MG_TETRA* tet) |
107 |
|
|
{ |
108 |
|
|
if (nb_voisin==1) |
109 |
|
|
{ |
110 |
|
|
voisin[0]=NULL; |
111 |
|
|
voisin[1]=NULL; |
112 |
|
|
nb_voisin=0; |
113 |
|
|
return 1; |
114 |
|
|
} |
115 |
|
|
if (nb_voisin==2) |
116 |
|
|
{ |
117 |
|
|
if (voisin[0]==tet) |
118 |
|
|
{ |
119 |
|
|
voisin[0]=voisin[1]; |
120 |
|
|
voisin[1]=NULL; |
121 |
|
|
nb_voisin=1; |
122 |
|
|
return 1; |
123 |
|
|
} |
124 |
|
|
else |
125 |
|
|
{ |
126 |
|
|
voisin[1]=NULL; |
127 |
|
|
nb_voisin=1; |
128 |
|
|
return 1; |
129 |
|
|
} |
130 |
|
|
} |
131 |
|
|
return 0; |
132 |
|
|
} |
133 |
|
|
|
134 |
|
|
class MG_TETRA* M3D_TRIANGLE::get_voisin(int num) |
135 |
|
|
{ |
136 |
|
|
if ((num<0) && (num>1)) return NULL; |
137 |
|
|
return voisin[num]; |
138 |
|
|
} |
139 |
|
|
|
140 |
|
|
|
141 |
|
|
int M3D_TRIANGLE::get_nb_voisin(void) |
142 |
|
|
{ |
143 |
|
|
return nb_voisin; |
144 |
|
|
} |
145 |
|
|
|
146 |
|
|
|
147 |
|
|
|
148 |
|
|
double M3D_TRIANGLE::get_qualite(void) |
149 |
|
|
{ |
150 |
|
|
return qualite; |
151 |
|
|
} |
152 |
|
|
|
153 |
|
|
void M3D_TRIANGLE::change_qualite(double val) |
154 |
|
|
{ |
155 |
|
|
qualite=val; |
156 |
|
|
} |
157 |
|
|
|
158 |
francois |
420 |
void M3D_TRIANGLE::change_frontiere(void) |
159 |
|
|
{ |
160 |
|
|
if (frontiere==0)frontiere=1; else frontiere=0; |
161 |
|
|
} |
162 |
|
|
|
163 |
|
|
|
164 |
|
|
int M3D_TRIANGLE::get_frontiere(void) |
165 |
|
|
{ |
166 |
|
|
return frontiere; |
167 |
|
|
} |
168 |
francois |
551 |
|
169 |
|
|
void M3D_TRIANGLE::enregistrer(std::ostream& o) |
170 |
|
|
{ |
171 |
|
|
MG_TRIANGLE::enregistrer(o); |
172 |
|
|
} |