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

219 lines
5.3 KiB
C++

#if !defined(AFX_DBPUMP_H__B50AFD27_FC38_4A9B_8485_175E0B471478__INCLUDED_)
#define AFX_DBPUMP_H__B50AFD27_FC38_4A9B_8485_175E0B471478__INCLUDED_
#include "DbEquipment.h"
class CDbFireExtinguisher: public AecXDbEntityBaseEx
{
public:
ACRX_DECLARE_MEMBERS(CDbFireExtinguisher);
public:
CDbFireExtinguisher();
private:
bool m_bUp; // 文字是否在上方(按数量布置时使用)
double m_dTextHeight; // 字高
AcDbHardPointerId m_idTextStyle; // 文字样式
Adesk::Int32 m_nLayType; // 布置方式
double m_dProtectRadius; // 保护半径
Adesk::Int32 m_nNum; // 灭火器数量
bool m_bDim; // 是否标注
XString m_sSpec; // 规格
AcGePoint3d m_ptLabel;
XString m_sGrade; // 等级
Adesk::Int32 m_nScaleType; // 比例缩放类型:0随当前比例缩放,1固定比例
AcDbHardPointerId m_idTextLayer;
double m_dTextAngle;
AcGiViewDraw::TextAlignment m_align;
XPoint m_ptLocation; // 位置点
double m_dScale; // 图块显示比例
AcDbHardPointerId m_idBlock2d; // 二维图块
XVector3D m_vtDirection; // 图块方向
Adesk::UInt8 m_nMirror; // 图块镜像
public:
void SetTextLayer(AcDbObjectId id);
AcDbObjectId GetTextLayer()
{
return m_idTextLayer;
}
void SetLabelLoc(AcGePoint3d pt);
AcGePoint3d GetLabelLoc()
{
return m_ptLabel;
}
// 按数量布置灭火器时,文字在灭火器上方或下方
void SetDimTextPos(bool bUp = true);
bool GetDimTextPos()
{
assertReadEnabled();
return m_bUp;
}
// 字高
void SetTextHeight(double dHeight);
double GetTextHeight()
{
assertReadEnabled();
return m_dTextHeight;
}
// 布置方式 0 按数量布置 1 单布
void SetLayType(int nLayType);
int GetLayType()
{
assertReadEnabled();
return m_nLayType;
}
// 保护半径
void SetProtectRadius(double dRadius);
double GetProtectRadius()
{
assertReadEnabled();
return m_dProtectRadius;
}
// 文字样式
void SetTextStyleId(AcDbObjectId id);
AcDbObjectId GetTextStyleId()
{
assertReadEnabled();
return m_idTextStyle;
}
// 灭火器数量
void SetNum(int nNum);
int GetNum()
{
assertReadEnabled();
return m_nNum;
}
// 是否标注
void SetIsDim(bool bDim);
bool GetIsDim()
{
assertReadEnabled();
return m_bDim;
}
// 规格
void SetSpec(CString sSpec);
CString GetSpec()
{
assertReadEnabled();
return CString(m_sSpec);
}
// 等级
void SetGrade(CString sGrade);
CString GetGrade()
{
assertReadEnabled();
return CString(m_sGrade);
}
void SetScaleType(int nType);
int GetScaleType()
{
assertReadEnabled();
return m_nScaleType;
}
void SetTextRotation(double dAngle);
double GetTextRotation()
{
assertReadEnabled();
return m_dTextAngle;
}
void SetTextAlignment(AcGiDraw::TextAlignment align);
AcGiDraw::TextAlignment GetTextAlignment()
{
assertReadEnabled();
return m_align;
}
int GetSpecificationType()
{
assertReadEnabled();
const EntityFields &fd = GetFields();
Adesk::Int8 nType;
fd.GFD(_T("FIRE_SPECIFICATIONTYPE"), nType);
return nType;
}
void SetSpecificationType(Adesk::Int8 nType)
{
assertWriteEnabled();
EntityFields &fd = Fields();
fd.SFD(_T("FIRE_SPECIFICATIONTYPE"), nType);
}
double GetAngle() const
{
return ads_angle(XPoint(),m_vtDirection);
}
void SetDirection(const XVector3D &vt)
{
assertWriteEnabled();
m_vtDirection=vt;
}
void SetAngle(double dAngle)
{
SetDirection(XVector3D(cos(dAngle),sin(dAngle),0));
}
double GetScale() const
{
return m_dScale;
}
void SetScale(double dScale=1.0)
{
assertWriteEnabled();
m_dScale=dScale;
}
AcDbObjectId GetBlock2d() const
{
return m_idBlock2d;
}
void SetBlock2d(const AcDbObjectId &id)
{
assertWriteEnabled();
m_idBlock2d=id;
}
XPoint GetLocation() const
{
return m_ptLocation;
}
void SetLocation(const XPoint &pt)
{
assertWriteEnabled();
m_ptLocation=pt;
}
// 设备(图块)X、Y轴的镜像,X轴方向为m_vtDirection方向
void MirrorByX(BOOL bFlag=TRUE);
void MirrorByY(BOOL bFlag=TRUE);
BOOL IsMirrorByX() const
{
return (m_nMirror&MIRROR_XAXIS)!=0;
}
BOOL IsMirrorByY() const
{
return (m_nMirror&MIRROR_YAXIS)!=0;
}
// cet 2014.7.23 add 单布标注时文字格式类型(0:数量-型号规格 1:型号规格×数量)
int GetTextFormatType() const;
void SetTextFormatType(int nType);
public: // Override TDbEquipment
virtual void CopyPropertiesFrom(AcDbEntity *pSrc, unsigned gMatchFlag);
virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const;
virtual Acad::ErrorStatus GetGripText(int idx, CString &cs) const;
virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapModes,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
const AcGeVector3d& offset);
Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
virtual SubText* HitTestText(XPoint pt)const {return NULL;};
public: // Override AcDbEntity
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
private:
// cet 2014.7.23 add 单布标注时标注文字
CString GetDimText() const;
};
#endif