Files
envi-code/SourceCode/Code2026/tg_shs/inc/geo/TGGeRdupCurveOper.h
T

83 lines
2.0 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
//-----------------------------------------------------------------------------+
2026-09-28 15:28:50 +08:00
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
2026-10-04 00:04:20 +08:00
// = FileName : TGGeRdupCurveOper 类
2026-09-28 15:28:50 +08:00
// = Version : ver2.0
// = Author : wlw
// = CreateDate : 2002-09-09
2026-10-04 00:04:20 +08:00
// = Description: TGGeRdupCurveOper 声明
2026-09-28 15:28:50 +08:00
// = 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