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