// XdRdupCurve.h: interface for the XdRdupCurve class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_XDRDUPCURVE_H__1CA904C1_D54B_11D5_9F75_0800460222F0__INCLUDED_) #define AFX_XDRDUPCURVE_H__1CA904C1_D54B_11D5_9F75_0800460222F0__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "gepnt3d.h" class XdRdupLineNode{ public: double key; AcDbObjectIdArray entArray; }; class XdRdupCircArcNode{ public: AcGePoint3d center; double radius; AcDbObjectIdArray arcIdArray; }; class XdRdupCurve { public: int m_shortLineNum; int m_shortArcNum; int m_delLineNum; int m_delArcNum; int m_delCirNum; void removeDupCurve(PickSet &ss); void removeDupCircle(PickSet &ss); void removeDupArc(PickSet &ss); void setEqualPoint(double tol); void setEqualVector(double tol); void setShortLineLength(double shortLine); void setProgressBarInterval(int interval); XdRdupCurve(); virtual ~XdRdupCurve(); private: AcGeTol m_tol; int m_pbarinterval; double m_slength; AcDbObjectId m_layerId; BOOL makeArrayByAngle(PickSet &ss,DList &lstNewCurves,PickSet &ssArc,PickSet &ssCir); BOOL makeArrayByCenterRadius(PickSet &ss,DList &lstArc); void getMinPoint(AcDbObjectIdArray *ids,AcGePoint3d &minPt); double distanceOfPtToLine(AcGePoint3d pt,AcGePoint3d sPt,AcGePoint3d ePt); int FindNode(double key,DList &lstNewCurves); int FindNode(DList &lstCircle,AcGePoint3d center,double radius); }; #endif // !defined(AFX_XDRDUPCURVE_H__1CA904C1_D54B_11D5_9F75_0800460222F0__INCLUDED_)