geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t > Class Template Reference

Polygonal mesh composed of triangles. More...

#include <geometry.h>

List of all members.

Public Member Functions

void calc_face_normals ()
 Recalculate per-face normals using normalized dot-products of directions of face edges.

void calc_vertex_normals ()
 Recalculate per-vertex normals using precalculated face normals with some smoothing.

void create_index_buffer_and_batches ()
 Generate index buffer, and, in the same time, list of "batches" referencing spans in that index buffer.


Public Attributes

std::vector< vertex_tvertices
 list of vertices

std::vector< face_tfaces
 list of faces

std::vector< index_t > indices
 list of indices

std::vector< batch_tbatches
 list of batches of triangles


Detailed Description

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
class geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >

Polygonal mesh composed of triangles.

Basically, the mesh is collection of following primitives:


Member Function Documentation

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
void geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >::calc_face_normals  )  [inline]
 

Recalculate per-face normals using normalized dot-products of directions of face edges.

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
void geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >::calc_vertex_normals  )  [inline]
 

Recalculate per-vertex normals using precalculated face normals with some smoothing.

Todo:
Smart smoothing (angle threshold) is not implemented yet. Without it - sharp angles between polygons (such as in cubes and diamonds) will appear "rounded".

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
void geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >::create_index_buffer_and_batches  )  [inline]
 

Generate index buffer, and, in the same time, list of "batches" referencing spans in that index buffer.

Vertices in the index buffer are sorted by material, so each such "span" is associated with single material.


Member Data Documentation

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
std::vector<vertex_t> geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >::vertices
 

list of vertices

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
std::vector<face_t> geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >::faces
 

list of faces

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
std::vector<index_t> geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >::indices
 

list of indices

template<typename vertex_userdata_t, typename face_userdata_t, typename material_t, typename index_t>
std::vector<batch_t> geometry::tri_mesh< vertex_userdata_t, face_userdata_t, material_t, index_t >::batches
 

list of batches of triangles

Each batch hold ONLY triangles having similar material


The documentation for this class was generated from the following file:
Generated on Sun May 1 17:34:30 2005 for RealityStrike Game Engine API by doxygen 1.3.6