//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TGGeRdupCurveOper Àà // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TGGeRdupCurveOper ÉùÃ÷ // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TGGERDUPCURVEOPER_H_ #define _TGGERDUPCURVEOPER_H_ #ifndef _TDPTRLIST_H_ #include "TDPtrList.h" #endif #ifndef _TGGECURVESEGMENT_H_ #include "TGGeCurveSegment.h" #endif #ifndef _TPICKENTSET_H_ #include "TPickEntSet.h" #endif #ifndef _TDRDUPLINENODE_H_ #include "TDRdupLineNode.h" #endif #ifndef _TGGECURVESEGSEG_H_ #include "TGGeCurveSegSeg.h" #endif #ifndef _TADSGEPOINT3D_H_ #include "TADSGePoint3d.h" #endif class GEOAPI TGGeRdupCurveOper { public: TGGeRdupCurveOper(); virtual ~TGGeRdupCurveOper(); void removeDupCurve(TDPtrList &ss, BOOL bExact, BOOL bIntsect); void IntersectCurves(TDPtrList &lstCurves); void RemoveDupLine(TPickEntSet &ss); void SpecialRemoveDupCurve(const TDPtrList &ss1, TDPtrList &ssOut); void setShortLineLength(double dShortLine); public: int m_shortLineNum; int m_delLineNum; private: BOOL makeArrayByAngle(TDPtrList &ss,TDPtrList &lstNewCurves); void getMinPoint(AcDbIntArray *ids,TADSGePoint3d & ptMin); double distanceOfPtToLine(TADSGePoint3d pt, TADSGePoint3d ptStart, TADSGePoint3d ptEnd); int FindNode(double dKey, TDPtrList &lstNewCurves); private: double m_slength; TDPtrList m_ssCurves; }; extern GEOAPI void TdSpecialRemoveDupCurve(const TDPtrList &ssIn, TDPtrList &ssOut); extern GEOAPI void TdRemoveDupCurves(TDPtrList &lstCurves, BOOL bExactDup,BOOL bIntsect); extern GEOAPI void TdRemoveDupLines(TPickEntSet &ss); #endif