//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, SH Software Co. Ltd. // = FileName : XRdupCurve 类 // = Version : ver2.0 // = Author : zjq // = CreateDate : 2002-09-09 // = Description: XRdupCurve 声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _XRDUPCURVEOPER_H_ #define _XRDUPCURVEOPER_H_ #ifndef _DLIST_H_ #include "DList.h" #endif #ifndef _XCURVESEGMENT_H_ #include "XCurveSegment.h" #endif #ifndef _PICKSET_H_ #include "PickSet.h" #endif #ifndef _XDRdupLineNode_H_ #include "XDRdupLineNode.h" #endif #ifndef _XCURVESEGSEG_H_ #include "XCurveObject.h" #endif #ifndef _XPOINT_H_ #include "XPoint.h" #endif class GEOAPI XRdupCurve { public: XRdupCurve(); virtual ~XRdupCurve(); void removeDupCurve(DList &ss, BOOL bExact, BOOL bIntsect); void IntersectCurves(DList &lstCurves); void RemoveDupLine(PickSet &ss); void SpecialRemoveDupCurve(const DList &ss1, DList &ssOut); void setShortLineLength(double dShortLine); public: int m_shortLineNum; int m_delLineNum; private: BOOL makeArrayByAngle(DList &ss,DList &lstNewCurves); void getMinPoint(AcDbIntArray *ids,XPoint & ptMin); double distanceOfPtToLine(XPoint pt, XPoint ptStart, XPoint ptEnd); int FindNode(double dKey, DList &lstNewCurves); private: double m_slength; DList m_ssCurves; }; extern GEOAPI void xdSpecialRemoveDupCurve(const DList &ssIn, DList &ssOut); extern GEOAPI void xdRemoveDupCurves(DList &lstCurves, BOOL bExactDup,BOOL bIntsect); extern GEOAPI void xdRemoveDupLines(PickSet &ss); #endif