23#ifndef __FM_ICONTOUR2D_H__
24#define __FM_ICONTOUR2D_H__
111 double & dBulge )
const = 0;
271 virtual bool areEqualParams(
double dParam1,
double dParam2,
const double dParamTol = 1e-10 )
const = 0;
345 std::vector< Intersection > & vecPoints,
352 std::vector< Intersection > & vecPoints,
362 std::vector< Intersection > & vecPoints,
387 OdIntPtr uArcMetadata = 0 )
const = 0;
static FMGEOMETRY_API_STATIC const Attributes2D kNull
virtual OdUInt32 intersect(const IBulgeSeg2D &rSegB, std::vector< Intersection > &vecPoints, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result appendSegment(const IBulgeSeg2D &rSeg, bool bShiftToHit=false, const OdGeTol &gTol=FMGeGbl::gTol)=0
virtual SegmentType segmentType(OdUInt32 iIndex) const =0
virtual OdUInt32 intersect(const IContour2D &rContB, std::vector< Intersection > &vecPoints, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result getSubContour(double dStartParam, double dEndParam, IContour2D &rSubContour, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result getInternalAngleAt(OdUInt32 iIndex, double &dAngle) const =0
virtual Result getNormalizedDist(double &dDist) const =0
static IContour2D * create(ContourImplClass eClass, const IContour2D *pSrcContour=0)
virtual Result getVertexAt(OdUInt32 iIndex, OdGePoint2d *pptPoint, double *pdBulge=0, Attributes2D *pAttr=0) const =0
virtual Result getBulgeAt(OdUInt32 iIndex, double &dBulge) const =0
virtual bool isClosed() const =0
virtual IContour2D * clone() const =0
virtual void mergeSegments(int iMergeFlags=0, const OdGeTol &gTol=FMGeGbl::gTol)=0
virtual Result getPoint(double dParam, OdGePoint2d &ptPoint) const =0
virtual Result getSegmentAt(OdUInt32 iIndex, OdGePoint2d &ptStart, OdGePoint2d &ptEnd, double &dBulge) const =0
virtual Result replaceSubContourTo(IContour2D &rDest, const IContour2D &rSubContour, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result getPointAtDist(double dDist, OdGePoint2d &ptPoint) const =0
virtual void set(const IContour2D &rSrcCont)=0
virtual bool isValidRegion(const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual void deleteCoincident(const OdGeTol &gTol=FMGeGbl::gTol)=0
virtual double signedMinDistByParams(double dParam1, double dParam2) const =0
virtual Result setAttributesAt(OdUInt32 iIndex, const Attributes2D &rAttr)=0
virtual Result getDistAtParam(double dParam, double &dDist) const =0
virtual bool isOn(const OdGePoint2d &ptTest, double *pdParam=0, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result getStartPoint(OdGePoint2d &ptPoint) const =0
virtual Result explodeTo(IContour2D &rDestCont, const DeviationParams &devDeviation, OdIntPtr uArcMetadata=0) const =0
virtual Result setMetadataAt(OdUInt32 iIndex, OdIntPtr uNewData)=0
virtual void reserveVertices(OdUInt32 iReservedSize)=0
virtual double length() const =0
virtual bool setClosedIfEndsAreEqual(const OdGeTol &gTol=FMGeGbl::gTol)=0
virtual bool hasArcs() const =0
virtual OdUInt32 intersectLine(const OdGePoint2d &ptLineOrigin, const OdGeVector2d &vLineDir, std::vector< Intersection > &vecPoints, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual bool isSelfIntersecting(const OdGeTol &gTol=FMGeGbl::gTol, bool bExcludeTouch=false) const =0
virtual Result addExtents(OdGeExtents2d &geExtents) const =0
virtual bool areEqualDists(double dDist1, double dDist2, const double dTol=FMGeGbl::gTol.equalPoint()) const =0
virtual bool isEmpty() const =0
virtual Result transformBy(const OdGeMatrix2d &geMatrix, const DeviationParams &devDeviation=FMGeGbl::gDefDev)=0
virtual void setClosed(bool bClosed=true)=0
virtual Result getNormalizedParam(double &dParam) const =0
virtual Result getPointAt(OdUInt32 iIndex, OdGePoint2d &ptPoint) const =0
virtual const Attributes2D & attributesAt(OdUInt32 iIndex) const =0
virtual bool contains(const OdGePoint2d &rPoint, bool *pbOnBorder=0, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual OdUInt32 numVerts() const =0
virtual Result appendVertex(const OdGePoint2d &ptStart, double dBulge=0.0, const Attributes2D &rAttr=Attributes2D::kNull)=0
virtual OdUInt32 createVertexAt(double dParam, const OdGeTol &gTol=FMGeGbl::gTol)=0
virtual Result getTangent(double dParam, OdGeVector2d &vTangent) const =0
virtual Result createVerticesAt(OdUInt32 size, const double *vecParams, const OdGeTol &gTol=FMGeGbl::gTol)=0
virtual double signedMinDist(double dDist1, double dDist2) const =0
virtual Result appendSubContourTo(double dStartParam, double dEndParam, IContour2D &rSubContour, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual bool isConvex() const =0
virtual Result createVerticesAt(const std::vector< double > &vecParams, const OdGeTol &gTol=FMGeGbl::gTol)=0
virtual Result setVertexAt(OdUInt32 iIndex, const OdGePoint2d &ptPoint, double dBulge)=0
virtual Result getArcSegAt(OdUInt32 iIndex, OdGeCircArc2d &geArc) const =0
virtual double nearestParam(const OdGePoint2d &ptTest, OdGePoint2d *ptNearest=0) const =0
virtual bool isInsideContour(const IContour2D &c2dOuter, bool fAllowBordersTouch=false, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result removeVertexAt(OdUInt32 iIndex)=0
virtual OdIntPtr metadataAt(OdUInt32 iIndex) const =0
virtual bool areEqualParams(double dParam1, double dParam2, const double dParamTol=1e-10) const =0
virtual Result setPointAt(OdUInt32 iIndex, const OdGePoint2d &ptPoint)=0
virtual Result appendVertices(OdUInt32 size, const OdGePoint2d *vecSource, const double *bulgeSource=NULL)=0
virtual Result setBulgeAt(OdUInt32 iIndex, double dBulge)=0
virtual double signedArea() const =0
virtual Result appendContour(const IContour2D &rCont, bool bCloseGap=false, double dMaxGap=1e99)=0
virtual Result getInternalPoint(OdGePoint2d &rPoint, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result getEndPoint(OdGePoint2d &ptPoint) const =0
virtual Result getSegmentAt(OdUInt32 iIndex, IBulgeSeg2D &rSegment) const =0
virtual Result appendSegment(double dBulge, const OdGePoint2d &ptNewEnd, const Attributes2D &rAttr=Attributes2D::kNull)=0
virtual Attributes2D & attributes4UAt(OdUInt32 iIndex)=0
virtual Result appendVertices(const OdGePoint2dArray &vecSource)=0
virtual OdUInt32 numSegments() const =0
double startParam() const
virtual Result addVertexAt(OdUInt32 iIndex, const OdGePoint2d &ptStart, double dBulge=0.0, const Attributes2D &rAttr=Attributes2D::kNull)=0
virtual Result getParamAtDist(double dDist, double &dParam) const =0
virtual ContourImplClass implClass() const =0
virtual Result getLineSegAt(OdUInt32 iIndex, OdGeLineSeg2d &geLine) const =0
static FMGEOMETRY_API_STATIC DeviationParams gDefDev
static FMGEOMETRY_API_STATIC OdGeTol gTol