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

109 lines
3.1 KiB
C++

#ifndef __BAYWINDOW_H
#define __BAYWINDOW_H
class TARCH_EXP XBayWindow
{
public:
enum XBayWinStyle
{
BWS_UNKNOWN=0,
BWS_TRAPEZIA=1, //梯形
BWS_TRIANGLE=2, //三角形
BWS_ARC=3, //拱形
BWS_RECT=4, //矩形
};
XBayWinStyle m_nStyle;
double m_nProtrude; //突出宽
double m_nTrapezia;
// wlw add 100721保温线回退的长度
mutable double m_dInsback;
// sg add 120518,增加变量用于控制凸窗2侧窗台板延伸长度
double m_dBayThick;
public:
XBayWindow(XBayWinStyle nStyle, double nProtrude, double nTrapezia)
:m_nStyle(nStyle), m_nProtrude(nProtrude), m_nTrapezia(nTrapezia)
{
// sg add 120518,凸窗2侧窗台板延伸长度默认为120
m_dBayThick = 120;
}
// sg modify 110123,根据8.5需求,凸窗的默认样式,改为矩形凸窗
// XBayWindow(): m_nStyle(BWS_TRAPEZIA), m_nProtrude(600.0), m_nTrapezia(900.0), m_dInsback(120.0)
XBayWindow(): m_nStyle(BWS_RECT), m_nProtrude(600.0), m_nTrapezia(900.0), m_dInsback(120.0)
{
// sg add 120518,凸窗2侧窗台板延伸长度默认为120
m_dBayThick = 120;
}
XBayWindow(const XBayWindow &src)
{
*this = src;
}
XBayWindow & operator= (const XBayWindow &src)
{
m_nStyle=src.m_nStyle;
m_nProtrude = src.m_nProtrude;
m_nTrapezia = src.m_nTrapezia;
m_dInsback = src.m_dInsback;
// sg add 120518,增加变量用于控制凸窗2侧窗台板延伸长度
m_dBayThick = src.m_dBayThick;
return *this;
}
public:
// sg modify 120518,由于XBayWindow类不是对象,也无法有版本号,直接接收TDbOpening类的版本号,进行对象读写格式的控制
// Acad::ErrorStatus dwgInFields (AcDbDwgFiler* pFiler)
Acad::ErrorStatus dwgInFields (AcDbDwgFiler* pFiler, int nVersion)
{
Adesk::UInt8 nStyle;
pFiler->readItem(&nStyle);
m_nStyle = (XBayWinStyle)nStyle;
pFiler->readItem(&m_nProtrude);
pFiler->readItem(&m_nTrapezia);
double nTemp;
pFiler->readItem(&nTemp);
// sg add 120518,增加变量用于控制凸窗2侧窗台板延伸长度
if (nVersion > 4) // 门窗在9.0中,对应的版本号为5
{
pFiler->readItem(&m_dBayThick);
}
return pFiler->filerStatus();
}
Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const
{
pFiler->writeItem((Adesk::UInt8)m_nStyle);
pFiler->writeItem(m_nProtrude);
pFiler->writeItem(m_nTrapezia);
pFiler->writeItem(0.0);
// sg add 120518,增加变量用于控制凸窗2侧窗台板延伸长度
if (g_nSaveTArchVer > 8)
{
pFiler->writeItem(m_dBayThick);
}
return pFiler->filerStatus();
}
public:
//Acad::ErrorStatus GetPolyCurve(XPoint ptLoc, double nExtdir, double nWidth, double nWallThick, BOOL bLeftSlab, BOOL bRightSlab,
// DList<XPoly2D> &polyCurves, double dWallInsut = 0.0, double dInsutAdd = 0.0) const;
Acad::ErrorStatus GetPolyCurve(XPoint ptLoc, double nExtdir, double nWidth, double nWallThick, BOOL bLeftSlab, BOOL bRightSlab,
DList<XPoly2D> &polyCurves, double dWallInsut = 0.0, double dInsutAdd = 0.0, BOOL bAllInsut = FALSE) const;
Acad::ErrorStatus GetVertSlabPoly(XPoint ptLoc, double nExtdir, double nWidth, double nWallThick,
double nSlabThick, XPoly2D &polyLeft, XPoly2D&polyRight)const;
};
#endif