84 lines
2.0 KiB
C++
84 lines
2.0 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// 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<TGGeCurveSegment> &ss, BOOL bExact, BOOL bIntsect);
|
|
|
|
void IntersectCurves(TDPtrList<TGGeCurveSegment> &lstCurves);
|
|
|
|
void RemoveDupLine(TPickEntSet &ss);
|
|
|
|
void SpecialRemoveDupCurve(const TDPtrList<TGGeCurveSegment> &ss1, TDPtrList<TGGeCurveSegment> &ssOut);
|
|
|
|
void setShortLineLength(double dShortLine);
|
|
|
|
public:
|
|
|
|
int m_shortLineNum;
|
|
|
|
int m_delLineNum;
|
|
|
|
private:
|
|
|
|
BOOL makeArrayByAngle(TDPtrList<TGGeCurveSegSeg> &ss,TDPtrList <TDRdupLineNode> &lstNewCurves);
|
|
|
|
void getMinPoint(AcDbIntArray *ids,TADSGePoint3d & ptMin);
|
|
|
|
double distanceOfPtToLine(TADSGePoint3d pt, TADSGePoint3d ptStart, TADSGePoint3d ptEnd);
|
|
|
|
int FindNode(double dKey, TDPtrList<TDRdupLineNode> &lstNewCurves);
|
|
|
|
private:
|
|
|
|
double m_slength;
|
|
|
|
TDPtrList<TGGeCurveSegSeg> m_ssCurves;
|
|
};
|
|
|
|
extern GEOAPI void TdSpecialRemoveDupCurve(const TDPtrList<TGGeCurveSegment> &ssIn, TDPtrList<TGGeCurveSegment> &ssOut);
|
|
extern GEOAPI void TdRemoveDupCurves(TDPtrList<TGGeCurveSegment> &lstCurves, BOOL bExactDup,BOOL bIntsect);
|
|
extern GEOAPI void TdRemoveDupLines(TPickEntSet &ss);
|
|
|
|
#endif
|