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