113 lines
2.8 KiB
C++
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
|