MdlModelStruct *MdlAddSrf2Mdl(const MdlModelStruct *Mdl, const CagdSrfStruct *Srf, int StitchModel)
MdlModelStruct *MdlAddTrimmedSrf2Mdl(const MdlModelStruct *Mdl, const TrimSrfStruct *TSrf, int MergeTCrvsIntoLoops, int StitchModel)
int MdlBoolClassifyNonInterIslands(MdlModelStruct *Model, MdlBooleanType BType)
int MdlBoolClassifyNonInterTrimSrfs(MdlModelStruct *Model)
int MdlBoolClassifyTrimSrfLoops(MdlTrimSrfStruct *TSrf, CagdRType Tol, CagdBType InsideOtherModel)
void MdlBoolCleanInterCrvs(CagdCrvStruct *Crv, const CagdSrfStruct *Srf)
int MdlBoolCleanRefsToTSrf(MdlModelStruct *Model, MdlTrimSrfStruct *TSrf)
int MdlBoolCleanUnusedTrimCrvRefs(MdlModelStruct *Model, CagdBType OutsideTCrvRefs, CagdBType UnclassifiedTCrvRefs)
int MdlBoolCleanUnusedTrimCrvsSrfs(MdlModelStruct *Model)
int MdlBoolCleanUnusedTrimCrvsSrfs2(MdlModelStruct *Model)
void MdlBoolClipTSrfs2TrimDomain(MdlModelStruct *Model, CagdBType ExtendSrfDomain)
MdlTrimSegRefStruct *MdlBoolConcatLoops2OneSegRefsList(MdlLoopStruct *Loops)
MdlTrimSegStruct *MdlBoolGenTrimSegs(const MvarPolylineStruct *Inters12, MdlTrimSrfStruct *Srf1, MdlTrimSrfStruct *Srf2)
void MdlBoolImprovedPointsAddPoints(MdlImprovedPointsCacheStruct **IPCache, int n, MdlImprovingPointStruct IPts[4], MdlImprovingPointStruct OrigIPts[4], CagdRType ImprovedErrorSqr)
void MdlBoolImprovedPointsCacheFree(MdlImprovedPointsCacheStruct **IPCache)
MdlImprovedPointsCacheStruct *MdlBoolImprovedPointsCacheInit()
int MdlBoolImprovedPointsUpdateOldPointsInMdl( const MdlImprovedPointsCacheStruct *IPCache, MdlModelStruct *Mdl)
int MdlBoolImprovedPointsUpdateOldPointsInSeg( const MdlImprovedPointsCacheStruct *IPCache, MdlTrimSegStruct *Seg)
CagdBType MdlBoolIsMdlContainsModel(const MdlModelStruct *Model1, const MdlModelStruct *Model2)
MdlLoopStruct *MdlBoolMergeSegRefsIntoLoops(MdlTrimSrfStruct *TSrf, MdlBooleanType OrigBType, CagdRType Tol)
int MdlBoolNumerImproveEndPt(MdlImprovedPointsCacheStruct **IPCache, MdlTrimSegStruct *Seg1, MdlTrimSegStruct *Seg2, CagdBType Seg1Last, CagdBType Seg2Last)
MdlBopsParamsStruct *MdlBoolOpParamsAlloc( CagdBType PertubrateSecondModel, CagdBType ExtendUVSrfResult, IPAttrIDType IntersectedSurfacesAttrID, MdlIntersectionCBFunc InterCBFunc, MdlPreIntersectionCBFunc PreInterCBFunc, MdlPostIntersectionCBFunc PostInterCBFunc)
void MdlBoolOpParamsFree(struct MdlBopsParamsStruct *BopsParams)
void MdlBoolResetAllTags(MdlModelStruct *Model)
int MdlBoolSetHandleInterDiscont(int HandleInterDiscont)
int MdlBoolSetOutputInterCrv(int OutputInterCurve)
int MdlBoolSetOutputInterCrvType(int OutputInterCurveType)
int MdlBoolTrimSrfIntersects(const MdlTrimSrfStruct *TSrf)
IPObjectStruct *MdlBooleanCut(const MdlModelStruct *Model1, const MdlModelStruct *Model2, struct MvarSrfSrfInterCacheStruct *SSICache, MdlBopsParamsStruct *BopsParams)
CagdCrvStruct *MdlBooleanInterCrv(const MdlModelStruct *Model1, const MdlModelStruct *Model2, int InterType, MdlModelStruct **InterModel, MdlBopsParamsStruct *BopsParams)
IPObjectStruct *MdlBooleanIntersection( const MdlModelStruct *Model1, const MdlModelStruct *Model2, struct MvarSrfSrfInterCacheStruct *SSICache, MdlBopsParamsStruct *BopsParams)
IPObjectStruct *MdlBooleanMerge(const MdlModelStruct *Model1, const MdlModelStruct *Model2, CagdBType StitchBndries)
MdlModelStruct *MdlBooleanMerge2(const MdlModelStruct *Model1, const MdlModelStruct *Model2, CagdBType StitchBndries)
CagdBType MdlBooleanSetClip2Trim(CagdBType Clip2Trim)
CagdRType MdlBooleanSetTolerances(CagdRType SubdivTol, CagdRType NumerTol, CagdRType TraceTol)
IPObjectStruct *MdlBooleanSubtraction( const MdlModelStruct *Model1, const MdlModelStruct *Model2, struct MvarSrfSrfInterCacheStruct *SSICache, MdlBopsParamsStruct *BopsParams)
IPObjectStruct *MdlBooleanUnion(const MdlModelStruct *Model1, const MdlModelStruct *Model2, struct MvarSrfSrfInterCacheStruct *SSICache, MdlBopsParamsStruct *BopsParams)
MdlModelStruct *MdlClipModelByPlane(const MdlModelStruct *Mdl, const IrtPlnType Pln, MdlBooleanType BoolOp)
TrimSrfStruct *MdlClipSrfByPlane(const CagdSrfStruct *Srf, const IrtPlnType Pln)
TrimSrfStruct *MdlClipTrimmedSrfByPlane(const TrimSrfStruct *TSrf, const IrtPlnType Pln)
TrimSrfStruct *MdlCnvrtMdl2TrimmedSrfs(const MdlModelStruct *Model, CagdRType TrimCrvStitchTol)
TrimSrfStruct *MdlCnvrtMdls2TrimmedSrfs(const MdlModelStruct *Models, CagdRType TrimCrvStitchTol)
MdlModelStruct *MdlCnvrtSrf2Mdl(const CagdSrfStruct *Srf, int StitchModel)
MdlModelStruct *MdlCnvrtSrfs2Mdls(const CagdSrfStruct *Srfs, int StitchModel)
MdlModelStruct *MdlCnvrtTrimmedSrf2Mdl(const TrimSrfStruct *TSrf, int MergeTCrvsIntoLoops)
MdlModelStruct *MdlCnvrtTrimmedSrfs2Mdl(const TrimSrfStruct *TSrfs, int MergeTCrvsIntoLoops, int StitchMdl)
MdlModelStruct *MdlCnvrtTrimmedSrfs2Mdls(const TrimSrfStruct *TSrfs, int MergeTCrvsIntoLoops)
int MdlCreateCubeSpherePrim(int CubeTopoSphere)
void MdlDbg(void *Obj)
void MdlDbg2(void *Obj)
void MdlDbgBoolImprovedPointsCacheReport( const MdlImprovedPointsCacheStruct *IPCache)
void MdlDbgDsp(void *Obj, CagdRType Trans, int Clear)
void MdlDbgDsp2(void *Obj, CagdRType Trans, int Clear)
int MdlDbgMC(const MdlModelStruct *Mdl, int Format)
int MdlDbgRC(const MdlTrimSegRefStruct *Refs, int Format)
int MdlDbgRC2(const MdlTrimSegRefStruct *Refs, const MdlTrimSrfStruct *TSrf, int Format)
int MdlDbgSC(const MdlTrimSrfStruct *TSrf, int Format)
int MdlDbgTC(const MdlTrimSegStruct *TSegs, const MdlTrimSrfStruct *TSrf, int Format)
void MdlDbgVsl(const MdlModelStruct *Model, CagdBType TCrvs, CagdBType TSrfs, CagdBType Srfs)
int MdlDebugHandleTCrvLoops(const MdlTrimSrfStruct *TSrf, const MdlLoopStruct *Loops, const CagdPType Trans, int Display, int TrimEndPts)
int MdlDebugHandleTSrfCrvs(const MdlTrimSegStruct *TCrvs, const MdlTrimSrfStruct *TSrf, const CagdPType Trans, int Display, int TrimEndPts)
int MdlDebugHandleTSrfRefCrvs(const MdlTrimSegRefStruct *Refs, const MdlTrimSrfStruct *TSrf, const CagdPType Trans, int Loop, int Display, int TrimEndPts)
int MdlDebugVerify(const MdlModelStruct *Model, int Complete, int TestLoops)
int MdlDebugVerifyEps(const MdlModelStruct *Model, int Complete, int TestLoops, CagdRType TCrvTol, CagdRType UVVertexTol, CagdRType VertexTol)
int MdlDebugVerifyTrimSeg(const MdlTrimSegStruct *TSeg, int VerifyBackPtrs)
int MdlDebugVerifyTrimSegEps(const MdlTrimSegStruct *TSeg, int VerifyBackPtrs, CagdRType TCrvTol)
int MdlDebugVerifyTrimSegsArcLen(const MdlTrimSegStruct *TSegs)
int MdlDebugVerifyTrimSrf(const MdlTrimSrfStruct *MdlTrimSrf, int Complete, int TestLoops)
int MdlDebugVerifyTrimSrfEps(const MdlTrimSrfStruct *MdlTrimSrf, int Complete, int TestLoops, CagdRType TCrvTol, CagdRType UVVertexTol)
IPObjectStruct *MdlDebugVisual(const MdlModelStruct *Model, CagdBType TCrvs, CagdBType TSrfs, CagdBType Srfs)
int MdlDebugWriteTrimSegs(const MdlTrimSegStruct *TSegs, const MdlTrimSrfStruct *TSrf, const CagdPType Trans)
const char *MdlDescribeError(MdlFatalErrorType ErrorNum)
MdlTrimSegStruct *MdlDivideTrimCrv(MdlTrimSegStruct *Seg, const CagdPtStruct *Pts, int Idx, CagdRType Eps, int *Proximity)
void MdlEnsureMdlTrimCrvsPrecision(MdlModelStruct *Mdl)
void MdlEnsureTSrfTrimCrvsPrecision(MdlTrimSrfStruct *MdlTrimSrf)
int MdlEnsureTSrfTrimLoopPrecision(MdlLoopStruct *Loop, MdlTrimSrfStruct *MdlTrimSrf, CagdRType Tol)
void MdlExportTrimmingCurves(MdlTrimSrfStruct *MdlTrimSrf, MdlTrimSegStruct *NewSegs, const char *Path)
CagdCrvStruct *MdlExtractUVCrv(const MdlTrimSrfStruct *MdlSrf, const MdlTrimSegStruct *MdlSeg)
void MdlFatalError(MdlFatalErrorType ErrID)
MdlTrimSegStruct *MdlFilterOutCrvs(MdlTrimSegStruct *TSegs)
IritIntPtrSizeType MdlGetLoopSegIndex(const MdlTrimSegRefStruct *TrimSeg, const MdlTrimSegStruct *TrimSegList)
int MdlGetModelTrimSegRef(const MdlModelStruct *Mdl, const MdlTrimSegStruct *TSeg, MdlTrimSegRefStruct **TSegRef1, MdlTrimSrfStruct **TSrf1, MdlTrimSegRefStruct **TSegRef2, MdlTrimSrfStruct **TSrf2)
MdlTrimSegRefStruct *MdlGetOtherSegRef(const MdlTrimSegRefStruct *SegRef, const MdlTrimSrfStruct *TSrf)
MdlTrimSegRefStruct *MdlGetOtherSegRef2(const MdlTrimSegRefStruct *SegRef, const MdlTrimSrfStruct *TSrf, MdlTrimSrfStruct **OtherTSrf, MdlLoopStruct **OtherLoop)
IritIntPtrSizeType MdlGetSrfIndex(const MdlTrimSrfStruct *Srf, const MdlTrimSrfStruct *TrimSrfList)
MdlTrimSegRefStruct *MdlGetSrfTrimSegRef(const MdlTrimSrfStruct *TSrf, const MdlTrimSegStruct *TSeg)
CagdCrvStruct *MdlGetTrimmingCurves(const MdlTrimSrfStruct *TrimSrf, CagdBType MergeLoops, CagdBType ParamSpace, CagdBType EvalEuclid)
CagdPType *MdlGetTrimmingCurvesEndPts(MdlModelStruct *Mdl, int *N)
int MdlGetUVEpsInsideTSrf(MdlTrimSrfStruct *TSrf, CagdUVType UVInside)
int MdlGetUVLocationInLoop(const MdlLoopStruct *L, const MdlTrimSrfStruct *TSrf, CagdUVType UV)
CagdCrvStruct *MdlInterModelByPlane(const MdlModelStruct *Mdl, const IrtPlnType Pln)
CagdCrvStruct *MdlInterSrfByPlane(const CagdSrfStruct *Srf, const IrtPlnType Pln)
int MdlIsLoopNested(const MdlLoopStruct *L, const MdlTrimSrfStruct *TSrf)
CagdBType MdlIsPointInsideModel(const CagdVType Pnt, const MdlModelStruct *Mdl)
int MdlIsPointInsideTrimLoop(const MdlTrimSrfStruct *TSrf, const MdlLoopStruct *Loop, CagdUVType UV)
CagdBType MdlIsPointInsideTrimSrf(const MdlTrimSrfStruct *TSrf, CagdUVType UV)
MdlLoopStruct *MdlLoopCopy(const MdlLoopStruct *MdlLoop, const MdlTrimSegStruct *TrimSegList)
MdlLoopStruct *MdlLoopCopyList(const MdlLoopStruct *MdlLoopList, const MdlTrimSegStruct *TrimSegList)
void MdlLoopFree(MdlLoopStruct *MdlLoop)
void MdlLoopFreeList(MdlLoopStruct *MdlLoopList)
MdlLoopStruct *MdlLoopNew(MdlTrimSegRefStruct *MdlTrimSegRefList)
CagdBBoxStruct *MdlModelBBox(const MdlModelStruct *Mdl, CagdBBoxStruct *BBox)
MdlModelStruct *MdlModelCopy(const MdlModelStruct *Model)
MdlModelStruct *MdlModelCopyList(const MdlModelStruct *ModelList)
void MdlModelFree(MdlModelStruct *Model)
void MdlModelFreeList(MdlModelStruct *Model)
int MdlModelIsClosed(const MdlModelStruct *Model)
CagdBBoxStruct *MdlModelListBBox(const MdlModelStruct *Mdls, CagdBBoxStruct *BBox)
void MdlModelMatTransform(MdlModelStruct *Model, CagdMType Mat)
MdlModelStruct *MdlModelNegate(const MdlModelStruct *Model)
MdlModelStruct *MdlModelNew(CagdSrfStruct *Srf, CagdCrvStruct **LoopList, int NumLoops, CagdBType HasTopLvlTrim)
MdlModelStruct *MdlModelNew2(MdlTrimSrfStruct *TrimSrfs, MdlTrimSegStruct *TrimSegs)
CagdBBoxStruct *MdlModelTSrfTCrvsBBox(const MdlTrimSrfStruct *TSrf, CagdBBoxStruct *BBox)
void MdlModelTransform(MdlModelStruct *Model, const CagdRType *Translate, CagdRType Scale)
CagdBType MdlModelsSame(const MdlModelStruct *Model1, const MdlModelStruct *Model2, CagdRType Eps)
MdlLoopStruct *MdlNewLoop(CagdCrvStruct *LoopCrvs)
void MdlPatchTrimmingSegPointers(MdlModelStruct *Model)
MdlModelStruct *MdlPrimBox(CagdRType MinX, CagdRType MinY, CagdRType MinZ, CagdRType MaxX, CagdRType MaxY, CagdRType MaxZ)
MdlModelStruct *MdlPrimCone(const CagdVType Center, CagdRType Radius, CagdRType Height, CagdBType Rational, CagdPrimCapsType Caps)
MdlModelStruct *MdlPrimCone2(const CagdVType Center, CagdRType MajorRadius, CagdRType MinorRadius, CagdRType Height, CagdBType Rational, CagdPrimCapsType Caps)
MdlModelStruct *MdlPrimCylinder(const CagdVType Center, CagdRType Radius, CagdRType Height, CagdBType Rational, CagdPrimCapsType Caps)
MdlModelStruct *MdlPrimListOfSrfs2Model(CagdSrfStruct *Srfs, int *n, int StitchModel)
MdlModelStruct *MdlPrimPlane(CagdRType MinX, CagdRType MinY, CagdRType MaxX, CagdRType MaxY, CagdRType ZLevel)
MdlModelStruct *MdlPrimPlaneSrfOrderLen(CagdRType MinX, CagdRType MinY, CagdRType MaxX, CagdRType MaxY, CagdRType ZLevel, int Order, int Len)
MdlModelStruct *MdlPrimSphere(const CagdVType Center, CagdRType Radius, CagdBType Rational)
MdlModelStruct *MdlPrimTorus(const CagdVType Center, CagdRType MajorRadius, CagdRType MinorRadius, CagdBType Rational)
void MdlPrintLoop(MdlLoopStruct *Loop, const char *FileName)
void MdlRemovEucTrimCrvs(MdlModelStruct *Mdl)
MdlSetErrorFuncType MdlSetFatalErrorFunc(MdlSetErrorFuncType ErrorFunc)
MdlModelStruct *MdlSplitDisjointComponents(const MdlModelStruct *Mdl)
int MdlSplitTrimCrv(MdlTrimSegStruct *Seg, const CagdPtStruct *Pts, int Idx, CagdRType Eps, int *Proximity)
int MdlStitchModel(MdlModelStruct *Mdl, CagdBType BackProjTest, CagdRType StitchTol)
int MdlStitchSelfSrfPrims(int Stitch)
MdlTrimSegStruct *MdlTrimSegCopy(const MdlTrimSegStruct *MdlTrimSeg, const MdlTrimSrfStruct *TrimSrfList)
MdlTrimSegStruct *MdlTrimSegCopyList(const MdlTrimSegStruct *MdlTrimSegList, const MdlTrimSrfStruct *TrimSrfList)
void MdlTrimSegFree(MdlTrimSegStruct *MTSeg)
void MdlTrimSegFreeList(MdlTrimSegStruct *MTSegList)
MdlTrimSegStruct *MdlTrimSegNew(CagdCrvStruct *UVCrv1, CagdCrvStruct *UVCrv2, CagdCrvStruct *EucCrv1, MdlTrimSrfStruct *SrfFirst, MdlTrimSrfStruct *SrfSecond)
MdlTrimSegRefStruct *MdlTrimSegRefCopy(const MdlTrimSegRefStruct *MTSegRefList, const MdlTrimSegStruct *TrimSegList)
MdlTrimSegRefStruct *MdlTrimSegRefCopyList(const MdlTrimSegRefStruct *MTSegRefList, const MdlTrimSegStruct *TrimSegList)
void MdlTrimSegRefFree(MdlTrimSegRefStruct *MTSegRef)
void MdlTrimSegRefFreeList(MdlTrimSegRefStruct *MTSegRefList)
MdlTrimSegRefStruct *MdlTrimSegRefNew(MdlTrimSegStruct *MdlTrimSeg)
int MdlTrimSegRefRemove(const MdlTrimSegStruct *TSeg, MdlTrimSegRefStruct **TSegRefList, int FreeRef)
int MdlTrimSegRefRemove2(const MdlTrimSegStruct *TSeg, MdlLoopStruct *Loops, int FreeRef)
int MdlTrimSegRemove(const MdlTrimSegStruct *TSeg, MdlTrimSegStruct **TSegList)
int MdlTrimSegRemove2(MdlTrimSegStruct *TSeg, MdlModelStruct *Mdl)
MdlTrimSegStruct *MdlTrimSrfChainTrimSegs(MdlTrimSrfStruct *TSrfs)
MdlTrimSrfStruct *MdlTrimSrfCopy(const MdlTrimSrfStruct *MdlTrimSrf, const MdlTrimSegStruct *TrimSegList)
MdlTrimSrfStruct *MdlTrimSrfCopyList(const MdlTrimSrfStruct *MdlTrimSrfList, const MdlTrimSegStruct *TrimSegList)
void MdlTrimSrfFree(MdlTrimSrfStruct *TrimSrf)
void MdlTrimSrfFreeList(MdlTrimSrfStruct *MdlTrimSrfList)
MdlTrimSrfStruct *MdlTrimSrfNew(CagdSrfStruct *Srf, MdlLoopStruct *LoopList, CagdBType HasTopLvlTrim, CagdBType UpdateBackTSrfPtrs)
MdlTrimSrfStruct *MdlTrimSrfNew2(CagdSrfStruct *Srf, CagdCrvStruct **LoopList, int NumLoops, CagdBType HasTopLvlTrim)
int MdlTwoTrimSegsSameEndPts(const MdlTrimSegStruct *TSeg1, const MdlTrimSegStruct *TSeg2, CagdBType BackProjTest, CagdRType Tol)