160 lines
4.0 KiB
C++
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;
|