26 using namespace GMap3d;
32 for (
int i=0; i<6; ++i)
46 for (
int i=0; i<8; ++i)
61 CDart * dart0, * current = NULL, * current0, * current01;
65 for (
int i=1; i<An; ++i)
85 CDart * dart0, * current = NULL, * current21;
89 for (
int i=1; i<An; ++i)
106 CDart * dart0, * current=NULL, * current21;
110 for (
int i=1; i<An; ++i)
125 assert(AMeridians>0);
126 assert(AParallels>0);
128 CDart * mesh2Corners[2][2];
133 if (ABorder1!=NULL) * ABorder1 = mesh2Corners[0][0];
134 if (ABorder2!=NULL) * ABorder2 = mesh2Corners[0][1];
139 assert(AMeridians>0);
140 assert(AParallels>0);
152 assert(AMeridians>0);
153 assert(AParallels>0);
162 CDart * top, * bottom;
170 if (ASouthPole!=NULL) * ASouthPole = southPole;
171 if (ANorthPole!=NULL) * ANorthPole = northPole;
176 assert(AMeridians>0);
177 assert(AParallels>0);
188 bool AClose1,
bool AClose2)
190 assert(AMeridians>0);
191 assert(AParallels>0);
204 if (ABorder1!=NULL) * ABorder1 = border1;
205 if (ABorder2!=NULL) * ABorder2 = border2;
209 bool AClose1,
bool AClose2)
211 assert(AMeridians>0);
212 assert(AParallels>0);
225 assert(AMeridians>0);
226 assert(AParallels>0);
244 if (ABaseDart!=NULL) * ABaseDart = base;
245 if (APoleDart!=NULL) * APoleDart = pole;
251 assert(AMeridians>0);
252 assert(AParallels>0);
264 assert(AMeridians>0);
265 assert(AParallels>0);
276 if (AEquator!=NULL) * AEquator =
alpha1(border1);
281 assert(AMeridians>0);
282 assert(AParallels>0);
293 CDart * ASquareCorners[2][2])
297 assert(AMeshDimension>=0 && AMeshDimension<=2);
299 if (AMeshDimension==0)
302 if (AMeshDimension==2)
309 ASquareCorners[0][0] = corners[0];
310 ASquareCorners[1][0] = corners[1];
313 ASquareCorners[0][1] = corners[0];
314 ASquareCorners[1][1] = corners[1];
328 bool ACreatedFaces[3][2],
329 CDart * AFacesCorners[3][2][2][2])
334 assert(AMeshDimension>=0 && AMeshDimension<=2);
335 assert(ACreatedFaces!=NULL);
336 assert(AFacesCorners!=NULL);
338 if (AMeshDimension==0)
342 int s[3] = {ASx, ASy, ASz};
345 for (dim=0; dim<3; ++dim)
350 for (
int side=0; side<2; ++side)
351 if (ACreatedFaces[dim][side])
353 AMeshDimension, AFacesCorners[dim][side]);
355 for (
int n=0; n<4; ++n)
356 AFacesCorners[dim][side][n/2][n%2] = NULL;
360 for (dim=0; dim<3; ++dim)
365 for (
int dim1Side=0; dim1Side<2; ++dim1Side)
366 for (
int dim2Side=0; dim2Side<2; ++dim2Side)
367 if (ACreatedFaces[dim1][dim1Side] && ACreatedFaces[dim2][dim2Side])
369 CDart * dartA = AFacesCorners[dim1][dim1Side][dim2Side][0];
370 CDart * dartB = AFacesCorners[dim2][dim2Side][0][dim1Side];