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

169 lines
4.4 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(const AcDbX3dSolid::Primitive &type, UINT idd, CWnd* pParent = nullptr);
virtual ~CDTYG_XG();
virtual bool init(AcDbObjectId &idEntity, LPCTSTR guid, AcDbObjectId &hlid);
void resetLayersAndOverrules();
void AddOverrules();
void DelIntermediaryObj();
bool getRegionData(AcDbObjectId &idReg, CString &sReg, AcGePoint3d &ptC);
bool getRegionData(AcDbObjectId &idReg, AcDbRegion *&pReg, AcGePoint3d &ptC);
protected:
virtual void OnOK();
virtual void OnCancel();
DECLARE_MESSAGE_MAP()
protected:
AcDbObjectId m_idReg; // 交给用户修改的polyline或Circle的id
AcDbObjectId m_idPath; // 交给用户修改的 路径 或 旋转轴 的id
AcDbObjectId m_idEntity; // 建筑实体
CString m_sGUID; // 单体异构标识
CString m_sReg; // 将polyline转存为字符串表示
AcDbX3dSolid::Primitive m_type;
std::vector<AcDbObjectId> m_interObjs; // 中间实体对象
AcGeMatrix3d m_matrix;
AcDbObjectId m_idHlight;
};
class CDTYG_XG_EXTRUD : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_EXTRUD)
public:
CDTYG_XG_EXTRUD(CWnd* pParent = nullptr);
virtual ~CDTYG_XG_EXTRUD();
virtual bool init(AcDbObjectId &idEntity, LPCTSTR guid, AcDbObjectId &hlid);
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;
AcGePoint3d m_ptFr, m_ptTo;
};
class CDTYG_XG_REVOLVE : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_REVOLVE)
public:
CDTYG_XG_REVOLVE(CWnd* pParent = nullptr);
virtual ~CDTYG_XG_REVOLVE();
virtual bool init(AcDbObjectId &idEntity, LPCTSTR guid, AcDbObjectId &hlid);
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 = nullptr);
virtual ~CDTYG_XG_SWEEP();
virtual bool init(AcDbObjectId &idEntity, LPCTSTR guid, AcDbObjectId &hlid);
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_CUT : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_CUT)
public:
CDTYG_XG_CUT(CWnd* pParent = nullptr);
virtual ~CDTYG_XG_CUT();
virtual bool init(AcDbObjectId &idEntity, LPCTSTR guid, AcDbObjectId &hlid);
enum { IDD = IDD_DTYG_MODIFY_DEF };
protected:
DECLARE_MESSAGE_MAP()
public:
void drawRegion();
afx_msg void OnBnClickedOk();
public:
double m_dHeight;
AcGePoint3d m_ptFr, m_ptTo;
};
class CDTYG_XG_LOFT : public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_LOFT)
public:
CDTYG_XG_LOFT(CWnd* pParent = nullptr);
virtual ~CDTYG_XG_LOFT();
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
virtual bool init(AcDbObjectId &idEntity, LPCTSTR guid, AcDbObjectId &hlid);
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;
};
class CDTYG_XG_BDPipeBase: public CDTYG_XG
{
DECLARE_DYNAMIC(CDTYG_XG_BDPipeBase)
public:
CDTYG_XG_BDPipeBase(CWnd* pParent = nullptr);
virtual ~CDTYG_XG_BDPipeBase();
virtual bool init(AcDbObjectId &idEntity, LPCTSTR guid, AcDbObjectId &hlid);
enum { IDD = IDD_DTYG_MODIFY_DEF };
protected:
DECLARE_MESSAGE_MAP()
public:
void drawRegion();
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel();
private:
AcGePoint3d m_ptOldStartPoint;
};
typedef Singleton<CDTYG_XG_EXTRUD> g_XGExtrud;
typedef Singleton<CDTYG_XG_REVOLVE> g_XGRevolve;
typedef Singleton<CDTYG_XG_CUT> g_XGCut;
typedef Singleton<CDTYG_XG_SWEEP> g_XGSweep;
typedef Singleton<CDTYG_XG_LOFT> g_XGLoft;
typedef Singleton<CDTYG_XG_BDPipeBase> g_XGBDPipeBase;