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

77 lines
1.8 KiB
C++

#pragma once
#include "EdJigEx.h"
#include "AecDbSymbSection.h"
#include "AecDbSymbWithText.h"
class TVirtualSection;
class TSectionEdJig : public TSymbEdJig
{
public:
TSectionEdJig();
TSectionEdJig(AecXDbSymbSection* 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();
XPoint GetSecPoint2(); // cet 2010.4.19 add 返回第二个剖切点
CString GetNumber(); // cet 2010.4.23 add 剖切编号
AcGeVector3d GetSecDir();
private:
TVirtualSection* m_pVirDrawEnt;
TSectionOper m_nOperCode;
AecXDbSymbSection* m_pDrawEnt;
AcGePoint3d m_ptFir;
AcGePoint3d m_ptSec;
AcGePoint3d m_ptCur;
AcGePoint3d m_ptCorner;
AcGeVector3d m_vtDir;
CString m_strName; // cet 2010.4.23 add 剖切编号
};
class TVirtualSection : public AecXDbSymbWithText
{
public:
TVirtualSection();
virtual ~TVirtualSection();
virtual Acad::ErrorStatus Draw2d(AcGiDraw& dc) const;
void SetSectionPtr(AecXDbSymbSection* pSec);
void SetBasePoints(const AcGePoint3d& ptFir,const AcGePoint3d& ptSec);
void SetCurPtAndDir(const AcGePoint3d& ptCur,const AcGeVector3d& vtCur);
private:
Acad::ErrorStatus ExplodeOrDraw2dLineBox(AcGiDraw& dc) const;
private:
AecXDbSymbSection* m_pDrawEnt;
AcGePoint3d m_ptFir;
AcGePoint3d m_ptSec;
AcGePoint3d m_ptPos;
AcGePoint3d m_ptCorner;
AcGeVector3d m_vtDir;
};