27 using namespace GMap3d;
30 int AMarkNumber,
bool ASelect)
32 assert(ALastDart!=NULL);
36 static const char * forward[16] =
56 static const char * right[16] =
79 (ADirection==
Left || ADirection==
Right) ? right[AOrbit] : forward[AOrbit];
81 int length = strlen(series);
86 markOrbit(ALastDart, AOrbit, AMarkNumber);
94 CDart * current = ALastDart;
95 bool firstSubMove =
false;
99 for (
int i=0, depth=0, freezeLevel=
INFINITE; i<length; ++i)
101 char c = series[reverse ? length-i-1 : i];
103 if (c==
'[' || c==
']')
105 if (reverse ^ (c==
'['))
114 if (depth<freezeLevel)
117 assert(!firstSubMove);
122 if (depth < freezeLevel)
124 assert(c==
'0' || c==
'1' || c==
'2' || c==
'3');
135 current =
alpha(current, dim);
138 firstSubMove =
false;
154 TOrbit AOrbit,
int AMarkNumber,
157 assert(ALastDart!=NULL);
163 CDart * current = ALastDart;
165 go(ADirection, current, AOrbit, AMarkNumber, ASelect);
170 current =
go(ADirection, current, AOrbit, AMarkNumber, ASelect);
171 assert(current!=NULL);