GClasses

GClasses::GRayTraceTriMesh Class Reference

Represents a triangle mesh in a ray-tracing scene. More...

#include <GRayTrace.h>

List of all members.

Public Member Functions

 GRayTraceTriMesh (GRayTraceMaterial *pMaterial, size_t nPoints, size_t nTriangles, size_t nNormals, size_t nTextureCoords)
 GRayTraceTriMesh (GDomNode *pNode, GRayTraceScene *pScene)
 ~GRayTraceTriMesh ()
GDomNodeserialize (GDom *pDoc, GRayTraceScene *pScene)
G3DReal rayDistanceToTriangle (size_t nTriangle, G3DVector *pRayOrigin, G3DVector *pRayDirection)
void normalVector (GRayTraceRay *pRay, size_t nIndex)
bool isCulled ()
void activateCulling ()
void setPoint (size_t nIndex, const G3DVector *pPoint)
void setTriangle (size_t nIndex, size_t v1, size_t v2, size_t v3)
void setNormal (size_t nIndex, G3DVector *pNormal)
void setTextureCoord (size_t nIndex, G3DReal x, G3DReal y)
void center (G3DVector *pOutPoint, size_t nIndex)
size_t triangleCount ()
void triangle (size_t index, size_t *v1, size_t *v2, size_t *v3)
GRayTraceMaterialmaterial ()
void adjustBoundingBox (size_t nIndex, G3DVector *pMin, G3DVector *pMax)
G3DVectorvertex (size_t nIndex, size_t nVertex)
void computePhongNormals ()
 Automatically compute phong normals at the vertices to make the object appear smooth.

Static Public Member Functions

static GRayTraceTriMeshmakeCylinder (GRayTraceMaterial *pMaterial, G3DVector *pCenter1, G3DVector *pCenter2, G3DReal radius, size_t nSides, bool bEndCaps)
static GRayTraceTriMeshmakeQuadSurface (GRayTraceMaterial *pMaterial, G3DVector *p1, G3DVector *p2, G3DVector *p3, G3DVector *p4)
 The vertices must go around the surface. Don't cut across corners.
static GRayTraceTriMeshmakeSingleTriangle (GRayTraceMaterial *pMaterial, G3DVector *p1, G3DVector *p2, G3DVector *p3)

Protected Member Functions

bool isPointWithinPlanarPolygon (G3DVector *pPoint, G3DVector **ppVertices, size_t nVertices)

Protected Attributes

GRayTraceMaterialm_pMaterial
size_t m_nPoints
G3DVectorm_pPoints
size_t m_nTriangles
size_t * m_pTriangles
G3DVectorm_pNormals
G3DRealm_pTextureCoords
bool m_bCulling

Detailed Description

Represents a triangle mesh in a ray-tracing scene.


Constructor & Destructor Documentation

GClasses::GRayTraceTriMesh::GRayTraceTriMesh ( GRayTraceMaterial pMaterial,
size_t  nPoints,
size_t  nTriangles,
size_t  nNormals,
size_t  nTextureCoords 
)
GClasses::GRayTraceTriMesh::GRayTraceTriMesh ( GDomNode pNode,
GRayTraceScene pScene 
)
GClasses::GRayTraceTriMesh::~GRayTraceTriMesh ( )

Member Function Documentation

void GClasses::GRayTraceTriMesh::activateCulling ( ) [inline]
void GClasses::GRayTraceTriMesh::adjustBoundingBox ( size_t  nIndex,
G3DVector pMin,
G3DVector pMax 
)
void GClasses::GRayTraceTriMesh::center ( G3DVector pOutPoint,
size_t  nIndex 
)
void GClasses::GRayTraceTriMesh::computePhongNormals ( )

Automatically compute phong normals at the vertices to make the object appear smooth.

bool GClasses::GRayTraceTriMesh::isCulled ( ) [inline]
bool GClasses::GRayTraceTriMesh::isPointWithinPlanarPolygon ( G3DVector pPoint,
G3DVector **  ppVertices,
size_t  nVertices 
) [protected]
static GRayTraceTriMesh* GClasses::GRayTraceTriMesh::makeCylinder ( GRayTraceMaterial pMaterial,
G3DVector pCenter1,
G3DVector pCenter2,
G3DReal  radius,
size_t  nSides,
bool  bEndCaps 
) [static]
static GRayTraceTriMesh* GClasses::GRayTraceTriMesh::makeQuadSurface ( GRayTraceMaterial pMaterial,
G3DVector p1,
G3DVector p2,
G3DVector p3,
G3DVector p4 
) [static]

The vertices must go around the surface. Don't cut across corners.

static GRayTraceTriMesh* GClasses::GRayTraceTriMesh::makeSingleTriangle ( GRayTraceMaterial pMaterial,
G3DVector p1,
G3DVector p2,
G3DVector p3 
) [static]
GRayTraceMaterial* GClasses::GRayTraceTriMesh::material ( ) [inline]
void GClasses::GRayTraceTriMesh::normalVector ( GRayTraceRay *  pRay,
size_t  nIndex 
)
G3DReal GClasses::GRayTraceTriMesh::rayDistanceToTriangle ( size_t  nTriangle,
G3DVector pRayOrigin,
G3DVector pRayDirection 
)
GDomNode* GClasses::GRayTraceTriMesh::serialize ( GDom pDoc,
GRayTraceScene pScene 
)
void GClasses::GRayTraceTriMesh::setNormal ( size_t  nIndex,
G3DVector pNormal 
)
void GClasses::GRayTraceTriMesh::setPoint ( size_t  nIndex,
const G3DVector pPoint 
)
void GClasses::GRayTraceTriMesh::setTextureCoord ( size_t  nIndex,
G3DReal  x,
G3DReal  y 
)
void GClasses::GRayTraceTriMesh::setTriangle ( size_t  nIndex,
size_t  v1,
size_t  v2,
size_t  v3 
)
void GClasses::GRayTraceTriMesh::triangle ( size_t  index,
size_t *  v1,
size_t *  v2,
size_t *  v3 
)
size_t GClasses::GRayTraceTriMesh::triangleCount ( ) [inline]
G3DVector* GClasses::GRayTraceTriMesh::vertex ( size_t  nIndex,
size_t  nVertex 
)

Member Data Documentation