66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// 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<TAecSpaceWall>
|
|
{
|
|
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<TAecSpaceCell> *g_pAllSpaces;
|
|
int m_nIndex; // 房间号
|
|
};
|
|
|
|
#endif |