Public Member Functions | Public Attributes | Static Public Attributes
shapes::Mesh Class Reference

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>

Inheritance diagram for shapes::Mesh:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual Shapeclone () const
 Create a copy of this shape.
void computeTriangleNormals ()
 The normals to each triangle can be computed from the vertices using cross products. This function performs this computation and allocates memory for normals if needed.
void computeVertexNormals ()
 The normals to each vertex, averaged from the triangle normals. computeTriangleNormals() is automatically called if needed.
void mergeVertices (double threshold)
 Merge vertices that are very close to each other, up to a threshold.
 Mesh ()
 Mesh (unsigned int v_count, unsigned int t_count)
virtual void print (std::ostream &out=std::cout) const
 Print information about this shape.
virtual void scaleAndPadd (double scale, double padd)
 Scale and padd this shape.
virtual ~Mesh ()

Public Attributes

unsigned int triangle_count
 The number of triangles formed with the vertices.
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()
unsigned int * triangles
 The vertex indices for each triangle triangle k has vertices at index (3k, 3k+1, 3k+2) = (v1, v2, v3)
unsigned int vertex_count
 The number of available vertices.
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()
double * vertices
 The position for each vertex vertex k has values at index (3k, 3k+1, 3k+2) = (x,y,z)

Static Public Attributes

static const std::string STRING_NAME = "mesh"
 The type of the shape, as a string.

Detailed Description

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.

Definition at line 181 of file shapes.h.


Constructor & Destructor Documentation

Definition at line 111 of file shapes.cpp.

shapes::Mesh::Mesh ( unsigned int  v_count,
unsigned int  t_count 
)

Definition at line 122 of file shapes.cpp.

shapes::Mesh::~Mesh ( ) [virtual]

Definition at line 133 of file shapes.cpp.


Member Function Documentation

shapes::Shape * shapes::Mesh::clone ( ) const [virtual]

Create a copy of this shape.

Implements shapes::Shape.

Definition at line 187 of file shapes.cpp.

The normals to each triangle can be computed from the vertices using cross products. This function performs this computation and allocates memory for normals if needed.

Definition at line 381 of file shapes.cpp.

The normals to each vertex, averaged from the triangle normals. computeTriangleNormals() is automatically called if needed.

Definition at line 404 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 445 of file shapes.cpp.

void shapes::Mesh::print ( std::ostream &  out = std::cout) const [virtual]

Print information about this shape.

Reimplemented from shapes::Shape.

Definition at line 341 of file shapes.cpp.

void shapes::Mesh::scaleAndPadd ( double  scale,
double  padd 
) [virtual]

Scale and padd this shape.

Implements shapes::Shape.

Definition at line 270 of file shapes.cpp.


Member Data Documentation

const std::string shapes::Mesh::STRING_NAME = "mesh" [static]

The type of the shape, as a string.

Definition at line 190 of file shapes.h.

The number of triangles formed with the vertices.

Definition at line 213 of file shapes.h.

The normal to each triangle; unit vector represented as (x,y,z); If missing from the mesh, these vectors can be computed using computeTriangleNormals()

Definition at line 221 of file shapes.h.

unsigned int* shapes::Mesh::triangles

The vertex indices for each triangle triangle k has vertices at index (3k, 3k+1, 3k+2) = (v1, v2, v3)

Definition at line 217 of file shapes.h.

The number of available vertices.

Definition at line 206 of file shapes.h.

The normal to each vertex; unit vector represented as (x,y,z); If missing from the mesh, these vectors can be computed using computeVertexNormals()

Definition at line 225 of file shapes.h.

The position for each vertex vertex k has values at index (3k, 3k+1, 3k+2) = (x,y,z)

Definition at line 210 of file shapes.h.


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


geometric_shapes
Author(s): Ioan Sucan , Gil Jones
autogenerated on Thu Jun 6 2019 20:13:53