#pragma once #include "EarThwormDef.h" class AecDbDuctLine; class AECStatusRecord; class CUIISQLiteServer; class AecDbDuctJig : public AcEdJig { public: AecDbDuctJig(void); AecDbDuctJig(AecHvac::DuctParam& param); virtual~AecDbDuctJig(void); BOOL DoIt(WPipe::EApp app, BOOL bParamDlg = TRUE,BOOL bCalRefPoint = TRUE); BOOL DoIt(AecInterface* pIntf,AecHvac::DuctParam* pParam); BOOL DoItOnPath(WPipe::EApp app, const AcGePoint3dArray &arPts, bool bHasFit = true, bool bShowParamDlg = true); public: virtual AcEdJig::DragStatus sampler(); virtual AcDbEntity* entity() const; virtual Adesk::Boolean update(); public: void PushBackStatusRec(AECStatusRecord* pRec); void PopUpStatusRec(); int GetUndoGroupID(); void SetAngleWath(AcGePoint3d& ptCen,const AcGePoint3d& ptGeTo,const AcGeVector3d& vtDir); AECStatusRecord* GetTailStatusRec(); int AfterDrag(); void EndDragRecord(); protected: void InitStatusRecs(); void FreeStatusRecs(); BOOL GetLastStatusAquire(AcGePoint3d& ptGeBase); void SetUndoGroupBegin(); void SetUndoGroupEnd(); void SetDispPromptWithEleTip(CString& sPrompt); double PickWPipehereEl(const AcGePoint3d& ptGe); void CalReferencePoint(); protected: AecDbDuctLine* m_pPipeLine; // AecInterface m_tStartIntf; //默认开始接口 CPtrArray m_arStaPtrs; //状态集 CPtrList m_lstStaPtrsBack; //上次状态 AcGeVector3d m_vtStaDir; //默认开始向量 int m_nUndoGoupid; //undo标记id public: AECStatusRecord* m_pCurStaRec; //当前请求状态 };