84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// 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<XCurveSegment> &ss, BOOL bExact, BOOL bIntsect);
|
|
|
|
void IntersectCurves(DList<XCurveSegment> &lstCurves);
|
|
|
|
void RemoveDupLine(PickSet &ss);
|
|
|
|
void SpecialRemoveDupCurve(const DList<XCurveSegment> &ss1, DList<XCurveSegment> &ssOut);
|
|
|
|
void setShortLineLength(double dShortLine);
|
|
|
|
public:
|
|
|
|
int m_shortLineNum;
|
|
|
|
int m_delLineNum;
|
|
|
|
private:
|
|
|
|
BOOL makeArrayByAngle(DList<XCurveObject> &ss,DList <XDRdupLineNode> &lstNewCurves);
|
|
|
|
void getMinPoint(AcDbIntArray *ids,XPoint & ptMin);
|
|
|
|
double distanceOfPtToLine(XPoint pt, XPoint ptStart, XPoint ptEnd);
|
|
|
|
int FindNode(double dKey, DList<XDRdupLineNode> &lstNewCurves);
|
|
|
|
private:
|
|
|
|
double m_slength;
|
|
|
|
DList<XCurveObject> m_ssCurves;
|
|
};
|
|
|
|
extern GEOAPI void xdSpecialRemoveDupCurve(const DList<XCurveSegment> &ssIn, DList<XCurveSegment> &ssOut);
|
|
extern GEOAPI void xdRemoveDupCurves(DList<XCurveSegment> &lstCurves, BOOL bExactDup,BOOL bIntsect);
|
|
extern GEOAPI void xdRemoveDupLines(PickSet &ss);
|
|
|
|
#endif
|