52 lines
1.2 KiB
C++
52 lines
1.2 KiB
C++
#pragma once
|
|
#include "TDbPlaceTree.h"
|
|
#include "EdJigEx.h"
|
|
//拖动布树,路径布树预览类
|
|
class TPlaceTreePreviewJig:public AcEdJig
|
|
{
|
|
public:
|
|
TPlaceTreePreviewJig(AcDbPolyline* pLine);
|
|
~TPlaceTreePreviewJig();
|
|
void SetPrompt(const TCHAR *m_pTemp);
|
|
int doIt();
|
|
AcDbPolyline* CloneCurrentSelectPoly();
|
|
protected:
|
|
virtual DragStatus sampler();
|
|
virtual Adesk::Boolean update();
|
|
virtual AcDbEntity* entity() const;
|
|
|
|
private:
|
|
int OnWitchSideByPtOnPoly(XPoly2D poly2d, XPoint point);
|
|
TGGeDirectionCurve GetNearestSegByPtOnPoly(XPoly2D poly2d, XPoint point);
|
|
int GetRetCode() const;
|
|
void UpdateData();
|
|
|
|
private:
|
|
TDbPlaceTree* m_entPlaceTree;
|
|
const TCHAR *m_pszPrompt; //提示信息
|
|
AcGePoint3d m_point; //插入点
|
|
XPoint m_ptPoint; //插入点
|
|
|
|
AcDbPolyline *m_pPolyLine; //实体
|
|
AcDbPolyline *m_pPolyLineRef;//引用
|
|
bool m_bRight; //是否在右侧
|
|
double m_dOffset; //偏移距离
|
|
int m_nRetCode; //返回码
|
|
};
|
|
|
|
//绘制弧线时,手动输入半径
|
|
class TPolyEdTreeJig : public TPolyEdJig {
|
|
public:
|
|
TPolyEdTreeJig(AcDbPolyline* pLine);
|
|
protected:
|
|
|
|
virtual DragStatus sampler();
|
|
virtual Adesk::Boolean update();
|
|
public:
|
|
void SetRadius(double dRadius);
|
|
void SetPoly(AcDbPolyline* pLine);
|
|
double GetRadius();
|
|
double m_dRadius;
|
|
};
|
|
|