132 lines
3.4 KiB
C++
132 lines
3.4 KiB
C++
#pragma once
|
|
|
|
#include "aecdbentitybase.h"
|
|
#include "AecDbObjXDataMap.h"
|
|
|
|
#ifdef EARTHWORM_EXPORT
|
|
#define DLLIMPEXP __declspec(dllexport)
|
|
#else
|
|
#define DLLIMPEXP __declspec(dllimport)
|
|
#endif
|
|
|
|
typedef struct DormerParam
|
|
{
|
|
enum DormerType
|
|
{
|
|
kSLOPE_TRIANGLE=0, //三角坡
|
|
kSLOPE_TWO=1, //双坡
|
|
kSLOPE_THREE=2, //三坡
|
|
kSLOPE_TRAPEZIA=3, //梯形坡
|
|
kSLOPE_FLAT=4, //平顶窗
|
|
};
|
|
//基本数据
|
|
DormerType m_dormerType;//老虎窗类型
|
|
double m_dWallHeight;
|
|
double m_dWallWidth;
|
|
double m_dWallThickness;//墙
|
|
double m_dWindowHeight;
|
|
double m_dWindowWidth; //窗
|
|
double m_dSlopeGrade;
|
|
double m_dSlopeHeight;
|
|
double m_dSlopeThickness;//坡
|
|
double m_dExtendEaves;
|
|
double m_dExtendHill; //伸出长度
|
|
|
|
//图层
|
|
TCHAR m_sz3DRoof[MAX_PATH];//顶层
|
|
TCHAR m_sz3DFloor[MAX_PATH];//底层
|
|
TCHAR m_sz3DWall[MAX_PATH];//侧墙层
|
|
TCHAR m_sz3DEaves[MAX_PATH];//檐层
|
|
TCHAR m_sz3DGlass[MAX_PATH];//玻璃层
|
|
TCHAR m_sz3DWindow[MAX_PATH];//眼窗层
|
|
|
|
}DORMERPARAM;
|
|
|
|
class DLLIMPEXP AecDbXDormerWindow : public AecDbEntityBase
|
|
{
|
|
public:
|
|
ACRX_DECLARE_MEMBERS(AecDbXDormerWindow);
|
|
|
|
protected:
|
|
static Adesk::UInt32 kCurrentVersionNumber;
|
|
|
|
public:
|
|
AecDbXDormerWindow(void);
|
|
~AecDbXDormerWindow(void);
|
|
|
|
public:
|
|
|
|
//老虎窗基点
|
|
void SetDormerBase(const AcGePoint3d& ptBase);
|
|
AcGePoint3d GetDormerBase() const;
|
|
|
|
//老虎窗方向
|
|
void SetDormerDir(const AcGeVector3d& vtDormerDir);
|
|
AcGeVector3d GetDormerDir() const;
|
|
|
|
//老虎窗参数
|
|
void SetDormerPar(const DormerParam& dormerPar);
|
|
bool GetDormerPar(DormerParam& dormerPar) const;
|
|
|
|
//显示窗户
|
|
void ShowWindow(BOOL bShow=TRUE);
|
|
BOOL IsShowWindow() const;
|
|
|
|
//老虎窗类型
|
|
LPCTSTR GetDormerType() const;
|
|
|
|
public:
|
|
|
|
virtual void subList() const;
|
|
virtual Acad::ErrorStatus copyFrom(const AcRxObject* pSrc);
|
|
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
|
|
|
|
virtual Acad::ErrorStatus subGetGripPoints (AcGePoint3dArray& gripPoints,AcDbIntArray& osnapModes,AcDbIntArray& geomIds) const;
|
|
virtual Acad::ErrorStatus subGetGripPoints( AcDbGripDataPtrArray& grips,
|
|
const double curViewUnitSize,
|
|
const int gripSize,
|
|
const AcGeVector3d& curViewDir,
|
|
const int bitflags) const;
|
|
|
|
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbVoidPtrArray& appData, const AcGeVector3d& offset, const int bitflags);
|
|
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset);
|
|
|
|
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const;
|
|
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,const AcGeVector3d& offset);
|
|
|
|
virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler* pFiler);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
|
|
|
|
virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler* pFiler);
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler* pFiler) const;
|
|
|
|
protected:
|
|
|
|
virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const;
|
|
virtual Acad::ErrorStatus Draw3d(AcGiDraw &dc) const;
|
|
|
|
Acad::ErrorStatus DrawLabel(AcGiDraw &dc,LPCTSTR pszLab) const;
|
|
CString GetLabel() const;
|
|
|
|
Acad::ErrorStatus DrawEntsToSolid(AcGiDraw& dc,AcDbVoidPtrArray& arEntPtrs) const;
|
|
|
|
public:
|
|
|
|
//专业数据 和绘制设置
|
|
virtual AecDbObjXDataMap* GetSpecialtyData(AcDb::OpenMode bMode = AcDb::kForWrite);
|
|
virtual const AecDbObjXDataMap* GetSpecialtyData() const;
|
|
|
|
protected:
|
|
|
|
BOOL IsValid() const;
|
|
|
|
protected:
|
|
|
|
//专业数据
|
|
AecDbObjXDataMap m_mapSpecXData;//序列化
|
|
|
|
private:
|
|
//夹点数据
|
|
void* m_pXDormerWindowImpl;//实现类
|
|
};
|