//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TArcWallUnit.h // = Version : ver2.0 // = Author : xlc // = CreateDate : 2002-09-09 // = Description: ÀàµÄÉùÃ÷ // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TARCWALLUNIT_H_ #define _TARCWALLUNIT_H_ #ifndef _TDPTRLIST_H_ #include "TDPtrList.h" #endif #ifndef _TGGEPOLY2D_H_ #include "TGGePoly2D.h" #endif #ifndef _TGGE3DFACE_H_ #include "TGGe3DFace.h" #endif #ifndef _TGGEPOLYGONEX_H_ #include "TGGePolygonEx.h" #endif class GEOAPI TArcWallUnit { public: TArcWallUnit(); TArcWallUnit(double rad, double wBeg, double hBeg, double hEnd); virtual ~TArcWallUnit(); void Tessellate(double xBeg, double nStep, int num, TDPtrList &lstFaces, TDPtrList &lstSectFaces); void Tessellate(TDPtrList &lstSectFaces, double nHeight, BOOL bHasTop, BOOL bHasBot,BOOL bHasLeft, BOOL bHasRight); public: TDPtrList lstHoles; double xWallBeg; double xHoleBeg; double xHoleEnd; double nRadius; private: int AsTriangleFaces(const TGGePolygonEx &polyOut, const TDPtrList &lstHoles, TDPtrList &lstFaces); int AsTriangleFaces(const TGGePoly2D &polyOut, const TDPtrList &lstHoles, TDPtrList &lstFaces); void Tessellate(TDPtrList &lstSectFaces, double xBeg, double nStep, int nDivNum, double nHeight, BOOL bHasTop, BOOL bHasBot, BOOL bHasLeft, BOOL bHasRight); void SortVertex(TGGe3DFace *pFace); }; #endif