//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, SH Software Co. Ltd. // = FileName : XArcWallUnit.h // = Version : ver2.0 // = Author : zjq // = CreateDate : 2002-09-09 // = Description: 类的声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _XArcWallUnit_H_ #define _XArcWallUnit_H_ #ifndef _DLIST_H_ #include "DList.h" #endif #ifndef _XPOLY2D_H_ #include "XPoly2D.h" #endif #ifndef _X3DFACE_H_ #include "X3DFace.h" #endif #ifndef _XPOLYGONEX_H_ #include "XPolygonEx.h" #endif class GEOAPI XArcWallUnit { public: XArcWallUnit(); XArcWallUnit(double rad, double wBeg, double hBeg, double hEnd); virtual ~XArcWallUnit(); void Tessellate(double xBeg, double nStep, int num, DList &lstFaces, DList &lstSectFaces); void Tessellate(DList &lstSectFaces, double nHeight, BOOL bHasTop, BOOL bHasBot,BOOL bHasLeft, BOOL bHasRight); public: DList lstHoles; double xWallBeg; double xHoleBeg; double xHoleEnd; double nRadius; private: int AsTriangleFaces(const XPolygonEx &polyOut, const DList &lstHoles, DList &lstFaces); int AsTriangleFaces(const XPoly2D &polyOut, const DList &lstHoles, DList &lstFaces); void Tessellate(DList &lstSectFaces, double xBeg, double nStep, int nDivNum, double nHeight, BOOL bHasTop, BOOL bHasBot, BOOL bHasLeft, BOOL bHasRight); void SortVertex(X3DFace *pFace); }; #endif