57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
// XdRdupCurve.h: interface for the XdRdupCurve class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_XDRDUPCURVE_H__1CA904C1_D54B_11D5_9F75_0800460222F0__INCLUDED_)
|
|
#define AFX_XDRDUPCURVE_H__1CA904C1_D54B_11D5_9F75_0800460222F0__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "gepnt3d.h"
|
|
class XdRdupLineNode{
|
|
public:
|
|
double key;
|
|
AcDbObjectIdArray entArray;
|
|
};
|
|
class XdRdupCircArcNode{
|
|
public:
|
|
AcGePoint3d center;
|
|
double radius;
|
|
AcDbObjectIdArray arcIdArray;
|
|
};
|
|
|
|
class XdRdupCurve
|
|
{
|
|
public:
|
|
int m_shortLineNum;
|
|
int m_shortArcNum;
|
|
int m_delLineNum;
|
|
int m_delArcNum;
|
|
int m_delCirNum;
|
|
void removeDupCurve(PickSet &ss);
|
|
void removeDupCircle(PickSet &ss);
|
|
void removeDupArc(PickSet &ss);
|
|
void setEqualPoint(double tol);
|
|
void setEqualVector(double tol);
|
|
void setShortLineLength(double shortLine);
|
|
void setProgressBarInterval(int interval);
|
|
XdRdupCurve();
|
|
virtual ~XdRdupCurve();
|
|
private:
|
|
AcGeTol m_tol;
|
|
int m_pbarinterval;
|
|
double m_slength;
|
|
AcDbObjectId m_layerId;
|
|
BOOL makeArrayByAngle(PickSet &ss,DList <XdRdupLineNode> &lstNewCurves,PickSet &ssArc,PickSet &ssCir);
|
|
BOOL makeArrayByCenterRadius(PickSet &ss,DList<XdRdupCircArcNode> &lstArc);
|
|
void getMinPoint(AcDbObjectIdArray *ids,AcGePoint3d &minPt);
|
|
double distanceOfPtToLine(AcGePoint3d pt,AcGePoint3d sPt,AcGePoint3d ePt);
|
|
int FindNode(double key,DList <XdRdupLineNode> &lstNewCurves);
|
|
int FindNode(DList<XdRdupCircArcNode> &lstCircle,AcGePoint3d center,double radius);
|
|
};
|
|
|
|
|
|
#endif // !defined(AFX_XDRDUPCURVE_H__1CA904C1_D54B_11D5_9F75_0800460222F0__INCLUDED_)
|