60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// 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<TGGe3DFace> &lstFaces, TDPtrList<TGGe3DFace> &lstSectFaces);
|
|
void Tessellate(TDPtrList<TGGe3DFace> &lstSectFaces, double nHeight, BOOL bHasTop, BOOL bHasBot,BOOL bHasLeft, BOOL bHasRight);
|
|
|
|
public:
|
|
|
|
TDPtrList<TGGePoly2D> lstHoles;
|
|
|
|
double xWallBeg;
|
|
double xHoleBeg;
|
|
double xHoleEnd;
|
|
double nRadius;
|
|
|
|
private:
|
|
int AsTriangleFaces(const TGGePolygonEx &polyOut, const TDPtrList<TGGePoly2D> &lstHoles, TDPtrList<TGGe3DFace> &lstFaces);
|
|
int AsTriangleFaces(const TGGePoly2D &polyOut, const TDPtrList<TGGePoly2D> &lstHoles, TDPtrList<TGGe3DFace> &lstFaces);
|
|
void Tessellate(TDPtrList<TGGe3DFace> &lstSectFaces, double xBeg, double nStep, int nDivNum, double nHeight, BOOL bHasTop, BOOL bHasBot, BOOL bHasLeft, BOOL bHasRight);
|
|
|
|
void SortVertex(TGGe3DFace *pFace);
|
|
};
|
|
|
|
#endif |