29 using namespace GMap3d;
31 CParameterGMapVertex::CParameterGMapVertex(CGMapVertex* AGMap,
int ANbRef) :
37 FPartialChanged (false),
38 FMarkPartialChanged(-1),
40 FModeSimplification(false)
42 FRemovedMark[0]=-1; FRemovedMark[1]=-1; FRemovedMark[2]=-1;
48 FMapEmbedding (AParam.FMapEmbedding),
49 FDirectIndex (AParam.FDirectIndex),
51 FPartialChanged (false),
52 FMarkPartialChanged(-1),
54 FModeSimplification(false)
56 FRemovedMark[0]=AParam.FRemovedMark[0];
57 FRemovedMark[1]=AParam.FRemovedMark[1];
58 FRemovedMark[2]=AParam.FRemovedMark[2];
89 {
return FMapEmbedding; }
93 if ( FModeSimplification )
return FMapEmbedding;
112 FPartialChanged =
false;
116 {
return FPartialChanged; }
120 if ( !FPartialChanged && !FChanged )
122 FPartialChanged =
true;
128 { FPartialChanged =
false; }
146 {
return FModeSimplification; }
150 if ( !FModeSimplification )
152 FModeSimplification =
true;
153 FMapEmbedding =
new CGMapVertex;
154 FDirectIndex = FMap->getNewDirectInfo();
156 FRemovedMark[0] = FMapEmbedding->getNewMark();
157 FRemovedMark[1] = FMapEmbedding->getNewMark();
158 FRemovedMark[2] = FMapEmbedding->getNewMark();
161 int mark = FMap->getNewMark();
162 FMap->negateMaskMark(mark);
163 FMap->duplicateMarkedDarts(mark,FMapEmbedding,FDirectIndex);
165 FMapEmbedding->setBurstMethod(FMap->getBurstMethod());
166 FMapEmbedding->setBurstCoef (0, FMap->getBurstCoef(0));
167 FMapEmbedding->setBurstCoef (1, FMap->getBurstCoef(1));
168 FMapEmbedding->setBurstCoef (2, FMap->getBurstCoef(2));
169 FMapEmbedding->setBurstCoef (3, FMap->getBurstCoef(3));
170 FMapEmbedding->updateAllBurstDarts();
172 FMap->negateMaskMark(mark);
173 FMap->freeMark(mark);
179 if ( FModeSimplification )
181 FModeSimplification =
false;
182 FMap->freeDirectInfo(FDirectIndex);
184 FMapEmbedding->freeMark(FRemovedMark[0]);
185 FMapEmbedding->freeMark(FRemovedMark[1]);
186 FMapEmbedding->freeMark(FRemovedMark[2]);
188 delete FMapEmbedding; FMapEmbedding=NULL;
195 if ( FModeSimplification )
197 assert(FMap->getDirectInfoAsDart(ADart, FDirectIndex)!=NULL);
198 return FMap->getDirectInfoAsDart(ADart, FDirectIndex);
207 return FRemovedMark[ADim];
212 for (
int i=0;i<3;++i)
213 if (FMapEmbedding->isMarked(ADart,FRemovedMark[i]))
return true;
221 FMap->setBurstMethod(AMethod);
222 if (FMapEmbedding!=NULL) FMapEmbedding->setBurstMethod(AMethod);
230 {
return FMap->getBurstMethod(); }
233 {
return FMarkPartialChanged; }
236 { FMarkPartialChanged = AValue; }