23#ifndef __FM_IBULGESEG2D_H__
24#define __FM_IBULGESEG2D_H__
70 virtual double bulge ()
const = 0;
117 const OdGeTol & gTol = FMGeGbl::gTol )
const = 0;
145 const OdGeTol & gTol = FMGeGbl::gTol )
const = 0;
152 const OdGeTol & gTol = FMGeGbl::gTol )
const = 0;
158 const OdGeTol & gTol = FMGeGbl::gTol )
const = 0;
165 const OdGeTol & gTol = FMGeGbl::gTol )
const = 0;
197 double & dStartAngle,
double & dInclAngle )
const = 0;
virtual OdUInt32 intersect(const IBulgeSeg2D &rSegB, OdGePoint2d *pPt1, OdGePoint2d *pPt2=0, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual OdUInt32 intersectXRay(const OdGePoint2d &ptTest, bool *pbOnSegment=0, const OdGeTol &gTol=FMGeGbl::gTol) const =0
void setAttributes(const Attributes2D &rNewAttr)
virtual Result getParallelSegment(double dNormalOffset, IBulgeSeg2D &rParSeg) const =0
virtual SegmentType type() const =0
virtual double arcRadius() const =0
virtual OdUInt32 intersect(const IBulgeSeg2D &rSegB, Intersection *pInt1=0, Intersection *pInt2=0, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Result set(const IBulgeSeg2D &rSeg)=0
virtual Result getArcData(OdGePoint2d &ptCenter, double &dRadius, double &dStartAngle, double &dInclAngle) const =0
void setMetadata(OdIntPtr uNewData)
virtual double dirLength() const =0
virtual Result getSubSegment(double dStartParam, double dEndParam, IBulgeSeg2D &rSubSeg) const =0
virtual Result set(const OdGeLineSeg2d &geLine)=0
virtual OdUInt32 areOn(Intersection **ppInt, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual const Attributes2D & attributes() const =0
virtual Result set(const OdGePoint2d &ptA, const OdGePoint2d &ptB, double dBulge, const Attributes2D &rAttr)=0
virtual Result transformBy(const OdGeMatrix2d &mTrans)=0
virtual OdGePoint2d arcCenter() const =0
virtual Result getLineSeg(OdGeLineSeg2d &geLine) const =0
virtual double arcStartAngle() const =0
virtual const OdGePoint2d & endPt() const =0
virtual Result reverse()=0
virtual double deviation() const =0
virtual OdUInt32 intersectLine(const OdGePoint2d &ptLineOrigin, const OdGeVector2d &vLineDir, Intersection *pInt1=0, Intersection *pInt2=0, const OdGeTol &gTol=FMGeGbl::gTol) const =0
static IBulgeSeg2D * create(SegmentImplClass eClass, const IBulgeSeg2D *pSrcSeg=0)
virtual const OdGePoint2d & startPt() const =0
virtual double nearestParam(const OdGePoint2d &ptTest, OdGePoint2d *ptNearest=0) const =0
virtual double integrate(const OdGePoint2d &ptOrigin=OdGePoint2d::kOrigin) const =0
virtual Result set(const OdGeCircArc2d &geArc)=0
virtual double bulge() const =0
virtual bool isOn(const OdGePoint2d &ptTest, double *pdParam=0, const OdGeTol &gTol=FMGeGbl::gTol) const =0
virtual Attributes2D & attributes4U()=0
virtual SegmentImplClass implClass() const =0
virtual void getDir(OdGeVector2d &vDir) const =0
virtual Result getTangent(double dParam, OdGeVector2d &vTangent) const =0
virtual double arcAngle() const =0
virtual Result getCircleData(OdGePoint2d &ptCenter, double &dRadius) const =0
virtual Result set(const OdGePoint2d &ptA, const OdGePoint2d &ptB, double dBulge=0.0)=0
virtual Result getArcSeg(OdGeCircArc2d &geArc) const =0
virtual Result set(const OdGePoint2d &ptA, const OdGePoint2d &ptB, const OdGePoint2d &ptIntermediate)=0
virtual Result getPoint(double dParam, OdGePoint2d &ptPoint) const =0
virtual double length() const =0
OdIntPtr metadata() const
virtual void addExtents(OdGeExtents2d &rExtents, double dTol=0.0) const =0
static GE_STATIC_EXPORT const OdGePoint2d kOrigin