#pragma once #include "EarThwormDef.h" class AecDbECableLine; class AECStatusRecord; class CUIISQLiteServer; class AecDbECableJig : public AcEdJig { public: AecDbECableJig(void); AecDbECableJig(AecHvac::DuctParam* pParam); virtual~AecDbECableJig(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); void InitStatusBRecs(); void InitStatusTRecs(); void InitXYPlanStatusRecs(); public: virtual AcEdJig::DragStatus sampler(); virtual AcDbEntity* entity() const; virtual Adesk::Boolean update(); public: int AfterDrag(); void EndDragRecord(); AcEdJig::DragStatus SetPickPoint(const AcGePoint3d& ptGe); public: void PushBackStatusRec(AECStatusRecord* pRec); void PopUpStatusRec(); int GetUndoGroupID(); void SetAngleWath(AcGePoint3d& ptCen,const AcGePoint3d& ptGeTo,const AcGeVector3d& vtDir); AECStatusRecord* GetTailStatusRec() const; AECStatusRecord* GetCurStatusRec() const; protected: void FreeStatusRecs(); BOOL GetLastStatusAquire(AcGePoint3d& ptGeBase); void SetUndoGroupBegin(); void SetUndoGroupEnd(); void SetDispPromptWithEleTip(CString& sPrompt); double PickWPipehereEl(const AcGePoint3d& ptGe); void CalReferencePoint(); protected: CUIISQLiteServer* m_pDb; //数据库服务 AecDbECableLine* m_pPipeLine; // AecInterface m_tStartIntf; //默认开始接口 CPtrArray m_arStaPtrs; //状态集 CPtrList m_lstStaPtrsBack; //上次状态 AcGeVector3d m_vtStaDir; //默认开始向量 int m_nUndoGoupid; //undo标记id public: AECStatusRecord* m_pCurStaRec; //当前请求状态 };