26 #include "g-map-vertex.hh"
38 using namespace GMap3d;
52 const CVertex& ANormal)
54 assert(ADart1 != NULL);
55 assert(ADart2 != NULL);
62 const CVertex & ANormal,
65 assert(ADart1 != NULL);
66 assert(ADart2 != NULL);
70 cout << endl <<
"Co-raffinement des maillages" << endl;
73 CVertex * vertex = FMap->findVertex(ADart1);
74 CPlane plane(ANormal, *vertex);
79 cout <<
"Durée du co-raffinement : " << end - start << endl;
84 assert(ADart1 != NULL);
85 assert(ADart2 != NULL);
91 cout << endl <<
"Co-raffinement 3D des maillages" << endl;
98 cout <<
"Durée du co-raffinement : " << end - start << endl;
105 cout << endl <<
"Co-raffinement 3D des faces" << endl;
112 cout <<
"Durée du co-raffinement : " << end - start << endl;
117 assert(ADart != NULL);
119 int vertex_di = FMap->getNewDirectInfo();
122 list<CDart*> objects;
128 FMap->pointDirectInfoToAttributeVertex(vertex_di);
130 int tmp_mark = FMap->getNewMark();
133 FMap->markOrbit(d2, ORBIT_CC, tmp_mark);
135 for (CDynamicCoverageAll dca(FMap); dca.cont(); ++dca) {
136 if (FMap->isMarked(*dca, AMark) && !FMap->isMarked(*dca, tmp_mark)) {
138 FMap->markOrbit(d1, ORBIT_CC, tmp_mark);
139 objects.push_back(d1);
143 FMap->unmarkAll(tmp_mark);
144 FMap->freeMark(tmp_mark);
146 while (!objects.empty()) {
147 d1 = objects.front(), objects.pop_front();
152 FMap->freeDirectInfo(vertex_di);
155 cout <<
"Durée total du calcul : " << end - start << endl;
161 int ADifference1Mark,
162 int ADifference2Mark,
163 int AIntersectionMark,
166 assert(ADart1 != NULL);
167 assert(ADart2 != NULL);
171 cout << endl <<
"Co-raffinement des maillages" << endl;
179 cout <<
"Durée du co-raffinement : " << end - start << endl;
181 cout <<
"Extraction des opérations booléennes" << endl;
184 if (ADifference1Mark >= 0) {
185 FMap->unmarkAll(ADifference1Mark);
189 if (ADifference2Mark >= 0) {
190 FMap->unmarkAll(ADifference2Mark);
194 if (AIntersectionMark >= 0) {
195 FMap->unmarkAll(AIntersectionMark);
199 if (AUnionMark >= 0) {
200 FMap->unmarkAll(AUnionMark);
205 cout <<
"Durée de l'extraction : " << end - start << endl;
209 int ADifference1Mark,
210 int ADifference2Mark,
211 int AIntersectionMark,
214 assert(ADart1 != NULL);
215 assert(ADart2 != NULL);
217 CTime start, end, total;
219 cout << endl <<
"Co-raffinement des maillages" << endl;
228 cout <<
"Durée du co-raffinement : " << end - start << endl;
230 cout <<
"Extraction des opérations booléennes" << endl;
233 if (ADifference1Mark >= 0) {
234 FMap->unmarkAll(ADifference1Mark);
238 if (ADifference2Mark >= 0) {
239 FMap->unmarkAll(ADifference2Mark);
243 if (AIntersectionMark >= 0) {
244 FMap->unmarkAll(AIntersectionMark);
248 if (AUnionMark >= 0) {
249 FMap->unmarkAll(AUnionMark);
254 cout <<
"Durée de l'extraction : " << end - start << endl;
255 cout <<
"Durée totale : " << end - total << endl;