26 #include "g-map-generic.hh"
28 using namespace GMap3d;
30 #define SUCC(DART) ((((CGMapGeneric*) FMap)->*succ)(DART))
34 int AMarkNumberX,
int AMarkNumberY,
37 assert(ADim>=0 && ADim<=2);
42 assert(AMarkNumberX>0);
43 assert(AMarkNumberY>0);
44 assert(AReturnedDart>=1 && AReturnedDart<=3);
46 CDart* returned = NULL;
51 CDart* (CGMapGeneric::* succ) (CDart*)
const =
52 ADim<2 ? & CGMapGeneric::alpha01 : & CGMapGeneric::alpha0121;
54 CDart* current = ADart;
56 for (
int round=0; round<2; ++round)
58 FMap->markOrbit(current, ORBIT_23, AMarkNumberX);
60 for (
int i=1; i<ASx; ++i)
61 current =
SUCC(current);
63 current = FMap->alpha0(current);
64 FMap->markOrbit(current, ORBIT_23, AMarkNumberX);
66 if (round==0 && AReturnedDart==1)
69 if (round==1 && AReturnedDart==2)
72 current = FMap->alpha1(current);
74 FMap->markOrbit(current, ORBIT_23, AMarkNumberY);
75 for (
int j=1; j<ASy; ++j)
76 current =
SUCC(current);
78 current = FMap->alpha0(current);
80 FMap->markOrbit(current, ORBIT_23, AMarkNumberY);
82 current = FMap->alpha1(current);
84 if (round==0 && AReturnedDart==3)
92 int ASx,
int ASy,
int ASz,
97 assert(ADim>=0 && ADim<=3);
103 assert(AMarkNumberX>0);
104 assert(AMarkNumberY>0);
105 assert(AMarkNumberZ>0);
113 ASx,ASy, AMarkNumberX,AMarkNumberY, 3);
115 ASy,ASz, AMarkNumberY,AMarkNumberZ );
118 ASy,ASz, AMarkNumberY,AMarkNumberZ, 3);
120 ASz,ASx, AMarkNumberZ,AMarkNumberX );
123 ASz,ASx, AMarkNumberZ,AMarkNumberX, 3);
125 ASx,ASy, AMarkNumberX,AMarkNumberY );