23#ifndef __FMIMP_CACHED_CONTOUR2D_H__
24#define __FMIMP_CACHED_CONTOUR2D_H__
80 mutable double m_dStartLength;
86 : m_dBulge(0), m_dStartLength(0) { }
89 : m_ptStart(rPt), m_dBulge(dBulge), m_dStartLength(0) { }
92 : m_ptStart(rPt), m_dBulge(dBulge), m_dStartLength(0), m_Attr(rAttr) { }
97 inline const double &
bulge()
const {
return m_dBulge; };
98 inline double &
bulge() {
return m_dBulge; };
118 : m_pVertex(&rVData), m_pEndPt( &rPt ) { };
121 { m_pVertex = &rVData; m_pEndPt = &rPt; };
213 double & dStartAngle,
double & dInclAngle )
const;
280 inline bool _closed()
const {
return m_bClosed; };
296 return m_vecVertices[iIndex];
305 return m_vecVertices[iIndex];
365 double _updateCacheArea()
const;
367 bool _updateCacheConvex()
const;
virtual Result getCircleData(OdGePoint2d &ptCenter, double &dRadius) const
virtual OdGePoint2d arcCenter() const
virtual double deviation() const
virtual double dirLength() const
Attributes2D & _attr() const
virtual double arcAngle() const
double _startLength() const
SegmentType _type() const
double _arcRadius() const
void set(const VertexData &rVData, const OdGePoint2d &rPt)
const OdGePoint2d & _startPt() const
double _arcStartAngle() const
virtual SegmentType type() const
const OdGePoint2d & _endPt() const
SegmentCacheData & _cache() const
virtual Attributes2D & attributes4U()
virtual SegmentImplClass implClass() const
virtual void getDir(OdGeVector2d &vDir) const
virtual double arcStartAngle() const
virtual Result getArcData(OdGePoint2d &ptCenter, double &dRadius, double &dStartAngle, double &dInclAngle) const
void _UpdateCache() const
virtual Result set(const OdGePoint2d &ptA, const OdGePoint2d &ptB, double dBulge, const Attributes2D &rAttr)
virtual const Attributes2D & attributes() const
virtual double length() const
virtual double bulge() const
ImplSeg2D(const VertexData &rVData, const OdGePoint2d &rPt)
virtual double arcRadius() const
const OdGePoint2d & _arcCenter() const
virtual const OdGePoint2d & startPt() const
virtual const OdGePoint2d & endPt() const
const OdGePoint2d & point() const
const double & bulge() const
SegmentCacheData & cache() const
VertexData(const OdGePoint2d &rPt, double dBulge, const Attributes2D &rAttr)
Attributes2D & attributes() const
VertexData(const OdGePoint2d &rPt, double dBulge=0.0)
double & startLength() const
void _setModifiedSegs(OdUInt32 iFirst, OdUInt32 iCount=1)
const VertexData & _vertex(OdUInt32 iIndex) const
void _resize(OdUInt32 iNewVertNum)
VertexData & _vertex(OdUInt32 iIndex)
Result _getSegment(OdUInt32 iIndex, ImplSeg2D &rSeg) const
CachedContour2DImplData()
Result _normalizeIndex(OdUInt32 &iVertIndex) const
OdUInt32 _numSegments() const
void _resetCache(OdUInt32 iFirstVertex=0, OdUInt32 iNumVerts=OdUInt32(-1), bool bStepBack=true)
OdUInt32 _numVerts() const
Result _removeVertices(OdUInt32 iIndex, OdUInt32 iCount=1)
void _setClosed(bool bClosed)
Result _insertVerticesAt(OdUInt32 iIndex, OdUInt32 iCount, const OdGePoint2d *paPoints, const double *paBulges=0, const Attributes2D *pAttrs=0)
void _setModifiedVerts(OdUInt32 iFirst, OdUInt32 iCount=1)
double _updateCacheLengths() const
void _reset(OdUInt32 iVertexCount=0, bool bClosed=false)
virtual ~CachedContour2DImplData()
void _reserveVertices(OdUInt32 iReservedSize)
ContourImplClass _implClass() const
virtual Result addExtents(OdGeExtents2d &geExtents) const
virtual double length() const
virtual Result getDistAtParam(double dParam, double &dDist) const
virtual bool isConvex() const
virtual double signedArea() const
virtual Result getParamAtDist(double dDist, double &dParam) const
virtual bool contains(const OdGePoint2d &rPoint, bool *pbOnBorder=0, const OdGeTol &gTol=FMGeGbl::gTol) const
virtual IContour2D * clone() const
OdGePoint2d m_ptArcCenter
static FMGEOMETRY_API_STATIC OdGeTol gTol