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

79 lines
1.5 KiB
C++

#pragma once
#include "EarThwormDef.h"
class AecDbRoadLine;
class AECStatusRecord;
class AecDbRoadJig : public AcEdJig
{
public:
AecDbRoadJig(void);
AecDbRoadJig(WPipe::RoadParam* pParam);
virtual~AecDbRoadJig(void);
BOOL DoIt(WPipe::EApp app, BOOL bParamDlg = TRUE,BOOL bCalRefPoint = TRUE);
BOOL DoIt(AecInterface* pIntf,WPipe::RoadParam* pParam);
void InitStatusRecs();
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(AcGePoint3d& ptGe);
void CalReferencePoint();
BOOL AddRoadNode(double dAngle,double dR,AcGePoint3d& ptS,AcGePoint3d& ptE);
protected:
AecDbRoadLine* m_pPipeLine; //
AecInterface m_tStartIntf; //默认开始接口
CPtrArray m_arStaPtrs; //状态集
CPtrList m_lstStaPtrsBack; //上次状态
AcGeVector3d m_vtStaDir; //默认开始向量
int m_nUndoGoupid; //undo标记id
public:
AECStatusRecord* m_pCurStaRec; //当前请求状态
};