CFx SDK Documentation
2020SP3
|
Go to the documentation of this file.
24 #ifndef __FMCONTOUR2D_H__
25 #define __FMCONTOUR2D_H__
214 double& dBulge )
const;
238 double& dBulge )
const;
306 bool bHidden =
true );
340 bool bExplodedArc =
true );
397 bool bShiftToHit =
false );
409 bool bCloseGap =
false,
double dMaxGap = 1e99 );
483 double& dDist )
const;
489 double& dParam )
const;
523 double dParam2,
double dParamTol = 1e-10 )
const;
532 double dDist2,
double dTol = 1e-6 )
const;
651 std::vector< Intersection >& vecPoints,
665 std::vector< Intersection >& vecPoints,
679 std::vector< Intersection >& vecPoints,
921 #endif //__FMCONTOUR2D_H__
static FMGEOMETRY_API_STATIC OdGeTol gTol
Contour2D(const IBulgeSeg2D &rSrcSeg, ContourImplClass eImplClass=ecicSimple)
Result getDistAtParam(double dParam, double &dDist) const
OdUInt32 intersect(const Contour2D &rContB, std::vector< Intersection > &vecPoints, const OdGeTol &gTol=FMGeGbl::gTol) const
Result addVertexAt(OdUInt32 iIndex, const OdGePoint2d &ptStart, double dBulge=0.0, OdIntPtr uMetadata=0, OdUInt32 uRawFlags=0)
Contour2D & cloneFrom(const IContour2D &rSrcCont)
double signedArea() const
Result appendSegment(const Segment2D &rSeg, bool bShiftToHit=false)
Contour2D & operator=(const Contour2D &rSrcCont)
Contour2D(const Contour2D &rSrcCont, ContourImplClass eImplClass=ecicSimple)
Result getSegmentAt(OdUInt32 iIndex, OdGePoint2d &ptStart, OdGePoint2d &ptEnd, double &dBulge) const
bool isSelfIntersecting(const OdGeTol &gTol=FMGeGbl::gTol, bool bExcludeTouch=false) const
Result setOrientationAt(OdUInt32 iIndex, FaceOrientation eOrientation)
Result getPoint(double dParam, OdGePoint2d &ptPoint) const
FMGEOMETRY_API void ExtendContourEnd(Contour2D &rContour)
Result getPointAt(OdUInt32 iIndex, OdGePoint2d &ptPoint) const
Result transformBy(const OdGeMatrix2d &mMatrix, const DeviationParams &devDeviation=FMGeGbl::gDefDev)
OdIntPtr metadataAt(OdUInt32 iIndex) const
OdUInt32 createVertexAtDist(double dDist, const OdGeTol &gTol=FMGeGbl::gTol)
void mergeSegments(int iMergeFlags=0, const OdGeTol &gTol=FMGeGbl::gTol)
Contour2D & reset(ContourImplClass eImplClass=ecicUnknown)
Result getInternalAngleAt(OdUInt32 iIndex, double &dAngle) const
Result appendVertex(const OdGePoint2d &ptStart, double dBulge=0.0, OdIntPtr uMetadata=0, OdUInt32 uRawFlags=0)
CachedContour2D(const Contour2D &rSrcCont, ContourImplClass eImplClass=ecicCached)
Result setAllMetadata(OdIntPtr iNewData, OdIntPtr iBitsToModify=(OdIntPtr) -1)
bool isInsideContour(const Contour2D &c2dOuter, bool fAllowBordersTouch=false, const OdGeTol &gTol=FMGeGbl::gTol) const
FMGEOMETRY_API void ExtendContour(Contour2D &rContour)
static FMGEOMETRY_API_STATIC const Contour2D kNull
void setThreatAsSmoothCurveAt(OdUInt32 iIndex, bool bSmooth)
CachedContour2D & reset(ContourImplClass eImplClass=ecicUnknown)
Result getEndPoint(OdGePoint2d &ptPoint) const
FMGEOMETRY_API bool FindClosestIntToBaseStart(const Contour2D &cBase, const Contour2D &cCutter, Intersection &intClosest)
Result getTangent(double dParam, OdGeVector2d &vTangent) const
OdUInt32 intersectLine(const OdGeLine2d &rLine, std::vector< Intersection > &vecPoints, const OdGeTol &gTol=FMGeGbl::gTol) const
void reserveVertices(OdUInt32 iReservedSize)
CachedContour2D(ContourImplClass eImplClass)
ContourImplClass implClass() const
Contour2D(ContourImplClass eImplClass)
Result getNormalizedDist(double &dDist) const
void getGeomExtens(OdGeExtents2d &extens)
bool isEndsEqual(const OdGeTol &gTol=FMGeGbl::gTol) const
Result getBulgeAt(OdUInt32 iIndex, double &dBulge) const
Result setPointAt(OdUInt32 iIndex, const OdGePoint2d &ptPoint)
double nearestParam(const OdGePoint2d &ptTest, OdGePoint2d *ptNearest=0) const
virtual bool onArcStartPoint(int nSegment, const OdGePoint2d &pt, int nTotalPts)=0
Result getPointAtDist(double dDist, OdGePoint2d &ptPoint) const
bool areEqualDists(double dDist1, double dDist2, double dTol=1e-6) const
Result getSubContour(double dStartParam, double dEndParam, Contour2D &rSubContour, const OdGeTol &gTol=FMGeGbl::gTol) const
bool isExplodedArcAt(OdUInt32 iIndex) const
Result getVertexAt(OdUInt32 iIndex, OdGePoint2d *pPoint, double *pBulge=0, OdIntPtr *pMetadata=0, OdUInt32 *puRawFlags=0) const
bool traverse(Contour2DTraversingReactor &reactor) const
void makeCCW(bool bCCW=true)
bool threatAsSmoothCurveAt(OdUInt32 iIndex) const
Result setBulgeAt(OdUInt32 iIndex, double dBulge)
virtual bool onArcPoint(int nSegment, const OdGePoint2d &pt)=0
Result explodeTo(Contour2D &rDestCont, const DeviationParams &devDeviation=FMGeGbl::gDefDev, OdIntPtr uArcMetadata=0) const
bool isHiddenAt(OdUInt32 iIndex) const
Result setRawFlagsAt(OdUInt32 iIndex, OdUInt32 iRawFlags)
Result getNormalizedParam(double &dParam) const
virtual bool onArcSeg(int nSegment, DeviationParams **ppDev)=0
Result getSegmentAt(OdUInt32 iIndex, Segment2D &rSegment) const
Result setMetadataAt(OdUInt32 iIndex, OdIntPtr iNewData)
CachedContour2D & cloneFrom(const Contour2D &rSrcCont)
Result getTangentAtDist(double dDist, OdGeVector2d &vTangent) const
void swap(Contour2D &rAnother)
Result appendVertex(const OdGePoint2d &ptStart, const OdGePoint2d &ptMid, OdIntPtr uMetadata=0, OdUInt32 uRawFlags=0)
Result addExtents(OdGeExtents2d &extExtents) const
double startParam() const
bool isOn(const OdGePoint2d &ptTest, double *pParam=0, const OdGeTol &gTol=FMGeGbl::gTol) const
Contour2D(const IContour2D &rSrcCont, ContourImplClass eImplClass=ecicSimple)
DOM.
Result getParamAtDist(double dDist, double &dParam) const
OdUInt32 numVerts() const
virtual bool onCoincidentSeg(int nSegment)=0
static FMGEOMETRY_API_STATIC DeviationParams gDefDev
Result setExplodedArcAt(OdUInt32 iIndex, bool bExplodedArc=true)
Result appendContour(const Contour2D &rCont, bool bCloseGap=false, double dMaxGap=1e99)
bool contains(const OdGePoint2d &ptPoint, bool *pOnBorder=0, const OdGeTol &gTol=FMGeGbl::gTol) const
Result createVerticesAt(const std::vector< double > &vecParams, const OdGeTol &gTol=FMGeGbl::gTol)
FaceOrientation orientationAt(OdUInt32 iIndex) const
Result setHiddenAt(OdUInt32 iIndex, bool bHidden=true)
OdUInt32 rawFlagsAt(OdUInt32 iIndex) const
Contour2D(const OdGeExtents2d &ext)
CachedContour2D(const IBulgeSeg2D &rSrcSeg, ContourImplClass eImplClass=ecicCached)
Result getArcSegAt(OdUInt32 iIndex, OdGeCircArc2d &geArc) const
Result appendVertices(const OdGePoint2dArray &vecSource)
FMGEOMETRY_API void ExtendContourStart(Contour2D &rContour)
bool isValidRegion(const OdGeTol &gTol=FMGeGbl::gTol) const
Result getLineSegAt(OdUInt32 iIndex, OdGeLineSeg2d &geLine) const
OdUInt32 numSegments() const
void deleteCoincident(const OdGeTol &gTol=FMGeGbl::gTol)
Result getStartPoint(OdGePoint2d &ptPoint) const
FMGEOMETRY_API bool IsIntersectionCloserToPt(const OdGePoint2d &ptBase, const Intersection &intCurrent, const Intersection &intToCheck)
bool areEqualParams(double dParam1, double dParam2, double dParamTol=1e-10) const
virtual bool onLineSeg(int nSegment)=0
FMGEOMETRY_API Intersection FindIntClosestToPt(const OdGePoint2d &ptBase, const std::vector< Intersection > &vecPoints)
Result getOffsetProfile(double dOffset, Profile2D &rResult, FilletType eFilletType=eftExtend, const OdGeTol &gTol=FMGeGbl::gTol) const
void setClosed(bool bClosed=true)
SegmentType segmentType(OdUInt32 iIndex) const
virtual bool onArcEndPoint(int nSegment, const OdGePoint2d &pt)=0
Result getProfileByOffsets(const std::vector< double > &adOffset, Profile2D &rResult, const OdGeTol &gTol=FMGeGbl::gTol) const
const IContour2D & impl() const
DOM.
Result setVertexAt(OdUInt32 iIndex, const OdGePoint2d &ptPoint, double dBulge)
OdUInt32 createVertexAt(double dParam, const OdGeTol &gTol=FMGeGbl::gTol)
OdUInt32 intersect(const Segment2D &rSegB, std::vector< Intersection > &vecPoints, const OdGeTol &gTol=FMGeGbl::gTol) const
Result explode(const DeviationParams &devDeviation=FMGeGbl::gDefDev, OdIntPtr uArcMetadata=0)
Result removeVertexAt(OdUInt32 iIndex)
FMGEOMETRY_API bool FindClosestIntToBaseEnd(const Contour2D &cBase, const Contour2D &cCutter, Intersection &intClosest)