145 while (!found && C->
cont())
161 while (!found && C->
cont())
163 if ((**C)->isOrbitUsed(orbit))
224 CDart*& ADartEmbeddingOwner1)
227 ADartEmbeddingOwner1 = NULL;
230 while (!found && cov->
cont())
235 if ((**cov)->isOrbitUsed(AOrbit))
236 ADartEmbeddingOwner1 = **cov;
246 bool CGMap::isValidOrbit(CDart* ADart,
TOrbit AOrbit)
248 for (
int i=0; i<2; ++i)
249 for (
int j=i+2; j<4; ++j)
258 void CGMap::groupAttributes(CDart* ADart1, CDart* D2,
TMask16 AMask)
266 if (AMask[i] &&
isOrbitUsed(i) && isValidOrbit(ADart1, i))
278 if (d1!=NULL && d2!=NULL)
283 d2->mergeEmbedding(E);
292 void CGMap::duplicateAttributes(CDart* ADart1, CDart* D2,
TMask16 AMask)
298 if (AMask[i] &&
isOrbitUsed(i) && isValidOrbit(ADart1, i))
312 ADart1->addEmbedding((d1->getEmbedding(i))->copy());
318 D2->addEmbedding((d1->getEmbedding(i))->copy());
327 assert(d1!=NULL && d2!=NULL);
334 assert(d1!=NULL && d2!=NULL);
341 assert(d1!=NULL && d2!=NULL);
354 assert(d1!=NULL && d2!=NULL);
362 while (cov1->
cont() && cov2->
cont() &&
369 bool ok = !cov1->
cont() && !cov2->
cont();
380 groupAttributes(ADart1,ADart2,
MASK0);
387 groupAttributes(ADart1,ADart2,
MASK1);
394 groupAttributes(ADart1,ADart2,
MASK2);
401 groupAttributes(ADart1,ADart2,
MASK3);
410 case 0:
dartSew0(ADart1, ADart2);
break;
411 case 1:
dartSew1(ADart1, ADart2);
break;
412 case 2:
dartSew2(ADart1, ADart2);
break;
413 case 3:
dartSew3(ADart1, ADart2);
break;
425 duplicateAttributes(ADart,D2,
MASK0);
436 duplicateAttributes(ADart,D2,
MASK1);
447 duplicateAttributes(ADart,D2,
MASK2);
458 duplicateAttributes(ADart,D2,
MASK3);
476 assert(
canSew0(ADart1,ADart2));
488 assert(
canSew1(ADart1,ADart2));
499 assert(
canSew2(ADart1,ADart2));
511 assert(
canSew3(ADart1,ADart2));
525 case 0:
topoSew0(ADart1, ADart2);
break;
526 case 1:
topoSew1(ADart1, ADart2);
break;
527 case 2:
topoSew2(ADart1, ADart2);
break;
528 case 3:
topoSew3(ADart1, ADart2);
break;
587 assert(
canSew0(ADart1,ADart2));
595 groupAttributes(d1,d2,
MASK0);
607 groupAttributes(d1,d2,
MASK0M2);
613 groupAttributes(d1,d2,
MASK0M3);
626 assert(
canSew1(ADart1,ADart2));
628 groupAttributes(ADart1,ADart2,
MASK1);
643 assert(
canSew2(ADart1,ADart2));
645 groupAttributes(ADart1,ADart2,
MASK2);
661 assert(
canSew3(ADart1,ADart2));
669 groupAttributes(d1,d2,
MASK3);
681 groupAttributes(d1,d2,
MASK3M0);
687 groupAttributes(d1,d2,
MASK3M1);
702 case 0:
sew0(ADart1, ADart2);
break;
703 case 1:
sew1(ADart1, ADart2);
break;
704 case 2:
sew2(ADart1, ADart2);
break;
705 case 3:
sew3(ADart1, ADart2);
break;
722 d1 = *It; d2 =
alpha0(d1);
733 duplicateAttributes(d1,d2,
MASK0M3);
739 duplicateAttributes(d1,d2,
MASK0M2);
744 duplicateAttributes(d1,d2,
MASK0);
762 duplicateAttributes(ADart,D2,
MASK1M3);
767 duplicateAttributes(ADart,D2,
MASK1);
785 duplicateAttributes(ADart,D2,
MASK2M0);
790 duplicateAttributes(ADart,D2,
MASK2);
810 d1 = *It; d2 =
alpha3(d1);
820 duplicateAttributes(d1,d2,
MASK3M1);
826 duplicateAttributes(d1,d2,
MASK3M0);
831 duplicateAttributes(d1,d2,
MASK3);
844 case 0:
unsew0(ADart);
break;
845 case 1:
unsew1(ADart);
break;
846 case 2:
unsew2(ADart);
break;
847 case 3:
unsew3(ADart);
break;