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)