Files
envi-code/SourceCode/Code2026/tg_shs/shs_siteplan/TPlaceTreePreviewJig.h
T
2026-09-28 15:28:50 +08:00

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;
};