#ifndef __TSECTIONEDJIG_H__ #define __TSECTIONEDJIG_H__ #if _MSC_VER > 1000 #pragma once /******************************************************************** created: 2008/12/18 created: 18:12:2008 16:59 filename: f:\tg_dev\水电开发\twt_pump\tsectionedjig.h file path: f:\tg_dev\水电开发\twt_pump file base: tsectionedjig author: 田设计 purpose: 剖面生成命令前,创建剖断线,并选择要剖的选择集 备注: 从电气【变配电室】移植过来 *********************************************************************/ #endif // _MSC_VER > 1000 #include "EdJigEx.h" #include "dbSymbolAnnotate.h" class TVirtualSection; class TSectionEdJig : public TSymbEdJig { public: TSectionEdJig(); TSectionEdJig(TDbSymbSection* pSec); virtual ~TSectionEdJig(); public: enum TSectionOper { kNone = 0, kSectPoint = 1, kViewDirection = 2, }; virtual AcEdJig::DragStatus GetPoint(XPoint &pt); virtual Adesk::Boolean update(); virtual AcDbEntity* entity() const; public: void SetOperCode(TSectionEdJig::TSectionOper opCode); int DoIt(int *pKeyIndex=NULL); void SymbSection(); void SymbSectionArg(BOOL bViewLine); void SetBasePoints(const AcGePoint3d& ptFir,const AcGePoint3d& ptSec); void GetCornerPoint(AcGePoint3d& ptCorner); void GetPickset(PickSet& ssEnt); XPoint GetSecPoint(); AcGeVector3d GetSecDir(); private: TVirtualSection* m_pVirDrawEnt; TSectionOper m_nOperCode; TDbSymbSection* m_pDrawEnt; AcGePoint3d m_ptFir; AcGePoint3d m_ptSec; AcGePoint3d m_ptCur; AcGePoint3d m_ptCorner; AcGeVector3d m_vtDir; }; class TVirtualSection : public TDbSymbWithText { public: TVirtualSection(); virtual ~TVirtualSection(); virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw& dc) const; void SetSectionPtr(TDbSymbSection* pSec); void SetBasePoints(const AcGePoint3d& ptFir,const AcGePoint3d& ptSec); void SetCurPtAndDir(const AcGePoint3d& ptCur,const AcGeVector3d& vtCur); private: Acad::ErrorStatus ExplodeOrDraw2dLineBox(XExplodeDraw& dc) const; private: TDbSymbSection* m_pDrawEnt; AcGePoint3d m_ptFir; AcGePoint3d m_ptSec; AcGePoint3d m_ptPos; AcGePoint3d m_ptCorner; AcGeVector3d m_vtDir; }; #endif // __TSECTIONEDJIG_H__