Files
envi-code/SourceCode/Code2026/PipelineCmd/EQU_MODIFY.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

160 lines
4.0 KiB
C++

#pragma once
#include "resource.h"
#include "singleton.h"
#include "acdbx3dsolid.h"
#include "XListCtrl.h"
#define WM_REFRESH_HLIGHT_ENTITY_MESSAGE (WM_USER+100)
class CDTYG_XG : public CDialog
{
DECLARE_DYNAMIC(CDTYG_XG)
public:
CDTYG_XG(UINT idd, CWnd* pParent = NULL);
virtual ~CDTYG_XG();
virtual bool init(AecEqui::XPrimData *pData
, AcDbObjectId idEqu
, AcDbObjectId &hlid
, const AcGePoint3d &ptIns
, const AcGeVector3d &vtDir
, const bool &bVert );
void resetLayersAndOverrules();
void AddOverrules();
void DelIntermediaryObj();
bool getRegionData(AcDbObjectId &idReg, CString &sReg, AcGePoint3d &ptC);
bool getRegionData(AcDbObjectId &idReg, AcDbRegion *&pReg, AcGePoint3d &ptC);
void TransformEntity(AcDbEntity *pEnt);
void UnTransformEntity(AcDbEntity *pEnt);
protected:
virtual void OnOK();
virtual void OnCancel();
DECLARE_MESSAGE_MAP()
protected:
AcDbObjectId m_idReg; // 交给用户修改的polyline或Circle的id
AcDbObjectId m_idPath; // 交给用户修改的 路径 或 旋转轴 的id
AecEqui::XPrimData *m_pPrim;
CString m_sReg; // 将polyline转存为字符串表示
std::vector<AcDbObjectId> m_interObjs; // 中间实体对象
AcDbObjectId m_idHlight;
AcDbObjectId m_idEqu;
// 设备的插入点
AcGePoint3d m_ptIns;
// 设备的插入方向
AcGeVector3d m_vtDir;
// 是否垂直
bool m_bVert;
};
class CDTYG_XG_EXTRUD : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_EXTRUD)
public:
CDTYG_XG_EXTRUD(CWnd* pParent = NULL);
virtual ~CDTYG_XG_EXTRUD();
virtual bool init(AecEqui::XPrimData *pData
, AcDbObjectId idEqu
, AcDbObjectId &hlid
, const AcGePoint3d &ptIns
, const AcGeVector3d &vtDir
, const bool &bVert );
enum { IDD = IDD_DTYG_MODIFY_EXTRUD };
protected:
virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
public:
void drawRegion();
afx_msg void OnBnClickedOk();
public:
double m_dHeight;
};
class CDTYG_XG_REVOLVE : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_REVOLVE)
public:
CDTYG_XG_REVOLVE(CWnd* pParent = NULL);
virtual ~CDTYG_XG_REVOLVE();
virtual bool init(AecEqui::XPrimData *pData
, AcDbObjectId idEqu
, AcDbObjectId &hlid
, const AcGePoint3d &ptIns
, const AcGeVector3d &vtDir
, const bool &bVert );
enum { IDD = IDD_DTYG_MODIFY_DEF };
protected:
DECLARE_MESSAGE_MAP()
public:
void drawRegion();
afx_msg void OnBnClickedOk();
public:
AcGePoint3d m_ptOrg; // 旋转轴原点
AcGeVector3d m_vt; // 旋转轴方向
double m_dSweepAngle; // 旋转角度
double m_dStartAngle; // 旋转起始角度
};
class CDTYG_XG_SWEEP : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_SWEEP)
public:
CDTYG_XG_SWEEP(CWnd* pParent = NULL);
virtual ~CDTYG_XG_SWEEP();
virtual bool init(AecEqui::XPrimData *pData
, AcDbObjectId idEqu
, AcDbObjectId &hlid
, const AcGePoint3d &ptIns
, const AcGeVector3d &vtDir
, const bool &bVert );
enum { IDD = IDD_DTYG_MODIFY_DEF };
protected:
DECLARE_MESSAGE_MAP()
public:
void drawRegion();
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel();
public:
AcDbCurve *m_pCurve;
};
class CDTYG_XG_LOFT : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_LOFT)
public:
CDTYG_XG_LOFT(CWnd* pParent = NULL);
virtual ~CDTYG_XG_LOFT();
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
virtual bool init(AecEqui::XPrimData *pData
, AcDbObjectId idEqu
, AcDbObjectId &hlid
, const AcGePoint3d &ptIns
, const AcGeVector3d &vtDir
, const bool &bVert );
enum { IDD = IDD_DTYG_MODIFY_LOFT };
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void drawRegion();
afx_msg void OnBnClickedOk();
afx_msg LRESULT OnEditEnd(WPARAM, LPARAM);
afx_msg void OnBnClickedCheck1();
afx_msg void OnNMClickList(NMHDR *pNMHDR, LRESULT *pResult);
public:
CXListCtrl m_lstCtrl;
std::vector<double> m_heights;
std::vector<CString> m_regs;
BOOL m_bUseTbl;
};
typedef Singleton<CDTYG_XG_EXTRUD> g_equXGExtrud;
typedef Singleton<CDTYG_XG_REVOLVE> g_equXGRevolve;
typedef Singleton<CDTYG_XG_SWEEP> g_equXGSweep;
typedef Singleton<CDTYG_XG_LOFT> g_equXGLoft;