26 #include "g-map-generic.hh"
29 using namespace GMap3d;
43 assert(ADart != NULL);
44 assert(0 <= ACellDim && ACellDim <= 2);
46 int treated = FMap->getNewMark();
48 CCoverage* cov = FMap->getStaticCoverage(ADart, ORBIT_CELL[ACellDim]);
50 for (; cov->cont(); ++(*cov))
52 CDart* current = **cov;
54 CDart* d0 = FMap->alpha0(current);
55 CDart* d1 = FMap->alpha1(current);
56 CDart* d2 = FMap->alpha2(current);
57 CDart* d3 = FMap->alpha3(current);
61 if (FMap->isMarked(d0, treated))
64 if (FMap->isMarked(d1, treated))
67 if (FMap->isMarked(d2, treated))
70 if (FMap->isMarked(d3, treated))
73 FMap->setMark(current, treated);
76 for (cov->reinit(); cov->cont(); ++(*cov))
77 FMap->unsetMark(**cov, treated);
79 FMap->freeMark(treated);
86 assert(ADart != NULL);
88 CStaticCoverageVertex cov(FMap, ADart);
90 int treated = FMap->getNewMark();
92 for (; cov.cont(); ++cov)
94 CDart* current = *cov;
96 CDart* d1 = FMap->alpha1(current);
97 CDart* d2 = FMap->alpha2(current);
98 CDart* d3 = FMap->alpha3(current);
102 if (FMap->isMarked(d1, treated))
chamfreinLink(current, d1, 1,0, AMaxDim);
103 if (FMap->isMarked(d2, treated))
chamfreinLink(current, d2, 2,0, AMaxDim);
104 if (FMap->isMarked(d3, treated))
chamfreinLink(current, d3, 3,0, AMaxDim);
106 FMap->setMark(current, treated);
109 for (cov.reinit(); cov.cont(); ++cov)
110 FMap->unsetMark(*cov, treated);
112 FMap->freeMark(treated);
119 CStaticCoverageEdge cov(FMap, ADart);
121 int treated = FMap->getNewMark();
123 for (; cov.cont(); ++cov)
125 CDart* current = *cov;
127 CDart* d0 = FMap->alpha0(current);
128 CDart* d2 = FMap->alpha2(current);
129 CDart* d3 = FMap->alpha3(current);
133 if (FMap->isMarked(d0, treated))
chamfreinLink(current, d0, 0,1, AMaxDim);
134 if (FMap->isMarked(d2, treated))
chamfreinLink(current, d2, 2,1, AMaxDim);
135 if (FMap->isMarked(d3, treated))
chamfreinLink(current, d3, 3,1, AMaxDim);
137 FMap->setMark(current, treated);
140 for (cov.reinit(); cov.cont(); ++cov)
141 FMap->unsetMark(*cov, treated);
143 FMap->freeMark(treated);
148 assert(ADart != NULL);
149 assert(0 <= ADimMin);
150 assert(ADimMin < ADimMax);
151 assert(ADimMax <= 3);
155 for (
int dim = ADimMin+1; dim <= ADimMax; ++dim)
157 CDart* d2 = FMap->addMapDart();
158 FMap->linkAlpha(d1, d2, dim);
164 int ADim,
int ADimMin,
int ADimMax)
166 assert(ADart1 != NULL);
167 assert(ADart2 != NULL);
169 assert(ADim != ADimMin);
170 assert(ADimMin < ADimMax);
172 for (
int dim = ADimMin+1; dim <= ADimMax; ++dim)
174 ADart1 = FMap->alpha(ADart1, dim);
175 ADart2 = FMap->alpha(ADart2, dim);
180 FMap->linkAlpha(ADart1, ADart2, ADim);
184 FMap->linkAlpha(ADart1, ADart2, ADim<ADimMin ? ADim : ADim-1);
190 assert(ADart != NULL);
191 assert(0<=ACellDim && ACellDim<=3);
199 cont = FMap->isIClosedOrbit(ADart, i, ORBIT_CELL[ACellDim]);
210 assert(ADart != NULL);
211 assert(0<=ACellDim && ACellDim<=3);
215 if (i<3 && ! FMap->isIFreeOrbit(ADart, i, ORBIT_CELL[ACellDim]))
252 assert(ADart != NULL);
254 for (CDynamicCoverage23 cov(FMap, ADart); cov.cont(); )
256 CDart* current = cov++;
258 if (! FMap->isFree1(current) &&
259 ! FMap->isFree1(FMap->alpha0(current)))
260 FMap->linkAlpha1(FMap->alpha1(current), FMap->alpha01(current));
263 FMap->unlinkAlpha1( current );
264 FMap->unlinkAlpha1(FMap->alpha0(current));
267 if (! FMap->isFree0(current))
268 FMap->delMapDart(FMap->alpha0(current));
270 FMap->delMapDart(current);