27 using namespace GMap3d;
30 TOrbit AOrbit,
int ADirectInfoVertex)
44 int AMarkNumber,
int ADirectInfoVertex)
62 ADirectInfoVertex<0 ? Vdest :
66 AMatrix.
applyOn(*Vsrce, *Vdest);
77 #define SET_VALUE(DART, INDEX, VALUE) \
78 ((* getDirectInfoAsCoord(DART, INDEX)) = (VALUE))
112 const CVertex & ALineDirection)
114 assert(!ALineDirection.
isNull());
129 assert(vertex!=NULL);
149 assert(!APlaneNormal.
isNull());
164 assert(vertex!=NULL);
195 for (; it.
cont(); ++it)
211 oldMin = oldMax = value;
215 if (value < oldMin) oldMin = value;
216 if (value > oldMax) oldMax = value;
240 value = (AMin+AMax)/2;
242 value = AMin + (AMax-AMin)*(value-oldMin)/(oldMax-oldMin);
254 int ADirectInfoIndex,
275 switch (AFunctionType)
279 case FUNCTION_LOG : value = value<=0 ? 0 : log(value);
break;
296 int ADirectInfoVertex,
int ADirectInfoParam)
299 if (ADirectInfoParam<0)
303 applyMatrix(translationMatrix, AMarkNumber, ADirectInfoVertex);
323 ADirectInfoVertex<0 ? Vdest :
331 translationMatrix.
translate(param*AVector);
333 translationMatrix.
applyOn(*Vsrce, *Vdest);
348 int ADirectInfoVertex,
int ADirectInfoParam)
350 if (ADirectInfoParam<0)
354 rotationMatrix.
rotate(AAxeVertex, AAxeDirection, AAngle);
355 applyMatrix(rotationMatrix, AMarkNumber, ADirectInfoVertex);
375 ADirectInfoVertex<0 ? Vdest :
383 rotationMatrix.
rotate(AAxeVertex, AAxeDirection,
386 rotationMatrix.
applyOn(*Vsrce, *Vdest);
399 int ADirectInfoVertex,
int ADirectInfoParam)
401 if (ADirectInfoParam<0)
404 scaleMatrix.
scale(ACenter, ACoef);
405 applyMatrix(scaleMatrix, AMarkNumber, ADirectInfoVertex);
425 ADirectInfoVertex<0 ? Vdest :
433 scaleMatrix.
scale(ACenter, param*ACoef);
435 scaleMatrix.
applyOn(*Vsrce, *Vdest);
448 int ADirectInfoVertex,
int ADirectInfoParam)
451 ACenter,
CVertex(ACoef, ACoef, ACoef),
452 ADirectInfoVertex, ADirectInfoParam);
459 int ADirectInfoVertex,
int ADirectInfoParam)
461 assert(!AAxeDirection.
isNull());
463 if (ADirectInfoParam<0)
466 scaleMatrix.
axialScale(AAxeVertex, AAxeDirection, ACoef);
467 applyMatrix(scaleMatrix, AMarkNumber, ADirectInfoVertex);
487 ADirectInfoVertex<0 ? Vdest :
495 scaleMatrix.
axialScale(AAxeVertex, AAxeDirection,
498 scaleMatrix.
applyOn(*Vsrce, *Vdest);
513 int ADirectInfoVertex,
int ADirectInfoParam)
515 assert(!APlaneNormal.
isNull());
517 if (ADirectInfoParam<0)
520 scaleMatrix.
planarScale(APlaneVertex, APlaneNormal, ACoef);
521 applyMatrix(scaleMatrix, AMarkNumber, ADirectInfoVertex);
541 ADirectInfoVertex<0 ? Vdest :
549 scaleMatrix.
planarScale(APlaneVertex, APlaneNormal,
552 scaleMatrix.
applyOn(*Vsrce, *Vdest);