Files
envi-code/SourceCode/Code2026/PipelineSpecCmd/AecPipeJig.h
T
2026-09-28 15:28:50 +08:00

93 lines
2.0 KiB
C++

#pragma once
#include "dbjig.h"
#include "earthwormdef.h"
class AECStatusRecord;
class TDbPipeLine;
class TDbPipeJig : public AcEdJig
{
public:
TDbPipeJig(void);
virtual ~TDbPipeJig(void);
void SetAdoDb(CUIISQLiteServer* pDb);
CUIISQLiteServer* GetAdoDb();
BOOL DoIt(WPipe::EApp app, BOOL bParamDlg = TRUE,BOOL bCalRefPoint = TRUE);
BOOL DoIt(WPipe::EApp app, const AcGePoint3d& ptRef,BOOL bParamDlg = TRUE);
BOOL DoIt(AecInterface* pIntf,WPipe::PipeParam* pParam);
BOOL DoItSpec(WPipe::EApp app, BOOL bParamDlg = TRUE,BOOL bCalRefPoint = TRUE);
BOOL DoItNotPipe(WPipe::EApp app, BOOL bParamDlg = TRUE);
BOOL DoItOnPath(WPipe::EApp app, const AcGePoint3dArray &arPts, WPipe::PipeParam *pParam = NULL);
//拉命令点前继承夹点的初始化信息,PL_wpipeaddd调用
void SetInitDataMapPartFrom(AecDbObjXDataMap* pXDataMap);
//是否有上下弯头产生遮挡处理
bool HasWipeClip();
public:
void PushBackStatusRec(AECStatusRecord* pRec);
void PopUpStatusRec();
int GetUndoGroupID();
void SetAngleWath(AcGePoint3d& ptCen,const AcGePoint3d& ptGeTo,const AcGeVector3d& vtDir);
AECStatusRecord* GetTailStatusRec();
public:
virtual AcEdJig::DragStatus sampler();
virtual AcDbEntity* entity() const;
virtual Adesk::Boolean update();
protected:
BOOL AfterDrag();
void InitStatusRecs();
void FreeStatusRecs();
BOOL GetLastStatusAquire(AcGePoint3d& ptGeBase);
void SetUndoGroupBegin();
void SetUndoGroupEnd();
void SetDispPromptWithEleTip(CString& sPrompt);
double PickWPipehereEl(const AcGePoint3d& ptGe);
void CalReferencePoint();
void SetReferencePoint(const AcGePoint3d& ptRef);
BOOL DoDrag();
protected:
TDbPipeLine* m_pPipeLine; //预演实体
AecInterface m_tStartIntf; //默认开始接口
CUIISQLiteServer* m_pDb; //数据库服务
CPtrArray m_arStaPtrs; //状态集
CPtrList m_lstStaPtrsBack; //上次状态
AcGeVector3d m_vtStaDir; //默认开始向量
int m_nUndoGoupid; //undo标记id
public:
AECStatusRecord* m_pCurStaRec; //当前请求状态
CString m_sSystem;
};