GClasses
|
Represents a triangle mesh in a ray-tracing scene. More...
#include <GRayTrace.h>
Public Member Functions | |
GRayTraceTriMesh (GRayTraceMaterial *pMaterial, size_t nPoints, size_t nTriangles, size_t nNormals, size_t nTextureCoords) | |
GRayTraceTriMesh (GDomNode *pNode, GRayTraceScene *pScene) | |
~GRayTraceTriMesh () | |
GDomNode * | serialize (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) |
GRayTraceMaterial * | material () |
void | adjustBoundingBox (size_t nIndex, G3DVector *pMin, G3DVector *pMax) |
G3DVector * | vertex (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 GRayTraceTriMesh * | makeCylinder (GRayTraceMaterial *pMaterial, G3DVector *pCenter1, G3DVector *pCenter2, G3DReal radius, size_t nSides, bool bEndCaps) |
static GRayTraceTriMesh * | makeQuadSurface (GRayTraceMaterial *pMaterial, G3DVector *p1, G3DVector *p2, G3DVector *p3, G3DVector *p4) |
The vertices must go around the surface. Don't cut across corners. | |
static GRayTraceTriMesh * | makeSingleTriangle (GRayTraceMaterial *pMaterial, G3DVector *p1, G3DVector *p2, G3DVector *p3) |
Protected Member Functions | |
bool | isPointWithinPlanarPolygon (G3DVector *pPoint, G3DVector **ppVertices, size_t nVertices) |
Protected Attributes | |
GRayTraceMaterial * | m_pMaterial |
size_t | m_nPoints |
G3DVector * | m_pPoints |
size_t | m_nTriangles |
size_t * | m_pTriangles |
G3DVector * | m_pNormals |
G3DReal * | m_pTextureCoords |
bool | m_bCulling |
Represents a triangle mesh in a ray-tracing scene.
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 | ( | ) |
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::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 | ||
) |
bool GClasses::GRayTraceTriMesh::m_bCulling [protected] |
size_t GClasses::GRayTraceTriMesh::m_nPoints [protected] |
size_t GClasses::GRayTraceTriMesh::m_nTriangles [protected] |
GRayTraceMaterial* GClasses::GRayTraceTriMesh::m_pMaterial [protected] |
G3DVector* GClasses::GRayTraceTriMesh::m_pNormals [protected] |
G3DVector* GClasses::GRayTraceTriMesh::m_pPoints [protected] |
G3DReal* GClasses::GRayTraceTriMesh::m_pTextureCoords [protected] |
size_t* GClasses::GRayTraceTriMesh::m_pTriangles [protected] |