Files
envi-code/SourceCode/Code2026/tg_shs/inc/TArch/DbFloorRect.h
T

221 lines
6.3 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
// DbFloorRect.h: interface for the TDbFloorRect class.
2026-09-28 15:28:50 +08:00
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DBFLOORRECT_H__E28722E1_CA4E_4411_8513_E56D227DEBCF__INCLUDED_)
#define AFX_DBFLOORRECT_H__E28722E1_CA4E_4411_8513_E56D227DEBCF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/*============================================================================*
* Copyright(c), 1994-2008, Beijing Tangent Engineering Software Co.Ltd.
2026-10-04 00:04:20 +08:00
* 作 者: 沈睿
* 创建时间: 2009-2-28
* 描 述: 楼层范围
* 归属项目: 公共
* 修改记录: 2010-1-18,宋戈修改,并从PipeWire工程移植到tch_kernal工程
2026-09-28 15:28:50 +08:00
=============================================================================*/
class TARCH_EXP TDbFloorRect : public TDbEntity
{
DECLARE_TENTBASE();
ACRX_DECLARE_MEMBERS(TDbFloorRect);
private:
static const Adesk::UInt8 g_nVersion;
public:
TDbFloorRect();
protected:
2026-10-04 00:04:20 +08:00
XPoint m_ptBase; // 楼层基点
XPoint m_ptCenter; // 中心点
double m_dLength; // 长
double m_dWidth; // 宽
double m_dFloorHeight; // 楼层高度
double m_nSpare; // 备用,sg modify 100118,改用做文字字高
XString m_sFloorName; // 楼层名词
Adesk::UInt8 m_nFloorFrom; // 楼层起始层
Adesk::UInt8 m_nFloorTo; // 楼层终止层
BOOL m_bShow; // 是否显示
XString m_sSpare; // 备用,sg modify 100202,改用做工程名称
2026-09-28 15:28:50 +08:00
public:
BOOL IsShow() const {
return m_bShow;
}
void SetShow(BOOL bFlag = TRUE) {
assertWriteEnabled();
m_bShow = bFlag;
}
const TCHAR* GetFloorName() const {
return (const TCHAR*)m_sFloorName;
}
void SetFloorName(const TCHAR *szFloorName) {
assertWriteEnabled();
m_sFloorName = szFloorName;
}
int GetFloorTo() const {
return m_nFloorTo;
}
void SetFloorTo(const Adesk::UInt8 nNum) {
assertWriteEnabled();
m_nFloorTo = nNum;
}
int GetFloorFrom() const {
return m_nFloorFrom;
}
void SetFloorFrom(const Adesk::UInt8 nNum) {
assertWriteEnabled();
m_nFloorFrom = nNum;
}
double GetFloorHeight() const {
return m_dFloorHeight;
}
void SetFloorHeight(double dFloorHeight) {
assertWriteEnabled();
m_dFloorHeight = dFloorHeight;
}
double GetWidth() const {
return m_dWidth;
}
void SetWidth(double dWidth) {
assertWriteEnabled();
m_dWidth = dWidth;
}
double GetLength() const {
return m_dLength;
}
void SetLength(double dLength) {
assertWriteEnabled();
m_dLength = dLength;
}
const TCHAR* GetSpare() const {
return (const TCHAR*)m_sSpare;
}
void SetSpare(const TCHAR *szSpare) {
assertWriteEnabled();
m_sSpare = szSpare;
}
XPoint GetBase() const {
return m_ptBase;
}
void SetBase(const XPoint &pt) {
assertWriteEnabled();
m_ptBase = pt;
}
XPoint GetCenter() const {
return m_ptCenter;
}
void SetCenter(const XPoint &pt) {
assertWriteEnabled();
m_ptCenter = pt;
}
2026-10-04 00:04:20 +08:00
// sg add 100118,增加8.5新需求需要的动态数据
// 文字位置
2026-09-28 15:28:50 +08:00
XPoint GetTextPt(bool bAsPaperUnit = true) const;
void SetTextPt(const XPoint &pt, bool bAsPaperUnit = true);
2026-10-04 00:04:20 +08:00
// 文字字高,修改备用数据m_nSpare
2026-09-28 15:28:50 +08:00
double GetTextHeight(bool bAsPaperUnit = true) const;
void SetTextHeight(double dHeight, bool bAsPaperUnit = true);
2026-10-04 00:04:20 +08:00
// 文字样式
2026-09-28 15:28:50 +08:00
AcDbObjectId GetTextStyleId() const;
void SetTextStyleId(AcDbObjectId id);
2026-10-04 00:04:20 +08:00
// 基点显示样式,1为X,2为点
2026-09-28 15:28:50 +08:00
int GetBaseType() const;
void SetBaseType(int nType);
2026-10-04 00:04:20 +08:00
// X型中,叉线的长度,固定值,与出图比例无关
2026-09-28 15:28:50 +08:00
double GetCrossLen() const;
void SetCrossLen(double dCrossLen);
2026-10-04 00:04:20 +08:00
// sg add 100119,增加文字颜色的动态数据
2026-09-28 15:28:50 +08:00
Adesk::UInt16 GetTextColor() const;
void SetTextColor(Adesk::UInt16 color);
2026-10-04 00:04:20 +08:00
// sg add 100401,增加对象对应楼层表中的行号的动态数据
2026-09-28 15:28:50 +08:00
short GetTableIndex() const;
void SetTableIndex(short nIndex);
2026-10-04 00:04:20 +08:00
// sg add 120106,为结构专业的楼层框对象使用,显示不同的样式
2026-09-28 15:28:50 +08:00
void SetStruFloorRect(BOOL bStru = FALSE);
BOOL IsStruFloorRect() const;
2026-10-04 00:04:20 +08:00
// 导出参数
2026-09-28 15:28:50 +08:00
XPoint GetLowLeft() const;
XPoint GetLowRight() const;
XPoint GetUpRight() const;
XPoint GetUpLeft() const;
void GetPolyline(AcDbPolyline &pline) const;
public: // Override TDbEntity
// virtual Acad::ErrorStatus GetGripText(int idx, CString &cs) const;
2026-10-04 00:04:20 +08:00
// sg add 100119,增加夹点说明
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus GetGripText(int idx, CString &cs) const;
virtual void CopyPropertiesFrom(AcDbEntity *pSrc, unsigned gMatchFlag);
virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const;
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &dc) const;
2026-10-04 00:04:20 +08:00
virtual void GetTips(DList<TObjInfoUnit> &) const; // 取动态属性显示数据
2026-09-28 15:28:50 +08:00
virtual int GetFirstVersion() const {
return 8;
}
public: // Override AcDbEntity
Acad::ErrorStatus subGetOsnapPoints(AcDb::OsnapMode osnapMode,
INT_PTR gsSelectionMark,
const AcGePoint3d& ptPick,
const AcGePoint3d& lastPoint,
const AcGeMatrix3d& viewXform,
AcGePoint3dArray& snapPoints,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapModes,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
const AcGeVector3d& offset);
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,
const AcGeVector3d& offset);
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
2026-10-04 00:04:20 +08:00
// sg delete 100211,增加了数据库反映器,可处理楼层号重复的问题,因此可支持deepclone
2026-09-28 15:28:50 +08:00
/*
virtual Acad::ErrorStatus subDeepClone(AcDbObject* pOwner,
AcDbObject*& pClonedObject,
AcDbIdMapping& idMap,
Adesk::Boolean isPrimary) const;
*/
2026-10-04 00:04:20 +08:00
// sg add 100121,不支持在位编辑
2026-09-28 15:28:50 +08:00
virtual TSubText* HitTestText(XPoint pt)const;
private:
2026-10-04 00:04:20 +08:00
// sg add 100119,根据左下角点、以及文字位置点相对坐标,计算文字位置实际坐标
2026-09-28 15:28:50 +08:00
XPoint CalTextPt() const;
};
#endif // !defined(AFX_DBFLOORRECT_H__E28722E1_CA4E_4411_8513_E56D227DEBCF__INCLUDED_)