int GM2BiTansFromCircCirc(const IrtPtType Center1, IrtRType Radius1, const IrtPtType Center2, IrtRType Radius2, int OuterTans, IrtPtType TanPts[2][2])
int GM2PointsFromCircCirc(const IrtPtType Center1, IrtRType Radius1, const IrtPtType Center2, IrtRType Radius2, IrtPtType Inter1, IrtPtType Inter2)
int GM2PointsFromCircCirc3D(const IrtPtType Cntr1, const IrtVecType Nrml1, IrtRType Rad1, const IrtPtType Cntr2, const IrtVecType Nrml2, IrtRType Rad2, IrtPtType Inter1, IrtPtType Inter2)
int GM2PointsFromLineLine(const IrtPtType Pl1, const IrtPtType Vl1, const IrtPtType Pl2, const IrtPtType Vl2, IrtPtType Pt1, IrtRType *t1, IrtPtType Pt2, IrtRType *t2)
int GM2TanLinesFromCircCirc(const IrtPtType Center1, IrtRType Radius1, const IrtPtType Center2, IrtRType Radius2, int OuterTans, IrtLnType Tans[2])
int GM3Pts2EqltrlTriMat(const IrtPtType Pt1Orig, const IrtPtType Pt2Orig, const IrtPtType Pt3Orig, IrtHmgnMatType Mat)
void GMAffineTransUVVals(IPObjectStruct *PObj, const IrtRType Scale[2], const IrtRType Trans[2])
int GMAllIntersLinePolygon2D(const IPVertexStruct *VS, const IrtPtType V1, const IrtPtType V2, IrtRType *AllPrms)
IrtRType GMAngleSphericalTriangle(const IrtVecType Dir, const IrtVecType ODir1, const IrtVecType ODir2)
int GMAnimAffineTransAnimation(const IPObjectStruct *PObjs, IrtRType Trans, IrtRType Scale)
int GMAnimAffineTransAnimation2(const IPObjectStruct *PObjs, IrtRType Min, IrtRType Max)
int GMAnimAffineTransAnimationOne(const IPObjectStruct *PObj, IrtRType Trans, IrtRType Scale)
int GMAnimAffineTransAnimationOne2(const IPObjectStruct *PObj, IrtRType Min, IrtRType Max)
int GMAnimCheckInterrupt(GMAnimationStruct *Anim)
void GMAnimDoAnimation(GMAnimationStruct *Anim, IPObjectStruct *PObjs)
void GMAnimDoSingleStep(GMAnimationStruct *Anim, IPObjectStruct *PObjs)
void GMAnimEvalAnimation(IrtRType t, IPObjectStruct *PObj)
void GMAnimEvalAnimationList(IrtRType t, IPObjectStruct *PObjList)
IPObjectStruct *GMAnimEvalObjAtTime(IrtRType t, IPObjectStruct *PObj)
void GMAnimFindAnimationTime(GMAnimationStruct *Anim, const IPObjectStruct *PObjs)
void GMAnimFindAnimationTimeOne(GMAnimationStruct *Anim, const IPObjectStruct *PObj)
void GMAnimGetAnimInfoText(GMAnimationStruct *Anim)
int GMAnimHasAnimation(const IPObjectStruct *PObjs)
int GMAnimHasAnimationOne(const IPObjectStruct *PObj)
void GMAnimResetAnimStruct(GMAnimationStruct *Anim)
void GMAnimSaveIterationsAsImages(GMAnimationStruct *Anim, IPObjectStruct *PObjs)
void GMAnimSaveIterationsToFiles(GMAnimationStruct *Anim, IPObjectStruct *PObjs)
int GMAnimSetAnimInternalNodes(int AnimInternalNodes)
int GMAnimSetReverseHierarchyMatProd(int ReverseHierarchyMatProd)
IrtRType GMAreaOfTriangle(const IrtRType *Pt1, const IrtRType *Pt2, const IrtRType *Pt3)
IrtRType GMAreaSphericalTriangle(const IrtVecType Dir1, const IrtVecType Dir2, const IrtVecType Dir3)
GMBBBboxStruct *GMBBComputeBboxObject(const IPObjectStruct *PObj, GMBBBboxStruct *Bbox)
GMBBBboxStruct *GMBBComputeBboxObjectList(const IPObjectStruct *PObj, GMBBBboxStruct *Bbox)
GMBBBboxStruct *GMBBComputeOnePolyBbox(const IPPolygonStruct *PPoly, GMBBBboxStruct *Bbox)
GMBBBboxStruct *GMBBComputePointBbox(const IrtRType *Pt, GMBBBboxStruct *Bbox)
GMBBBboxStruct *GMBBComputePolyListBbox(const IPPolygonStruct *PPoly, GMBBBboxStruct *Bbox)
GMBBBboxStruct *GMBBMergeBbox(GMBBBboxStruct *MergedBbox, const GMBBBboxStruct *Bbox)
GMBBBboxStruct *GMBBMergeBboxTo(const GMBBBboxStruct *Bbox1, const GMBBBboxStruct *Bbox2, GMBBBboxStruct *MergedBbox)
int GMBBSetBBoxPrecise(int Precise)
const IPObjectStruct *GMBBSetGlblBBInstncObjList(const IPObjectStruct *BBInstObjList)
IrtRType *GMBaryCentric3Pts2DToData(const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3, const IrtPtType Pt, IrtVecType RetVal)
IrtRType *GMBaryCentric3PtsToData(const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3, const IrtPtType Pt, IrtVecType RetVal)
IrtRType GMBasicSetEps(IrtRType Eps)
void GMBlendNormalsToVertices(IPPolygonStruct *PlList, IrtRType MaxAngle)
void GMBoxBVHConstructGeneralAlignedFrustum(const IrtRType Center[3], IrtRType SizeX, IrtRType SizeY, const IrtRType XAxis[3], const IrtRType HeightAxis[3], IrtRType Height, IrtRType XAngle, IrtRType YAngle, GMGeneralFrustumInfoStruct *Frustum)
GMBoxBVHStruct *GMBoxBVHCreate(const GMBoxBVHInfoStruct **Boxes, int Num, int Size)
IPPolygonStruct *GMBoxBVHDbgConstructGeneralAlignedFrustum( const IrtRType Center[3], IrtRType SizeX, IrtRType SizeY, const IrtRType XAxis[3], const IrtRType HeightAxis[3], IrtRType Height, IrtRType XAngle, IrtRType YAngle)
IPObjectStruct *GMBoxBVHDbgConstructGeneralAlignedFrustum2( const IrtRType Center[3], IrtRType SizeX, IrtRType SizeY, const IrtRType XAxis[3], const IrtRType HeightAxis[3], IrtRType Height, IrtRType XAngle, IrtRType YAngle)
void GMBoxBVHFree(GMBoxBVHStruct *BVH)
int GMBoxBVHGetBoxIntersection(const GMBoxBVHStruct *BVH, const IrtRType *Max, const IrtRType *Min, int *Res)
int GMBoxBVHGetBoxNum(const GMBoxBVHStruct *BVH)
int GMBoxBVHGetFrustumIntersection(const GMBoxBVHStruct *BVH, const IrtRType *Max, const IrtRType *Min, IrtRType Angle, int *Res)
int GMBoxBVHGetGeneralAlignedFrustumIntersection(const GMBoxBVHStruct *BVH, const IrtRType Center[3], IrtRType SizeX, IrtRType SizeY, const IrtRType XAxis[3], const IrtRType HeightAxis[3], IrtRType Height, IrtRType XAngle, IrtRType YAngle, int *Res)
int GMBoxBVHGetGeneralAlignedFrustumIntersection2( const GMBoxBVHStruct *BVH, const GMGeneralFrustumInfoStruct *Frustum, int *Res)
int GMBoxBVHTestFrustumIntersection(const GMBoxBVHStruct *BVH, const IrtRType *Max, const IrtRType *Min, IrtRType Angle)
int GMCircleFrom2Pts2Tans(IrtPtType Center, IrtRType *Radius, const IrtPtType Pt1, const IrtPtType Pt2, const IrtVecType Tan1, const IrtVecType Tan2)
int GMCircleFrom3Points(IrtPtType Center, IrtRType *Radius, const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3)
int GMCircleFromLstSqrPts(IrtPtType Center, IrtRType *Radius, const IrtPtType *Pts, int PtsSize)
IPPolygonStruct *GMCleanUpDupPolys(IPPolygonStruct **PPolygons, IrtRType Eps)
IPPolygonStruct *GMCleanUpPolygonList(IPPolygonStruct **PPolygons, IrtRType Eps)
IPPolygonStruct *GMCleanUpPolylineList(IPPolygonStruct **PPolylines, IrtRType Eps)
IPPolygonStruct *GMCleanUpPolylineList2(IPPolygonStruct *PPolylines)
IPPolygonStruct *GMClipPolysAgainstPlane(IPPolygonStruct *PHead, IPPolygonStruct **PClipped, IPPolygonStruct **PInter, IrtPlnType Plane)
int GMCollinear3Pts(const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3)
int GMCollinear3PtsInside(const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3)
int GMCollinear3Vertices(const IPVertexStruct *V1, const IPVertexStruct *V2, const IPVertexStruct *V3)
void GMComplexRoot(IrtRType RealVal, IrtRType ImageVal, IrtRType *RealRoot, IrtRType *ImageRoot)
int GMComputeAverageVertex(const IPVertexStruct *VS, IrtPtType CenterPoint, IrtRType BlendFactor)
int GMComputeAverageVertex2(const int *NS, const IPPolyVrtxArrayStruct *PVIdx, IrtPtType CenterPoint, int CenterIndex, IrtRType BlendFactor, IrtRType DesiredRadius)
IPPolygonStruct *GMConvertPolyToTriangles(IPPolygonStruct *Pl)
IPObjectStruct *GMConvertPolysToNGons(const IPObjectStruct *PlObj, int n, int HandleNormals)
IPObjectStruct *GMConvertPolysToRectangles(IPObjectStruct *PolyObj)
IPObjectStruct *GMConvertPolysToTriangles(const IPObjectStruct *PObj)
IPObjectStruct *GMConvertPolysToTriangles2(const IPObjectStruct *PObj)
IPObjectStruct *GMConvertPolysToTrianglesIntrrPt(IPObjectStruct *PolyObj)
int GMConvexHull(IrtE2PtStruct *DTPts, int *NumOfPoints)
int GMConvexNormalizeNormal(int NormalizeNormals)
void GMConvexPolyObject(IPObjectStruct *PObj, int HandleNormals)
IPObjectStruct *GMConvexPolyObjectN(const IPObjectStruct *PObj, int HandleNormals)
int GMConvexRaysToVertices(int RaysToVertices)
int GMCoplanar4Pts(const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3, const IrtPtType Pt4)
IrtRType GMDistLineLine(const IrtPtType Pl1, const IrtPtType Vl1, const IrtPtType Pl2, const IrtPtType Vl2)
IrtRType GMDistPointLine(const IrtPtType Point, const IrtPtType Pl, const IrtPtType Vl)
IrtRType GMDistPointPlane(const IrtPtType Point, const IrtPlnType Plane)
IrtRType GMDistPointPoint(const IrtPtType P1, const IrtPtType P2)
IrtRType GMDistPolyPoly(const IPPolygonStruct *Pl1, const IPPolygonStruct *Pl2, IPVertexStruct **V1, IPVertexStruct **V2, int TagIgnoreV)
IrtRType GMDistPolyPt(const IPPolygonStruct *Pl, IrtPtType Pt, const IPVertexStruct **ExtremeV, int MaxDist)
IrtRType GMDistPolyPt2(const IPPolygonStruct *Pl, int IsPolyline, IrtPtType Pt, IPVertexStruct **ExtremeV, int MaxDist)
int GMEvalWeightsVFromPl(const IrtRType *Coord, const IPPolygonStruct *Pl, IrtRType *Wgt)
IrtRType GMExecuteAnimationEvalMat(IPObjectStruct *AnimationP, IrtRType Time, IrtHmgnMatType ObjMat)
IPVertexStruct *GMFilterInteriorVertices(IPVertexStruct *VHead, IrtRType MinTol, int n)
int GMFindLinComb2Vecs(const IrtVecType V1, const IrtVecType V2, const IrtVecType V, IrtRType w[2])
int GMFindPtInsidePoly(const IPPolygonStruct *Pl, IrtPtType PtInside)
int GMFindPtInsidePolyKernel(const IPVertexStruct *VE, IrtPtType KrnlPt)
IPVertexStruct *GMFindThirdPointInTriangle(const IPPolygonStruct *Pl, const IPVertexStruct *V, const IPVertexStruct *VNext)
void GMFindUnConvexPolygonNormal(const IPVertexStruct *VL, IrtVecType Nrml)
IrtRType GMFitData(IrtRType** PointData, unsigned int NumberOfPointsToFit, GMFittingModelType FittingModel, IrtRType ModelExtParams[], IrtRType Tolerance)
IrtRType GMFitDataWithOutliers(IrtRType **PointData, unsigned int NumberOfPointsToFit, GMFittingModelType FittingModel, IrtRType ModelExtParams[], IrtRType Tolerance, unsigned int NumOfChecks)
IrtRType GMFitEstimateRotationAxis(IrtPtType *PointsOnObject, IrtVecType *Normals, unsigned int NumberOfPoints, IrtPtType PointOnRotationAxis, IrtVecType RotationAxisDirection)
IrtRType GMFitObjectWithOutliers(IPPolygonStruct *PPoly, GMFittingModelType FittingModel, IrtRType ModelExtParams[], IrtRType Tolerance, unsigned int NumOfChecks)
void GMFixNormalsOfPolyModel(IPPolygonStruct *PlList, int TrustFixedPt)
void GMFixOrientationOfPolyModel(IPPolygonStruct *Pls)
void GMFixPolyNormals(IPObjectStruct *PObj, int TrustFixPt)
IPObjectStruct *GMGenMatObjectRotVec(const IrtVecType Vec, const IrtRType *Degree)
IPObjectStruct *GMGenMatObjectRotX(const IrtRType *Degree)
IPObjectStruct *GMGenMatObjectRotY(const IrtRType *Degree)
IPObjectStruct *GMGenMatObjectRotZ(const IrtRType *Degree)
IPObjectStruct *GMGenMatObjectScale(const IrtVecType Vec)
IPObjectStruct *GMGenMatObjectTrans(const IrtVecType Vec)
IPObjectStruct *GMGenMatObjectV2V(const IrtVecType V1, const IrtVecType V2)
IPObjectStruct *GMGenMatObjectZ2Dir(const IrtVecType Dir)
IPObjectStruct *GMGenMatObjectZ2Dir2(const IrtVecType Dir, const IrtVecType Dir2)
IPObjectStruct *GMGenMatrix3Pts2EqltrlTri(const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3)
int GMGenMatrix4Pts2Affine4Pts(const IrtPtType P0, const IrtPtType P1, const IrtPtType P2, const IrtPtType P3, const IrtPtType Q0, const IrtPtType Q1, const IrtPtType Q2, const IrtPtType Q3, IrtHmgnMatType Trans)
void GMGenMatrixRotV2V(IrtHmgnMatType Mat, const IrtVecType V1, const IrtVecType V2)
void GMGenMatrixRotVec(IrtHmgnMatType Mat, const IrtVecType Vec, IrtRType Degrees)
void GMGenMatrixX2Dir(IrtHmgnMatType Mat, const IrtVecType Dir)
void GMGenMatrixY2Dir(IrtHmgnMatType Mat, const IrtVecType Dir)
void GMGenMatrixZ2Dir(IrtHmgnMatType Mat, const IrtVecType Dir)
void GMGenMatrixZ2Dir2(IrtHmgnMatType Mat, const IrtVecType Dir, const IrtVecType Dir2)
IPPolygonStruct *GMGenPolyline2Vrtx(IrtVecType V1, IrtVecType V2, IPPolygonStruct *Pnext)
void GMGenProjectionMat(const IrtPlnType ProjPlane, const IrtRType EyePos[4], IrtHmgnMatType Mat)
void GMGenReflectionMat(const IrtPlnType ReflectPlane, IrtHmgnMatType Mat)
void GMGenRotateMatrix(IrtHmgnMatType Mat, const IrtVecType Dir)
void GMGenTransMatrixZ2Dir(IrtHmgnMatType Mat, const IrtVecType Trans, const IrtVecType Dir, IrtRType Scale)
void GMGenTransMatrixZ2Dir2(IrtHmgnMatType Mat, const IrtVecType Trans, const IrtVecType Dir, const IrtVecType Dir2, IrtRType Scale)
void GMGenUVValsForPolys(const IPObjectStruct *PObj, IrtRType UTextureRepeat, IrtRType VTextureRepeat, IrtRType WTextureRepeat, int HasXYZScale)
CagdBType GMGetGeneralAlignedFrustumPtsIntersection( const IrtRType Center[3], IrtRType SizeX, IrtRType SizeY, const IrtRType XAxis[3], const IrtRType HeightAxis[3], IrtRType Height, IrtRType XAngle, IrtRType YAngle, const IrtRType **Pts, int NumPts, CagdBType RationalPts, IrtRType Tol)
IrtBType GMGetGeneralAlignedFrustumPtsIntersection2( const GMGeneralFrustumInfoStruct *Frustum, const IrtRType **Pts, int NumPts, IrtBType RationalPts, IrtRType Tolerance)
IPObjectStruct *GMGetMatTransPortion(const IPObjectStruct *MatObj, int TransPortion)
int GMGetMaxNumVrtcsPoly(IPObjectStruct *PolyObj)
int GMIdentifyTJunctions(IPObjectStruct *PObj, GMIdentifyTJunctionFuncType TJuncCB, IrtRType Eps)
void GMInterpVrtxNrmlBetweenTwo(IPVertexStruct *V, const IPVertexStruct *V1, const IPVertexStruct *V2)
void GMInterpVrtxNrmlBetweenTwo2(IrtPtType Pt, IrtVecType Normal, const IPVertexStruct *V1, const IPVertexStruct *V2, int Normalize)
int GMInterpVrtxNrmlFromPl(IPVertexStruct *Vrtx, const IPPolygonStruct *Pl)
int GMInterpVrtxRGBBetweenTwo(IPVertexStruct *V, const IPVertexStruct *V1, const IPVertexStruct *V2)
int GMInterpVrtxRGBFromPl(IPVertexStruct *Vrtx, const IPPolygonStruct *Pl)
int GMInterpVrtxUVBetweenTwo(IPVertexStruct *V, const IPVertexStruct *V1, const IPVertexStruct *V2)
int GMInterpVrtxUVFromPl(IPVertexStruct *Vrtx, const IPPolygonStruct *Pl)
int GMInverseBilinearMap(const IrtPtType P00, const IrtPtType P01, const IrtPtType P10, const IrtPtType P11, const IrtPtType PtInt, IrtPtType UV[2])
int GMIsConvexPolygon(IPPolygonStruct *Pl)
int GMIsConvexPolygon2(const IPPolygonStruct *Pl)
static int GMIsInterLineLine2D(const IrtPtType A1, const IrtPtType A2, const IrtPtType B1, const IrtPtType B2, IrtRType *t)
int GMIsInterLinePolygon2D(const IPVertexStruct *VS, const IrtPtType V1, const IrtPtType V2, IrtRType *t)
int GMIsPolygonPlanar(const IPPolygonStruct *Pl, IrtRType Tol)
int GMIsPtInsideCirc(const IrtRType *Point, const IrtRType *Center, IrtRType Radius)
int GMIsPtOnCirc(const IrtRType *Point, const IrtRType *Center, IrtRType Radius)
IPPolygonStruct *GMLimitTrianglesEdgeLen(const IPPolygonStruct *OrigPls, IrtRType MaxLen)
int GMLineFrom2Planes(const IrtPlnType Pl1, const IrtPlnType Pl2, IrtPtType Pt, IrtVecType Dir)
int GMLineFrom2Points(IrtLnType Line, const IrtPtType Pt1, const IrtPtType Pt2)
void GMLineSweep(GMLsLineSegStruct **Lines)
int GMLoadTextFont(const char *FName)
IPObjectStruct *GMMakeTextGeometry(const char *Str, const IrtVecType Spacing, const IrtRType *Scaling)
int GMMatFromPosDir(const IrtPtType Pos, const IrtVecType Dir, const IrtVecType UpDir, IrtHmgnMatType Mat)
IPPolygonStruct *GMMatchPointListIntoPolylines(IPObjectStruct *PtsList, IrtRType MaxTol)
void GMMatrixToTransform(IrtHmgnMatType Mat, IrtVecType S, GMQuatType R, IrtVecType T)
IPPolygonStruct *GMMergeClosedLoopHoles(IPPolygonStruct *PlMain, IPPolygonStruct *PClosedPls)
int *GMMergeFindSimilarPoints(IrtRType *VecPts, int PtLen, int VecLen, IrtRType Tolerance)
int GMMergeGeometry(void **GeomEntities, int NumOfGEntities, IrtRType Eps, IrtRType IdenticalEps, VoidPtr GenericData, GMMergeGeomInitFuncType InitFunc, GMMergeGeomDistFuncType DistSqrFunc, GMMergeGeomKeyFuncType *KeyFuncs, GMMergeGeomMergeFuncType MergeFunc)
IPPolygonStruct *GMMergePolylines(IPPolygonStruct *Polys, IrtRType Eps)
int GMMergeSameGeometry(void **GeomEntities, int NumOfGEntities, IrtRType IdenticalEps, VoidPtr GenericData, GMMergeGeomInitFuncType InitFunc, GMMergeGeomDistFuncType DistSqrFunc, GMMergeGeomKeyFuncType *KeyFuncs, GMMergeGeomMergeFuncType MergeFunc)
int GMMinSpanCirc(IrtE2PtStruct *DTPts, int NumOfPoints, IrtE2PtStruct *Center, IrtRType *Radius)
int GMMinSpanCone(IrtVecType *DTVecs, int VecsNormalized, int NumOfVecs, IrtVecType ConeAxis, IrtRType *ConeAngle)
int GMMinSpanConeAvg(IrtVecType *DTVecs, int VecsNormalized, int NumOfVecs, IrtVecType ConeAxis, IrtRType *ConeAngle)
int GMMinSpanSphere(IrtE3PtStruct *DTPts, int NumOfPoints, IrtE3PtStruct *Center, IrtRType *Radius)
int GMMonotonePolyConvex(IPVertexStruct *VHead, int Cnvx)
int GMObjectNumCoordinates(const IPObjectStruct *Obj)
int GMOrthogonalVector(const IrtVecType V, IrtVecType OV, int UnitLen)
void GMPlCrvtrSetCurvatureAttr(IPPolygonStruct *PolyList, int NumOfRings, int EstimateNrmls)
int GMPlCrvtrSetFitDegree(int UseCubic)
void GMPlSilImportanceAttr(IPPolygonStruct *PolyList)
IPPolygonStruct *GMPlSilImportanceRange(IPPolygonStruct *PolyList)
IrtRType GMPlanarVecVecAngle(const IrtVecType V1, const IrtVecType V2, int Normalize)
int GMPlaneFrom3Points(IrtPlnType Plane, const IrtPtType Pt1, const IrtPtType Pt2, const IrtPtType Pt3)
IPObjectStruct *GMPointCoverOfPolyObj(IPObjectStruct *PolyObj, int n, IrtRType *Dir, char *PlAttr)
IPObjectStruct *GMPointCoverOfUnitHemiSphere(IrtRType HoneyCombSize)
int GMPointFrom3Planes(const IrtPlnType Pl1, const IrtPlnType Pl2, const IrtPlnType Pl3, IrtPtType Pt)
int GMPointFromLinePlane(const IrtPtType Pl, const IrtPtType Vl, const IrtPlnType Plane, IrtPtType InterPoint, IrtRType *t)
int GMPointFromLinePlane01(const IrtPtType Pl, const IrtPtType Vl, const IrtPlnType Plane, IrtPtType InterPoint, IrtRType *t)
int GMPointFromPlanarLineLine(const IrtPtType Pl1, const IrtPtType Vl1, const IrtPtType Pl2, const IrtPtType Vl2, IrtPtType Pi, IrtRType *t1, IrtRType *t2)
IrtRType GMPointFromPointLine(const IrtPtType Point, const IrtPtType Pl, const IrtPtType Vl, IrtPtType ClosestPoint)
int GMPointFromPointPlane(const IrtPtType Pt, const IrtPlnType Plane, IrtPtType ClosestPoint)
int GMPointInsideCnvxPolygon(const IrtPtType Pt, const IPPolygonStruct *Pl)
int GMPointOnPolygonBndry(const IrtPtType Pt, const IPPolygonStruct *Pl, IrtRType Eps)
void GMPointVecFromLine(const IrtLnType Line, IrtPtType Pt, IrtVecType Dir)
void GMPolyAdjacncyFree(VoidPtr PolyAdj)
VoidPtr GMPolyAdjacncyGen(IPObjectStruct *PObj, IrtRType EqlEps)
void GMPolyAdjacncyVertex(IPVertexStruct *V, VoidPtr PolyAdj, GMPolyAdjacncyVertexFuncType AdjVertexFunc)
int GMPolyCentroid(const IPPolygonStruct *Pl, IrtPtType Centroid)
int GMPolyHasCollinearEdges(const IPPolygonStruct *Pl)
IPPolygonStruct *GMPolyHierarchy2SimplePoly(IPPolygonStruct *Root, IPPolygonStruct *Islands)
IrtRType GMPolyLength(const IPPolygonStruct *Pl)
IPObjectStruct *GMPolyMeshSmoothing(IPObjectStruct *PolyObj, const IPPolygonStruct *VerticesToRound, int AllowBndryMove, IrtRType RoundingRadius, int NumIters, IrtRType BlendFactor, int CurvatureLimits)
IrtRType GMPolyObjectArea(const IPObjectStruct *PObj, int SignedArea)
IrtRType GMPolyObjectVolume(const IPObjectStruct *PObj)
IPPolygonStruct *GMPolyOffset(const IPPolygonStruct *Poly, int IsPolygon, IrtRType Ofst, GMPolyOffsetAmountFuncType AmountFunc)
IPPolygonStruct *GMPolyOffset3D(const IPPolygonStruct *Poly, IrtRType Ofst, int ForceSmoothing, IrtRType MiterEdges, GMPolyOffsetAmountFuncType AmountFunc)
IrtRType GMPolyOffsetAmountDepth(const IrtRType *Coord)
IrtRType GMPolyOnePolyArea(const IPPolygonStruct *Pl, int SignedArea)
IrtRType GMPolyOnePolyXYArea(const IPVertexStruct *VHead, int SignedArea)
IrtRType GMPolyPlaneClassify(const IPPolygonStruct *Pl, const IrtPlnType Pln)
IPPolygonStruct *GMPolyPropFetch(IPPolygonStruct *Pls, GMFetchVertexPropertyFuncType VertexProperty, IrtRType ConstVal, void *AuxData)
IPPolygonStruct *GMPolyPropFetchAttribute(IPPolygonStruct *Pls, IPAttrIDType AttrID, IrtRType Value)
IPPolygonStruct *GMPolyPropFetchCurvature(IPPolygonStruct *Pls, int CurvatureProperty, int NumOfRings, IrtRType CrvtrVal)
IPPolygonStruct *GMPolyPropFetchIsophotes(IPPolygonStruct *Pls, const IrtVecType ViewDir, IrtRType InclinationAngle)
int GMPolygonPlaneInter(const IPPolygonStruct *Pl, const IrtPlnType Pln, IrtRType *MinDist)
int GMPolygonPointInclusion(const IPPolygonStruct *Pl, const IrtPtType Pt, IrtRType OnBndryEps)
int GMPolygonPointInclusion3D(const IPPolygonStruct *Pl, const IrtPtType Pt)
int GMPolygonRayInter(const IPPolygonStruct *Pl, const IrtPtType PtRay, int RayAxes)
int GMPolygonRayInter2(const IPPolygonStruct *Pl, const IrtPtType PtRay, int RayAxes, IPVertexStruct **FirstInterV, IrtRType *FirstInterP, IrtRType *AllInters)
int GMPolygonRayInter3D(const IPPolygonStruct *Pl, const IrtPtType PtRay, int RayAxes)
IPPolygonStruct *GMPolygonalMorphosis(const IPPolygonStruct *Pl1, const IPPolygonStruct *Pl2, IrtRType t)
IrtRType GMQuadAreaPerimeterRatioWeightFunc(const CagdPolylineStruct *P, const int *VIndices, int numV)
struct IPPolygonStruct *GMQuadrangulatePolygon(const CagdPolylineStruct *Pl, GMQuadWeightFuncType WF, void *UserData)
struct IPPolygonStruct *GMQuadrangulatePolygon2(const struct IPPolygonStruct *Pl, GMQuadWeightFuncType WF, void *UserData)
struct IPPolygonStruct *GMQuadrangulatePolygonList(const struct IPPolygonStruct *PlgnList, GMQuadWeightFuncType WF, void *UserData)
void GMQuatAdd(GMQuatType q1, GMQuatType q2, GMQuatType QRes)
void GMQuatExp(IrtVecType SrcVec, GMQuatType DstQ)
void GMQuatInverse(GMQuatType SrcQ, GMQuatType DstQ)
int GMQuatIsUnitQuat(GMQuatType q)
void GMQuatLog(GMQuatType SrcQ, IrtVecType DstVec)
void GMQuatMatToQuat(IrtHmgnMatType Mat, GMQuatType q)
int GMQuatMatrixToAngles(IrtHmgnMatType Mat, IrtVecType *Vec)
IrtRType GMQuatMatrixToScale(IrtHmgnMatType Mat)
void GMQuatMatrixToTranslation(IrtHmgnMatType Mat, IrtVecType Vec)
int GMQuatMatrixToVector(IrtHmgnMatType Mat, GMQuatTransVecType TransVec)
void GMQuatMul(GMQuatType q1, GMQuatType q2, GMQuatType QRes)
void GMQuatNormalize(GMQuatType q)
void GMQuatPow(GMQuatType MantisQ, IrtRType Expon, GMQuatType DstQ)
void GMQuatRotateVec(IrtVecType OrigVec, GMQuatType RotQ, IrtVecType DestVec)
void GMQuatRotationToQuat(IrtRType Xangle, IrtRType Yangle, IrtRType Zangle, GMQuatType q)
void GMQuatToMat(GMQuatType q, IrtHmgnMatType Mat)
void GMQuatToRotation(GMQuatType q, IrtVecType *Angles, int *NumSolutions)
void GMQuatVecToRotMatrix(GMQuatTransVecType TransVec, IrtHmgnMatType RotMatrix)
void GMQuatVecToScaleMatrix(GMQuatTransVecType TransVec, IrtHmgnMatType ScaleMatrix)
void GMQuatVecToTransMatrix(GMQuatTransVecType TransVec, IrtHmgnMatType TransMatrix)
void GMQuatVectorToMatrix(GMQuatTransVecType TransVec, IrtHmgnMatType Mat)
int GMRayCnvxPolygonInter(const IrtPtType RayOrigin, const IrtVecType RayDir, const IPPolygonStruct *Pl, IrtPtType InterPoint)
int GMRefineDeformedTriangle(IPPolygonStruct *Pl, GMPointDeformVrtxFctrFuncType DeformVrtxFctrFunc, GMPointDeformVrtxDirFuncType DeformVrtxDirFunc, void *UserData, IrtRType DeviationTol, IrtRType MaxEdgeLen)
int GMRefineDeformedTriangle2(IPPolygonStruct *Pl, GMPointDeformVrtxFctrFuncType DeformVrtxFctrFunc, void *UserData, IrtBType Ref12, IrtBType Ref23, IrtBType Ref31)
IPObjectStruct *GMRegularizePolyModel(const IPObjectStruct *PObj, int SplitCollinear, IrtRType MinRefineDist)
void GMSLerp(const IrtVecType V1, const IrtVecType V2, IrtRType t, IrtVecType VOut)
void GMScanConvertTriangle(int Pt1[2], int Pt2[2], int Pt3[2], GMScanConvertApplyFuncType ApplyFunc)
IPObjectStruct *GMSilExtractBndry(IPObjectStruct *PObjReg)
IPObjectStruct *GMSilExtractDiscont(IPObjectStruct *PObjReg, IrtRType MinAngle)
IPObjectStruct *GMSilExtractSil(VoidPtr PrepSils, IrtHmgnMatType ViewMat)
IPObjectStruct *GMSilExtractSilDirect(IPObjectStruct *PObjReg, IrtHmgnMatType ViewMat)
IPObjectStruct *GMSilExtractSilDirect2(IPObjectStruct *PObjReg, IrtHmgnMatType ViewMat)
int GMSilOrigObjAlive(int ObjAlive)
VoidPtr GMSilPreprocessPolys(IPObjectStruct *PObjReg, int n)
int GMSilPreprocessRefine(VoidPtr PrepSils, int n)
void GMSilProprocessFree(VoidPtr PrepSils)
int GMSolveCubicEqn(IrtRType A, IrtRType B, IrtRType C, IrtRType *Sols)
int GMSolveCubicEqn2(IrtRType A, IrtRType B, IrtRType C, IrtRType *RSols, IrtRType *ISols)
int GMSolveQuadraticEqn(IrtRType A, IrtRType B, IrtRType *Sols)
int GMSolveQuadraticEqn2(IrtRType B, IrtRType C, IrtRType *RSols, IrtRType *ISols)
int GMSolveQuarticEqn(IrtRType a, IrtRType b, IrtRType c, IrtRType d, IrtRType *Sols)
const IrtVecType *GMSphConeGetPtsDensity(int *n)
void GMSphConeQuery2GetVectors(VoidPtr SphConePtr, GMSphConeQueryDirFuncType SQQuery, GMSphConeQueryCallBackFuncType SQFunc)
void GMSphConeQueryFree(VoidPtr SphConePtr)
void GMSphConeQueryGetVectors(VoidPtr SphConePtr, IrtVecType Dir, IrtRType Angle, GMSphConeQueryCallBackFuncType SQFunc)
VoidPtr GMSphConeQueryInit(IPObjectStruct *PObj, int n)
int GMSphereWith3Pts(IrtE3PtStruct *Pts, IrtRType *Center, IrtRType *RadiusSqr)
int GMSphereWith4Pts(IrtE3PtStruct *Pts, IrtRType *Center, IrtRType *RadiusSqr)
IPPolygonStruct *GMSplitNonConvexPoly(IPPolygonStruct *Pl, int HandleNormals)
IPPolygonStruct *GMSplitPolyInPlaceAt2Vertices(IPPolygonStruct *Pl, IPVertexStruct *V1, IPVertexStruct *V2)
IPPolygonStruct *GMSplitPolyInPlaceAtVertex(IPPolygonStruct *Pl, IPVertexStruct *VHead)
int GMSplitPolygonAtPlane(IPPolygonStruct *Pl, const IrtPlnType Pln)
IPPolygonStruct *GMSplitPolysAtCollinearVertices(IPPolygonStruct *Pls)
IrtPtType *GMSrfBilinearFit(IrtPtType *ParamDomainPts, IrtPtType *EuclideanPts, int FirstAtOrigin, int NumPts, IrtPtType *FitPts)
IrtPtType *GMSrfCubicQuadOnly(IrtPtType *ParamDomainPts, IrtPtType *EuclideanPts, int FirstAtOrigin, int NumEucDim, int NumPts, IrtPtType *CubicData)
IrtPtType *GMSrfQuadricFit(IrtPtType *ParamDomainPts, IrtPtType *EuclideanPts, int FirstAtOrigin, int NumPts, IrtPtType *FitPts)
IrtPtType *GMSrfQuadricQuadOnly(IrtPtType *ParamDomainPts, IrtPtType *EuclideanPts, int FirstAtOrigin, int NumEucDim, int NumPts, IrtPtType *QuadData)
IPObjectStruct *GMSubButterfly(const IPObjectStruct *OriginalObj, IrtRType ButterflyWCoef)
IPObjectStruct *GMSubCatmullClark(const IPObjectStruct *OriginalObj)
IPObjectStruct *GMSubLoop(const IPObjectStruct *OriginalObj)
GMTransObjUpdateAnimCrvsFuncType GMTransObjSetAnimCrvUpdateFunc( GMTransObjUpdateAnimCrvsFuncType AnimUpdateFunc)
GMTransObjUpdateFuncType GMTransObjSetUpdateFunc(GMTransObjUpdateFuncType UpdateFunc)
IPObjectStruct *GMTransObjUpdateAnimCrvs(IPObjectStruct *PAnim, IrtHmgnMatType Mat)
IPObjectStruct *GMTransformObject(const IPObjectStruct *PObj, IrtHmgnMatType Mat)
IPObjectStruct *GMTransformObjectInPlace(IPObjectStruct *PObj, IrtHmgnMatType Mat)
IPObjectStruct *GMTransformObjectList(const IPObjectStruct *PObj, IrtHmgnMatType Mat)
IPPolygonStruct *GMTransformPolyList(const IPPolygonStruct *Pls, IrtHmgnMatType Mat, int IsPolygon)
int GMTrianglePointInclusion(const IrtRType *V1, const IrtRType *V2, const IrtRType *V3, const IrtPtType Pt)
IPPolygonStruct *GMTriangulatePolygon(const CagdPolylineStruct *Pl)
IPPolygonStruct *GMTriangulatePolygon2(const IPPolygonStruct *Pl)
IPPolygonStruct *GMTriangulatePolygonList(const IPPolygonStruct *PlgnList)
int GMTwoPolySameGeom(const IPPolygonStruct *Pl1, const IPPolygonStruct *Pl2, IrtRType Eps)
void GMUpdateVerticesByInterp(IPPolygonStruct *PlList, const IPPolygonStruct *OriginalPl)
void GMVecCopy(IrtVecType Vdst, const IrtVecType Vsrc)
void GMVecCrossProd(IrtVecType Vres, const IrtVecType V1, const IrtVecType V2)
IrtRType GMVecDotProd(const IrtVecType V1, const IrtVecType V2)
IrtRType GMVecDotProdLen(const IrtRType *V1, const IrtRType *V2, int Len)
IrtRType GMVecLength(const IrtVecType V)
int GMVecMaxAbsValueIndex(const IrtVecType V)
int GMVecMinAbsValueIndex(const IrtVecType V)
void GMVecNormalize(IrtVecType V)
void GMVecReflectPlane(IrtVecType Dst, IrtVecType Src, IrtVecType PlaneNormal)
IrtRType GMVecVecAngle(const IrtVecType V1, const IrtVecType V2, int Normalize)
int GMVectorFromVectorPlane(const IrtVecType Vec, const IrtVecType PlaneN, IrtPtType ProjVec)
IPPolygonStruct *GMVerifyPolygonsPlanarity(IPPolygonStruct *Pls, IrtRType Tol)
void GMVrtxListToCircOrLin(IPPolygonStruct *Pls, int DoCirc)
void GMVrtxListToCircOrLinDup(IPPolygonStruct *Pls, int DoCirc)
void GMZBufferClear(VoidPtr ZbufferID)
void GMZBufferClearSet(VoidPtr ZbufferID, IrtRType Depth)
void GMZBufferFree(VoidPtr ZbufferID)
VoidPtr GMZBufferInit(int Width, int Height)
VoidPtr GMZBufferInvert(VoidPtr ZbufferID)
VoidPtr GMZBufferLaplacian(VoidPtr ZbufferID)
void GMZBufferOGLClear(void)
void GMZBufferOGLFlush(void)
IritIntPtrSizeType GMZBufferOGLInit(int Width, int Height, IrtRType ZMin, IrtRType ZMax, int OffScreen)
void GMZBufferOGLMakeActive(IritIntPtrSizeType Id)
void GMZBufferOGLQueryColor(IrtRType x, IrtRType y, int *Red, int *Green, int *Blue)
IrtRType GMZBufferOGLQueryZ(IrtRType x, IrtRType y)
void GMZBufferOGLSetColor(int Red, int Green, int Blue)
VoidPtr GMZBufferQueryInfo(VoidPtr ZbufferID, int x, int y)
IrtRType GMZBufferQueryZ(VoidPtr ZbufferID, int x, int y)
VoidPtr GMZBufferRoberts(VoidPtr ZbufferID)
GMZBufferUpdateFuncType GMZBufferSetUpdateFunc(VoidPtr ZbufferID, GMZBufferUpdateFuncType UpdateFunc)
GMZTestsType GMZBufferSetZTest(VoidPtr ZbufferID, GMZTestsType ZTest)
void GMZBufferUpdateHLn(VoidPtr ZbufferID, int x1, int x2, int y, IrtRType z1, IrtRType z2)
VoidPtr GMZBufferUpdateInfo(VoidPtr ZbufferID, int x, int y, VoidPtr Info)
void GMZBufferUpdateLine(VoidPtr ZbufferID, int x1, int y1, int x2, int y2, IrtRType z1, IrtRType z2)
IrtRType GMZBufferUpdatePt(VoidPtr ZbufferID, int x, int y, IrtRType z)
void GMZBufferUpdateTri(VoidPtr ZbufferID, int x1, int y1, IrtRType z1, int x2, int y2, IrtRType z2, int x3, int y3, IrtRType z3)
const char *GeomDescribeError(GeomFatalErrorType ErrorNum)
void GeomFatalError(GeomFatalErrorType ErrID)
GeomSetErrorFuncType GeomSetFatalErrorFunc(GeomSetErrorFuncType ErrorFunc)
void IGRedrawViewWindow(void)
IPObjectStruct *PrimGenBOXObject(const IrtVecType Pt, IrtRType WidthX, IrtRType WidthY, IrtRType WidthZ)
IPObjectStruct *PrimGenBOXWIREObject(const IrtVecType Pt, IrtRType WidthX, IrtRType WidthY, IrtRType WidthZ)
IPObjectStruct *PrimGenCONE2Object(const IrtVecType Pt, const IrtVecType Dir, IrtRType R1, IrtRType R2, int Bases)
IPObjectStruct *PrimGenCONEObject(const IrtVecType Pt, const IrtVecType Dir, IrtRType R, int Bases)
IPObjectStruct *PrimGenCYLINObject(const IrtVecType Pt, const IrtVecType Dir, IrtRType R, int Bases)
IPObjectStruct *PrimGenEXTRUDEObject(const IPObjectStruct *Cross, const IrtVecType Dir, int Bases)
IPObjectStruct *PrimGenFrameController(IrtRType BBoxLen, IrtRType NLeverLen, IrtRType TLeverLen, const char *HandleName)
IPObjectStruct *PrimGenGBOXObject(const IrtVecType Pt, const IrtVecType Dir1, const IrtVecType Dir2, const IrtVecType Dir3)
IPObjectStruct *PrimGenObjectFromPolyList(IPObjectStruct *PObjList)
IPObjectStruct *PrimGenPOLYDISKObject(const IrtVecType Nrml, const IrtVecType Trns, IrtRType R)
IPObjectStruct *PrimGenPOLYGONObject(IPObjectStruct *PObjList, int IsPolyline)
IPPolygonStruct *PrimGenPolygon3Vrtx(const IrtVecType V1, const IrtVecType V2, const IrtVecType V3, const IrtVecType Vin, int *VrtcsRvrsd, IPPolygonStruct *Pnext)
IPPolygonStruct *PrimGenPolygon4Vrtx(const IrtVecType V1, const IrtVecType V2, const IrtVecType V3, const IrtVecType V4, const IrtVecType Vin, int *VrtcsRvrsd, IPPolygonStruct *Pnext)
IPPolygonStruct *PrimGenPolygon4Vrtx2(const IrtVecType V1, const IrtVecType V2, const IrtVecType V3, const IrtVecType V4, const IrtVecType Vin, int *VrtcsRvrsd, int *Singular, IPPolygonStruct *Pnext)
IPPolygonStruct *PrimGenPolyline4Vrtx(const IrtVecType V1, const IrtVecType V2, const IrtVecType V3, const IrtVecType V4, IPPolygonStruct *Pnext)
IPObjectStruct *PrimGenRULEDObject(const IPObjectStruct *Cross1, const IPObjectStruct *Cross2)
IPObjectStruct *PrimGenSPHEREObject(const IrtVecType Center, IrtRType R)
IPObjectStruct *PrimGenSURFREV2AxisObject(IPObjectStruct *Cross, IrtRType StartAngle, IrtRType EndAngle, const IrtVecType Axis)
IPObjectStruct *PrimGenSURFREV2Object(const IPObjectStruct *Cross, IrtRType StartAngle, IrtRType EndAngle)
IPObjectStruct *PrimGenSURFREVAxisObject(IPObjectStruct *Cross, const IrtVecType Axis)
IPObjectStruct *PrimGenSURFREVObject(const IPObjectStruct *Cross)
IPObjectStruct *PrimGenTORUSObject(const IrtVecType Center, const IrtVecType Normal, IrtRType Rmajor, IrtRType Rminor)
IPObjectStruct *PrimGenTransformController2D(const GMBBBboxStruct *BBox, int HasRotation, int HasTranslation, int HasScale)
IPObjectStruct *PrimGenTransformController2DCrvs(const GMBBBboxStruct *BBox)
IPObjectStruct *PrimGenTransformControllerBox(const GMBBBboxStruct *BBox, int HasRotation, int HasTranslation, int HasUniformScale, IrtRType BoxOpacity, IrtRType RelTesalate)
IPObjectStruct *PrimGenTransformControllerSphere(const GMBBBboxStruct *BBox, int HasRotation, int HasTranslation, int HasUniformScale, IrtRType BoxOpacity, IrtRType RelTesalate)
int PrimSetGeneratePrimType(int SetGeneratePrimitive)
int PrimSetResolution(int Resolution)
int PrimSetSurfacePrimitiveRational(int SurfaceRational)
static int *TriangulatePolygonIndices(const CagdPolylineStruct *P, const IPPolygonStruct *IrtP, CagdBType EnsureNoLeakingTrs, int *NumTriangles)
const GMFitFittingShapeStruct *_GMFitGetFittingModel(GMFittingModelType FittingModel)
void main(void)