public static extern CagdCrvStruct *TrivCoverIsoSurfaceUsingStrokes(TrivTVStruct *TV, int NumStrokes, int StrokeType, IrtPtType *MinMaxPwrLen, double StepSize, double IsoVal, IrtVecType *ViewDir);
public static extern IPObjectStruct *MCExtractIsoSurface2(TrivTVStruct *TV, int Axis, int TrivarNormals, IrtPtType *CubeDim, int SkipFactor, double SamplingFactor, double IsoVal);
public static extern INCZBufferStruct *INCRndrInitialize(int ZBufSizeX, int ZBufSizeY, int GridSizeX, int GridSizeY, IrtPtType *XYZMin, IrtPtType *XYZMax, int BottomMaxZ);
public static extern double IGFindMinimalDist(IPObjectStruct *PObj, IPPolygonStruct **MinPl, IrtPtType *MinPt, int *MinPlIsPolyline, IrtPtType *LinePos, IrtVecType *LineDir, double *HitDepth);
public static extern int TrivIGATVofRevol(int ArgmntID, CagdSrfStruct *Srf, IrtPtType *AxisPoint, IrtVecType *AxisVector, double StartAngleRad, double EndAngleRads, int IsRational, int ID);
public static extern IPObjectStruct *MCExtractIsoSurface(byte *FileName, int DataType, IrtPtType *CubeDim, int Width, int Height, int Depth, int SkipFactor, double IsoVal);
public static extern double *TrivTVMultEval(double *UKnotVector, double *VKnotVector, double *WKnotVector, int ULength, int VLength, int WLength, int UOrder, int VOrder, int WOrder, IrtPtType *Mesh, IrtPtType *Params, int NumOfParams, int *RetSize, CagdBspBasisFuncMultEvalType EvalType);
public static extern IPVertexStruct *BoolCutPolygonAtRay(IPPolygonStruct *Pl, IrtPtType *Pt);
public static extern IPObjectStruct *MCExtractIsoSurface3(IPObjectStruct *ImageList, IrtPtType *CubeDim, int SkipFactor, double IsoVal);
public static extern int MdlDebugHandleTSrfRefCrvs(MdlTrimSegRefStruct *Refs, MdlTrimSrfStruct *TSrf, IrtPtType *Trans, int Loop, int Display, int TrimEndPts);
public static extern int MdlDebugWriteTrimSegs(MdlTrimSegStruct *TSegs, MdlTrimSrfStruct *TSrf, IrtPtType *Trans);
public static extern int TrivEvalGradient(IrtPtType *Pos, IrtVecType *Gradient);
public static extern int MdlDebugHandleTCrvLoops(MdlTrimSrfStruct *TSrf, MdlLoopStruct *Loops, IrtPtType *Trans, int Display, int TrimEndPts);
public static extern int TrivTVPointInclusion(TrivTVStruct *TV, IrtPtType *Pt);
public static extern int TrivIGAAddBoundaryFaceByPt(int ArgmntID, TrivTVStruct *TV, IrtPtType *Pt, TrivIGANodeBoundaryType NodeBoundary, byte *BoundaryAxisConditions, double Value);
public static extern int MCImprovePointOnIsoSrf(IrtPtType *Pt, IrtPtType *CubeDim, double IsoVal, double Tolerance, double AllowedError);
public static extern void TrivTVBlockEvalSetMesh(IrtPtType *Mesh);
public static Vector3 Convert(IrtPtType *pPoint) => new Vector3((float)pPoint->Values[0], (float)pPoint->Values[1], (float)pPoint->Values[2]);
public static extern IPAttributeStruct *VMdlGetPointVMdlAttribute(VMdlVModelStruct *VMdl, IrtPtType *UVW, int AttributeID);
public static extern int VMdlIsUVWPnttInsideVModel(VMdlVModelStruct *VMdl, IrtPtType *UVWPnt);
public static extern void IRndrAddLightSource(IRndrStruct *Rend, IRndrLightType Type, IrtPtType *Where, IRndrColorType Color);
public static extern int TrivEvalCurvature(IrtPtType *Pos, double *PCurv1, double *PCurv2, IrtVecType *PDir1, IrtVecType *PDir2);
public static extern void MatMultPtby4by4(IrtPtType *PtRes, IrtPtType *Pt, IrtHmgnMatType *Mat);
public static extern int *TrivIGAGetBoundaryFaceByPt(int ArgmntID, TrivTVStruct *TV, IrtPtType *Pt);