//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TAecSpaceCell 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TAecSpaceCell 声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TAECSPACECELL_H_ #define _TAECSPACECELL_H_ #ifndef _TAECSPACEWALL_H_ #include "TAecSpaceWall.h" #endif #ifndef _TDPTRSTACK_H_ #include "TDPtrStack.h" #endif #ifndef _TGGEPOLY2D_H_ #include "TGGePoly2D.h" #endif #ifndef _TADSGEPOINT3D_H_ #include "TADSGePoint3d.h" #endif class TARCH_EXP TAecSpaceCell : public TDPtrStack { public: TAecSpaceCell(); ~TAecSpaceCell(); int ShowMe(); ads_real PathArea(); // sg add 091106,解决离坐标原点较远时,积分出错的情况 ads_real PathArea(TADSGePoint3d ptStart); int GeomCenterPoly2D(TGGePoly2D &poly); int CenterPoly2D(TGGePoly2D &poly); // 沿房间内壁(对于室外则沿外壁) // nCtrlFlag==0不考虑柱子,1--考虑柱子用减法(室内), 2--考虑柱子用加法(室外) // sg modify 091117,增加是否处理墙体造型的设置,只在nCtrlFlag大于0时有效,只要为解决散水不需要绕墙体造型的问题 // nDealWallPatch==0不考虑墙体造型,1--考虑墙体造型与柱子使用相同的室内、室外方法 // 2--考虑墙体造型,固定室外;3--考虑墙体造型,固定室内 // int InternalPoly2D(TGGePoly2D &poly, int nCtrlFlag); // int InternalPoly2D(TGGePoly2D &poly, int nCtrlFlag, BOOL bDealWallPatch = TRUE); int InternalPoly2D(TGGePoly2D &poly, int nCtrlFlag, int nDealWallPatch = 1); // 求房间中心线的界限 int GetExtend(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp); void Redraw(int nMode = 1); public: // 全局房间号 static int g_nGlobalIndex; //全局所有房间的链表 static TDPtrList *g_pAllSpaces; int m_nIndex; // 房间号 }; #endif