#include <mesh.h>
Inherits Primitive.
Inheritance diagram for Mesh:
Public Member Functions | |
Mesh () | |
Creates a mesh primitive. | |
Mesh (const std::string &filename, Material *m=0) | |
Loads a mesh from the specified file. | |
virtual | ~Mesh () |
Destroys the mesh. | |
void | load (const std::string &filename) |
Loads a mesh from the specified file. | |
void | setMaterial (Material *m) |
Sets the material of the primitive to the material pointed to by m, or if m is 0, the material is set to the default material (diffuse gray). | |
Material * | getMaterial () const |
Returns a pointer to the primitive's material. | |
void | setTransform (Matrix &M) |
Manually set the local transform matrix to M. | |
void | setTranslation (const Vector &T) |
Sets the translation of the node to T. | |
void | setTranslation (float tx, float ty, float tz) |
Sets the translation of the node to (tx,ty,tz). | |
void | setScale (float s) |
Sets the scale uniformly to s. | |
void | setScale (const Vector &S) |
Sets the scale non-uniformly to S. | |
void | setScale (float sx, float sy, float sz) |
Sets the scale non-uniformly to (sx,sy,sz). | |
void | setRotation (const Vector &R) |
Sets the rotation about the x,y,z axes to the components of R. | |
void | setRotation (float rx, float ry, float rz) |
Sets the rotation about the x,y,z axes to (rx,ry,rz) respectively. | |
Protected Types | |
typedef std::list< Node * >::iterator | t_itr |
typedef std::list< Node * >::const_iterator | t_constitr |
Protected Member Functions | |
void | prepare () |
Prepares the mesh for rendering by transforming all vertex positions/normals to world space. | |
void | clear () |
Clears all data associated with the mesh. | |
void | loadOBJ (const std::string &filename) |
Loads a mesh file in the OBJ format. | |
void | getGeometry (std::vector< Intersectable * > &geometry) |
Extract all intersectable geometry from the mesh, i.e. | |
void | addChild (Node *child) |
Adds a node to the list of children. | |
bool | hasChild (const Node *child) const |
Returns true if a specific node is a child of this node. | |
void | setupTransform (const Matrix &world) |
Setup the local and world transform of the node. | |
Protected Attributes | |
std::vector< Point > | mVtxP |
Array of vertex positions. | |
std::vector< Vector > | mVtxN |
Array of vertex normals. | |
std::vector< UV > | mVtxUV |
Array of vertex UV coordinates. | |
std::vector< Triangle > | mFaces |
Array of triangles. | |
bool | mReady |
True if prepare() has been called. | |
Material * | mMaterial |
Ptr to the material used by the primitive. | |
Vector | mT |
Translation. | |
Vector | mS |
Scale. | |
Vector | mR |
Rotation. | |
bool | mTransformSet |
True if the local transform has been setup. | |
Matrix | mLocalTransform |
Local transform, created from the T,S,R parameters. | |
Matrix | mWorldTransform |
Object->World transform (local + inherited transform). | |
std::list< Node * > | mChildren |
List of children attached to the Node. | |
Classes | |
struct | vertex |
Internal class representing the vertex indices. More... |
The mesh can be loaded from an WaveFront .obj file.