//-----------------------------------------------------------------------------+ // 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