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

35 lines
1.2 KiB
C++

#pragma once
#include "dbmain.h"
#include "TChangeClass.h"
////拖动布树,仅仅用来做偏移时jig的绘制,其他功能没有实
class TDbPlaceTree: public AcDbEntity
{
public:
TDbPlaceTree();
void SetPolyPath(XPoly2D poly2D);
void UpdatePlaceTreeData(double dRad, double dDis, bool bIsSetDis, bool bIsRotation, AcDbObjectId idBlk);
virtual ~TDbPlaceTree(void);
virtual Adesk::Boolean subWorldDraw(AcGiWorldDraw *pWd);
private:
// 造块
bool MakeBlockReference(AcGePoint3d ptInsert,AcGiWorldDraw *pWd);
// 模拟造块,因为真实造块会非常卡
bool SimulateMakeBlockReference(AcGePoint3d ptInsert,AcGiWorldDraw *pWd);
// 直线样式生成树
void LineStyle(AcDbLine *pLine, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis);
// 圆弧样式生成树
void ArcStyle(AcDbArc *pArc, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis, double dBugle);
// 多段线样式生成树
void PolyLineStyle(AcDbPolyline *pPolyLine, double dTreeDis, AcGePoint3dArray &ptAryInsert, BOOL bIsSetDis);
private:
double m_dRad; // 半径
double m_dDis; // 间距
AcDbObjectId m_idBlk; // 块ID
BOOL m_bIsSetDis; // 是否设置间距可调
BOOL m_bIsRotation;// 是否设置随机旋转
AcDbPolyline m_polyLine;
};