SubMesh Class Reference

A child mesh. More...

#include <Mesh.hh>

Public Types

enum  PrimitiveType {
  POINTS, LINES, LINESTRIPS, TRIANGLES,
  TRIFANS, TRISTRIPS
}
 An enumeration of the geometric mesh primitives. More...
 

Public Member Functions

 SubMesh ()
 Constructor. More...
 
 SubMesh (const SubMesh *_mesh)
 Copy Constructor. More...
 
virtual ~SubMesh ()
 Destructor. More...
 
void AddIndex (unsigned int _i)
 Add an index to the mesh. More...
 
void AddNodeAssignment (unsigned int _vertex, unsigned int _node, float _weight)
 Add a vertex - skeleton node assignment. More...
 
void AddNormal (const ignition::math::Vector3d &_n)
 Add a normal to the mesh. More...
 
void AddNormal (double _x, double _y, double _z)
 Add a normal to the mesh. More...
 
void AddTexCoord (double _u, double _v)
 Add a texture coord to the mesh. More...
 
void AddVertex (const ignition::math::Vector3d &_v)
 Add a vertex to the mesh. More...
 
void AddVertex (double _x, double _y, double _z)
 Add a vertex to the mesh. More...
 
void Center (const ignition::math::Vector3d &_center=ignition::math::Vector3d::Zero)
 Move the center of the submesh to the given coordinate. More...
 
void CopyNormals (const std::vector< ignition::math::Vector3d > &_norms)
 Copy normals from a vector. More...
 
void CopyVertices (const std::vector< ignition::math::Vector3d > &_verts)
 Copy vertices from a vector. More...
 
void FillArrays (float **_vertArr, int **_indArr) const
 Put all the data into flat arrays. More...
 
void GenSphericalTexCoord (const ignition::math::Vector3d &_center)
 Generate texture coordinates using spherical projection from center. More...
 
unsigned int GetIndex (unsigned int _i) const
 Get an index. More...
 
unsigned int GetIndexCount () const
 Return the number of indicies. More...
 
unsigned int GetMaterialIndex () const
 Get the material index. More...
 
unsigned int GetMaxIndex () const
 Get the highest index value. More...
 
std::string GetName () const
 Get the name of this mesh. More...
 
NodeAssignment GetNodeAssignment (unsigned int _i) const
 Get a vertex - skeleton node assignment. More...
 
unsigned int GetNodeAssignmentsCount () const
 Return the number of vertex - skeleton node assignments. More...
 
unsigned int GetNormalCount () const
 Return the number of normals. More...
 
PrimitiveType GetPrimitiveType () const
 Get the primitive type. More...
 
unsigned int GetTexCoordCount () const
 Return the number of texture coordinates. More...
 
unsigned int GetVertexCount () const
 Return the number of vertices. More...
 
unsigned int GetVertexIndex (const ignition::math::Vector3d &_v) const
 Get the index of the vertex. More...
 
bool HasVertex (const ignition::math::Vector3d &_v) const
 Return true if this submesh has the vertex. More...
 
ignition::math::Vector3d Max () const
 Get the maximum X, Y, Z values from all the vertices. More...
 
ignition::math::Vector3d Min () const
 Get the minimum X, Y, Z values from all the vertices. More...
 
ignition::math::Vector3d Normal (unsigned int _i) const
 Get a normal. More...
 
void RecalculateNormals ()
 Recalculate all the normals. More...
 
void Scale (double _factor)
 Scale all vertices by _factor. More...
 
void SetIndexCount (unsigned int _count)
 Resize the index array. More...
 
void SetMaterialIndex (unsigned int _index)
 Set the material index. More...
 
void SetName (const std::string &_n)
 Set the name of this mesh. More...
 
void SetNormal (unsigned int _i, const ignition::math::Vector3d &_n)
 Set a normal. More...
 
void SetNormalCount (unsigned int _count)
 Resize the normal array. More...
 
void SetPrimitiveType (PrimitiveType _type)
 Set the primitive type. More...
 
void SetScale (const ignition::math::Vector3d &_factor)
 Scale all vertices by the _factor vector. More...
 
void SetTexCoord (unsigned int _i, const ignition::math::Vector2d &_t)
 Set a tex coord. More...
 
void SetTexCoordCount (unsigned int _count)
 Resize the texture coordinate array. More...
 
void SetVertex (unsigned int _i, const ignition::math::Vector3d &_v)
 Set a vertex. More...
 
void SetVertexCount (unsigned int _count)
 Resize the vertex array. More...
 
ignition::math::Vector2d TexCoord (unsigned int _i) const
 Get a tex coord. More...
 
void Translate (const ignition::math::Vector3d &_vec)
 Move all vertices by _vec. More...
 
ignition::math::Vector3d Vertex (unsigned int _i) const
 Get a vertex. More...
 

Detailed Description

A child mesh.

Member Enumeration Documentation

◆ PrimitiveType

An enumeration of the geometric mesh primitives.

Enumerator
POINTS 
LINES 
LINESTRIPS 
TRIANGLES 
TRIFANS 
TRISTRIPS 

Constructor & Destructor Documentation

◆ SubMesh() [1/2]

SubMesh ( )

Constructor.

◆ SubMesh() [2/2]

SubMesh ( const SubMesh _mesh)

Copy Constructor.

◆ ~SubMesh()

virtual ~SubMesh ( )
virtual

Destructor.

Member Function Documentation

◆ AddIndex()

void AddIndex ( unsigned int  _i)

Add an index to the mesh.

Parameters
[in]_ithe new vertex index

◆ AddNodeAssignment()

void AddNodeAssignment ( unsigned int  _vertex,
unsigned int  _node,
float  _weight 
)

Add a vertex - skeleton node assignment.

Parameters
[in]_vertexthe vertex index
[in]_nodethe node index
[in]_weightthe weight (between 0 and 1)

◆ AddNormal() [1/2]

void AddNormal ( const ignition::math::Vector3d &  _n)

Add a normal to the mesh.

Parameters
[in]_nthe normal

◆ AddNormal() [2/2]

void AddNormal ( double  _x,
double  _y,
double  _z 
)

Add a normal to the mesh.

Parameters
[in]_xposition along x
[in]_yposition along y
[in]_zposition along z

◆ AddTexCoord()

void AddTexCoord ( double  _u,
double  _v 
)

Add a texture coord to the mesh.

Parameters
[in]_uposition along u
[in]_vposition along v

◆ AddVertex() [1/2]

void AddVertex ( const ignition::math::Vector3d &  _v)

Add a vertex to the mesh.

Parameters
[in]_vthe new position

◆ AddVertex() [2/2]

void AddVertex ( double  _x,
double  _y,
double  _z 
)

Add a vertex to the mesh.

Parameters
[in]_xposition along x
[in]_yposition along y
[in]_zposition along z

◆ Center()

void Center ( const ignition::math::Vector3d &  _center = ignition::math::Vector3d::Zero)

Move the center of the submesh to the given coordinate.

This will move all the vertices.

Parameters
[in]_centerLocation of the mesh center.

◆ CopyNormals()

void CopyNormals ( const std::vector< ignition::math::Vector3d > &  _norms)

Copy normals from a vector.

Parameters
[in]_normsto copy from

◆ CopyVertices()

void CopyVertices ( const std::vector< ignition::math::Vector3d > &  _verts)

Copy vertices from a vector.

Parameters
[in]_vertsthe vertices to copy from

◆ FillArrays()

void FillArrays ( float **  _vertArr,
int **  _indArr 
) const

Put all the data into flat arrays.

Parameters
[in]_verArr
[in]_indArr

◆ GenSphericalTexCoord()

void GenSphericalTexCoord ( const ignition::math::Vector3d &  _center)

Generate texture coordinates using spherical projection from center.

Parameters
[in]_center

◆ GetIndex()

unsigned int GetIndex ( unsigned int  _i) const

Get an index.

Parameters
[in]_i

◆ GetIndexCount()

unsigned int GetIndexCount ( ) const

Return the number of indicies.

◆ GetMaterialIndex()

unsigned int GetMaterialIndex ( ) const

Get the material index.

◆ GetMaxIndex()

unsigned int GetMaxIndex ( ) const

Get the highest index value.

◆ GetName()

std::string GetName ( ) const

Get the name of this mesh.

Returns
the name

◆ GetNodeAssignment()

NodeAssignment GetNodeAssignment ( unsigned int  _i) const

Get a vertex - skeleton node assignment.

Parameters
[in]_ithe index of the assignment

◆ GetNodeAssignmentsCount()

unsigned int GetNodeAssignmentsCount ( ) const

Return the number of vertex - skeleton node assignments.

◆ GetNormalCount()

unsigned int GetNormalCount ( ) const

Return the number of normals.

◆ GetPrimitiveType()

PrimitiveType GetPrimitiveType ( ) const

Get the primitive type.

Returns
the primitive type

◆ GetTexCoordCount()

unsigned int GetTexCoordCount ( ) const

Return the number of texture coordinates.

◆ GetVertexCount()

unsigned int GetVertexCount ( ) const

Return the number of vertices.

◆ GetVertexIndex()

unsigned int GetVertexIndex ( const ignition::math::Vector3d &  _v) const

Get the index of the vertex.

Parameters
[in]_vVertex to check
Returns
Index of the vertex that matches _v.

◆ HasVertex()

bool HasVertex ( const ignition::math::Vector3d &  _v) const

Return true if this submesh has the vertex.

Parameters
[in]_v
Returns
Return true if this submesh has the vertex

◆ Max()

ignition::math::Vector3d Max ( ) const

Get the maximum X, Y, Z values from all the vertices.

Returns
Max X,Y,Z values from all vertices in submesh

◆ Min()

ignition::math::Vector3d Min ( ) const

Get the minimum X, Y, Z values from all the vertices.

Returns
Min X,Y,Z values from all vertices in submesh

◆ Normal()

ignition::math::Vector3d Normal ( unsigned int  _i) const

Get a normal.

Parameters
[in]_ithe normal index
Returns
the orientation of the normal, or throws an exception

◆ RecalculateNormals()

void RecalculateNormals ( )

Recalculate all the normals.

◆ Scale()

void Scale ( double  _factor)

Scale all vertices by _factor.

Parameters
[in]_factorScaling factor

◆ SetIndexCount()

void SetIndexCount ( unsigned int  _count)

Resize the index array.

Parameters
[in]_countthe new size of the array

◆ SetMaterialIndex()

void SetMaterialIndex ( unsigned int  _index)

Set the material index.

Relates to the parent mesh material list

Parameters
[in]_index

◆ SetName()

void SetName ( const std::string &  _n)

Set the name of this mesh.

Parameters
[in]_nthe name to set

◆ SetNormal()

void SetNormal ( unsigned int  _i,
const ignition::math::Vector3d &  _n 
)

Set a normal.

Parameters
[in]_ithe normal index
[in]_nthe normal direction

◆ SetNormalCount()

void SetNormalCount ( unsigned int  _count)

Resize the normal array.

Parameters
[in]_countthe new size of the array

◆ SetPrimitiveType()

void SetPrimitiveType ( PrimitiveType  _type)

Set the primitive type.

Parameters
[in]_typethe type

◆ SetScale()

void SetScale ( const ignition::math::Vector3d &  _factor)

Scale all vertices by the _factor vector.

Parameters
[in]_factorScaling vector

◆ SetTexCoord()

void SetTexCoord ( unsigned int  _i,
const ignition::math::Vector2d &  _t 
)

Set a tex coord.

Parameters
[in]_i
[in]_t

◆ SetTexCoordCount()

void SetTexCoordCount ( unsigned int  _count)

Resize the texture coordinate array.

Parameters
[in]_count

◆ SetVertex()

void SetVertex ( unsigned int  _i,
const ignition::math::Vector3d &  _v 
)

Set a vertex.

Parameters
[in]_ithe index
[in]_vthe position

◆ SetVertexCount()

void SetVertexCount ( unsigned int  _count)

Resize the vertex array.

Parameters
[in]_countthe new size of the array

◆ TexCoord()

ignition::math::Vector2d TexCoord ( unsigned int  _i) const

Get a tex coord.

Parameters
[in]_ithe texture index
Returns
the texture coordinates

◆ Translate()

void Translate ( const ignition::math::Vector3d &  _vec)

Move all vertices by _vec.

Parameters
[in]_vecAmount to translate vertices.

◆ Vertex()

ignition::math::Vector3d Vertex ( unsigned int  _i) const

Get a vertex.

Parameters
[in]_ithe vertex index
Returns
the position or throws an exception

The documentation for this class was generated from the following file: