Definition of a triangle mesh By convention the "center" of the shape is at the origin. For a mesh this implies that the AABB of the mesh is centered at the origin. Some methods may not work with arbitrary meshes whose AABB is not centered at the origin. More...
#include <shapes.h>
Public Member Functions  
Mesh *  clone () const override 
Create a copy of this shape. More...  
void  computeTriangleNormals () 
Compute the normals of each triangle from its vertices via cross product. More...  
void  computeVertexNormals () 
Compute vertex normals by averaging from adjacent triangle normals. More...  
void  mergeVertices (double threshold) 
Merge vertices that are very close to each other, up to a threshold. More...  
Mesh ()  
Mesh (unsigned int v_count, unsigned int t_count)  
void  print (std::ostream &out=std::cout) const override 
Print information about this shape. More...  
void  scaleAndPadd (double scale, double padd) override 
Scale and padd this shape. More...  
virtual  ~Mesh () 
Public Member Functions inherited from shapes::Shape  
virtual bool  isFixed () const 
Return a flag indicating whether this shape can be scaled and/or padded. More...  
void  padd (double padding) 
Add padding to this shape. More...  
void  scale (double scale) 
Scale this shape by a factor. More...  
Shape ()  
virtual  ~Shape () 
Public Attributes  
unsigned int  triangle_count 
The number of triangles formed with the vertices. More...  
double *  triangle_normals 
The normal to each triangle; unit vector represented as (x,y,z); If missing from the mesh, these vectors can be computed using computeTriangleNormals() More...  
unsigned int *  triangles 
The vertex indices for each triangle triangle k has vertices at index (3k, 3k+1, 3k+2) = (v1, v2, v3) More...  
unsigned int  vertex_count 
The number of available vertices. More...  
double *  vertex_normals 
The normal to each vertex; unit vector represented as (x,y,z); If missing from the mesh, these vectors can be computed using computeVertexNormals() More...  
double *  vertices 
The position for each vertex vertex k has values at index (3k, 3k+1, 3k+2) = (x,y,z) More...  
Public Attributes inherited from shapes::Shape  
ShapeType  type 
The type of the shape. More...  
Static Public Attributes  
static const std::string  STRING_NAME = "mesh" 
The type of the shape, as a string. More...  
Definition of a triangle mesh By convention the "center" of the shape is at the origin. For a mesh this implies that the AABB of the mesh is centered at the origin. Some methods may not work with arbitrary meshes whose AABB is not centered at the origin.
shapes::Mesh::Mesh  (  ) 
Definition at line 148 of file shapes.cpp.
shapes::Mesh::Mesh  (  unsigned int  v_count, 
unsigned int  t_count  
) 
Definition at line 159 of file shapes.cpp.

virtual 
Definition at line 170 of file shapes.cpp.

overridevirtual 
void shapes::Mesh::computeTriangleNormals  (  ) 
Compute the normals of each triangle from its vertices via cross product.
Definition at line 421 of file shapes.cpp.
void shapes::Mesh::computeVertexNormals  (  ) 
Compute vertex normals by averaging from adjacent triangle normals.
Calls computeTriangleNormals() if needed.
Definition at line 444 of file shapes.cpp.
void shapes::Mesh::mergeVertices  (  double  threshold  ) 
Merge vertices that are very close to each other, up to a threshold.
Definition at line 485 of file shapes.cpp.

overridevirtual 
Print information about this shape.
Reimplemented from shapes::Shape.
Definition at line 381 of file shapes.cpp.

overridevirtual 

static 
unsigned int shapes::Mesh::triangle_count 
double* shapes::Mesh::triangle_normals 
The normal to each triangle; unit vector represented as (x,y,z); If missing from the mesh, these vectors can be computed using computeTriangleNormals()
unsigned int* shapes::Mesh::triangles 
unsigned int shapes::Mesh::vertex_count 
double* shapes::Mesh::vertex_normals 
The normal to each vertex; unit vector represented as (x,y,z); If missing from the mesh, these vectors can be computed using computeVertexNormals()
double* shapes::Mesh::vertices 