Files
envi-code/SourceCode/Code2026/tg_shs/inc/TArch/TColumnData.h
T
2026-09-28 15:28:50 +08:00

113 lines
2.8 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : TColumnData.h
// = Version : ver2.0
// = Author : xlc
// = CreateDate : 2002-09-09
// = Description: 柱子数据类的声明
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#ifndef _TCOLUMNDATA_H_
#define _TCOLUMNDATA_H_
#ifndef _TADSGEPOINT3D_H_
#include "TADSGePoint3d.h"
#endif
#ifndef _TGGECURVESEGMENT_H_
#include "TGGeCurveSegment.h"
#endif
#ifndef _TGGEPOLY2D_H_
#include "TGGePoly2D.h"
#endif
#define COLMATE_NoDefine _T("其它")
#define COLMATE_Brick _T("砖")
#define COLMATE_Brick1 _T("耐火砖")
#define COLMATE_Rocket _T("石材")
#define COLMATE_Rocket1 _T("毛石")
#define COLMATE_Concrete _T("钢筋砼")
#define COLMATE_Concrete1 _T("混凝土")
#define COLMATE_Steel _T("金属")
class TARCH_EXP TColumnData
{
public:
TColumnData();
TColumnData(const TColumnData &src);
TColumnData & operator = (const TColumnData &src);
enum TSectionShape { // 柱子截面形状
kPoly = 0, //任意
kRect = 1, //矩形
kCircle = 2, //圆形
kStd8 = 3, //八角形
kStd6 = 4,
kStd3 = 5,
kStd5 = 6,
kStd12 = 7,
kIBeam = 8, //工字形
kStd4 = 9,
kStd7 = 10,
kStd9 = 11,
kStd10 = 12,
kStd11 =13,
};
enum TColumnMaterial {
kBrick = 40,
kRocket = 50,
kConcrete = 60,
kSteel = 70,
};
Acad::ErrorStatus GetPickSegment(const TADSGePoint3d &ptPick, TGGeCurveSegment &res) const;
static int CompareByLocForFind(const TColumnData *, const void *p /* TADSGePoint3d pointer */);
// 访问属性的方法
TADSGePoint3d GetParameters() const;
//第一边的转角
double GetRotation() const;
double GetHeight() const;
double GetElevation() const;
TADSGePoint3d GetLocation() const;
//截面积
double GetSectionArea() const;
double GetVolume() const;
// 形状
TColumnData::TSectionShape GetSectionShape() const;
void GetOutline(TGGePoly2D &poly) const;
const TGGePoly2D& GetOutlinePoly() const;
TColumnData::TColumnMaterial GetMaterial() const;
//add by xlc on 101110 柱子形状字符串
CString GetSectionShape(TColumnData::TSectionShape nUsage) const;
CString GetMaterial(TColumnData::TColumnMaterial mater) const;//材料字符串
// Set Methods
void SetHeight(double nH);
void SetElevation(double nZ);
void SetLocation(const TADSGePoint3d &pt);
void SetSectionShape(TColumnData::TSectionShape nUsage);
const TCHAR *GetSectionShapeText() const;
void SetOutlinePoly(const TGGePoly2D &poly);
void SetMaterial(TColumnData::TColumnMaterial mater) ;
BOOL Has3D() const;
public:
TADSGePoint3d m_ptLocation; //图块插入点
double m_nHeight; //柱子高度
TSectionShape m_nSectionShape;//形状特征
TColumnMaterial m_material; //材料
// New member
TGGePoly2D m_polyOutline;
};
#endif