#pragma once #include "dbjig.h" class AecSectionDirEntity : public AcDbEntity { public: AecSectionDirEntity(); virtual ~AecSectionDirEntity(void); void SetDirToPoint(AcGePoint3d& ptTo2); void SetBasePoint(AcGePoint3d& ptFr,AcGePoint3d& ptTo); void SetBasePoint(AcGePoint3d& ptFr,AcGePoint3d& ptTo,AcGeVector3d& vtNorm); #if ARX < 18 virtual Adesk::Boolean worldDraw (AcGiWorldDraw *mode) ; #else virtual Adesk::Boolean subWorldDraw (AcGiWorldDraw *mode) ; #endif Adesk::Boolean worldDraw2d(AcGiWorldDraw *mode); public: AcGePoint3d m_ptFr; AcGePoint3d m_ptTo; AcGePoint3d m_ptTo2; AcGeVector3d m_vtNorm; AcGeVector3d m_vtDirSel; }; class AecSectionDirJig : public AcEdJig { public: AecSectionDirJig(void); ~AecSectionDirJig(void); void SetSectionLine(ads_point ptFr,ads_point ptTo); void SetSectionLine(ads_point ptFr,ads_point ptTo,const AcGeVector3d& vtNorm); BOOL DoIt(LPCTSTR pszPrompt = NULL); void GetDirPoint(AcGePoint3d& ptDirTo) const; bool GetDir(AcGeVector3d& vtDir) const; public: virtual AcEdJig::DragStatus sampler(); virtual AcDbEntity* entity() const; virtual Adesk::Boolean update(); public: bool m_bSlice; AcGePoint3d m_ptFr; AcGePoint3d m_ptTo; AcGePoint3d m_ptTo2; AcGeVector3d m_vtNorm; AecSectionDirEntity* m_pEnt; }; class AecSectionPosJig : public AcEdJig { public: AecSectionPosJig(void); ~AecSectionPosJig(void); void SetWH(double dW,double dH){m_dW = dW,m_dH = dH;} void SetDfltPt(AcGePoint3d ptTo){m_ptTo = ptTo;} BOOL DoIt(); void GetPosPoint(AcGePoint3d& ptTo); public: virtual AcEdJig::DragStatus sampler(); virtual AcDbEntity* entity() const; virtual Adesk::Boolean update(); double m_dW,m_dH; AcGePoint3d m_ptTo; AecSectionDirEntity* m_pEnt; };