Maintains and manages all meshes. More...
#include <common/common.hh>
Inherits SingletonT< MeshManager >.
Public Member Functions | |
void | AddMesh (Mesh *_mesh) |
Add a mesh to the manager. More... | |
void | CreateBox (const std::string &_name, const ignition::math::Vector3d &_sides, const ignition::math::Vector2d &_uvCoords) |
Create a Box mesh. More... | |
void | CreateCamera (const std::string &_name, float _scale) |
Create a Camera mesh. More... | |
void | CreateCone (const std::string &_name, float _radius, float _height, int _rings, int _segments) |
Create a cone mesh. More... | |
void | CreateCylinder (const std::string &_name, float _radius, float _height, int _rings, int _segments) |
Create a cylinder mesh. More... | |
void | CreateExtrudedPolyline (const std::string &_name, const std::vector< std::vector< ignition::math::Vector2d > > &_vertices, double _height) |
Create an extruded mesh from polylines. More... | |
void | CreatePlane (const std::string &_name, const ignition::math::Planed &_plane, const ignition::math::Vector2d &_segments, const ignition::math::Vector2d &_uvTile) |
Create mesh for a plane. More... | |
void | CreatePlane (const std::string &_name, const ignition::math::Vector3d &_normal, const double _d, const ignition::math::Vector2d &_size, const ignition::math::Vector2d &_segments, const ignition::math::Vector2d &_uvTile) |
Create mesh for a plane. More... | |
void | CreateSphere (const std::string &_name, float _radius, int _rings, int _segments) |
Create a sphere mesh. More... | |
void | CreateTube (const std::string &_name, float _innerRadius, float _outterRadius, float _height, int _rings, int _segments, double _arc=2.0 *M_PI) |
Create a tube mesh. More... | |
void | Export (const Mesh *_mesh, const std::string &_filename, const std::string &_extension, bool _exportTextures=false) |
Export a mesh to a file. More... | |
void | GenSphericalTexCoord (const Mesh *_mesh, const ignition::math::Vector3d &_center) |
generate spherical texture coordinates More... | |
const Mesh * | GetMesh (const std::string &_name) const |
Get a mesh by name. More... | |
void | GetMeshAABB (const Mesh *_mesh, ignition::math::Vector3d &_center, ignition::math::Vector3d &_min_xyz, ignition::math::Vector3d &_max_xyz) |
Get mesh aabb and center. More... | |
bool | HasMesh (const std::string &_name) const |
Return true if the mesh exists. More... | |
bool | IsValidFilename (const std::string &_filename) |
Checks a path extension against the list of valid extensions. More... | |
const Mesh * | Load (const std::string &_filename) |
Load a mesh from a file. More... | |
Static Public Member Functions | |
static MeshManager * | Instance () |
Get an instance of the singleton. More... | |
Maintains and manages all meshes.
void AddMesh | ( | Mesh * | _mesh | ) |
Add a mesh to the manager.
This MeshManager takes ownership of the mesh and will destroy it. See ~MeshManager.
[in] | the | mesh to add. |
void CreateBox | ( | const std::string & | _name, |
const ignition::math::Vector3d & | _sides, | ||
const ignition::math::Vector2d & | _uvCoords | ||
) |
Create a Box mesh.
[in] | _name | the name of the new mesh |
[in] | _sides | the x y x dimentions of eah side in meter |
[in] | _uvCoords | the texture coordinates |
void CreateCamera | ( | const std::string & | _name, |
float | _scale | ||
) |
Create a Camera mesh.
[in] | _name | name of the new mesh |
[in] | _scale | scaling factor for the camera |
void CreateCone | ( | const std::string & | _name, |
float | _radius, | ||
float | _height, | ||
int | _rings, | ||
int | _segments | ||
) |
Create a cone mesh.
[in] | _name | the name of the new mesh |
[in] | _radius | the radius of the cylinder in the x y plane |
[in] | _height | the height along z |
[in] | _rings | the number of circles along the height |
[in] | _segments | the number of segment per circle |
void CreateCylinder | ( | const std::string & | _name, |
float | _radius, | ||
float | _height, | ||
int | _rings, | ||
int | _segments | ||
) |
Create a cylinder mesh.
[in] | _name | the name of the new mesh |
[in] | _radius | the radius of the cylinder in the x y plane |
[in] | _height | the height along z |
[in] | _rings | the number of circles along the height |
[in] | _segments | the number of segment per circle |
void CreateExtrudedPolyline | ( | const std::string & | _name, |
const std::vector< std::vector< ignition::math::Vector2d > > & | _vertices, | ||
double | _height | ||
) |
Create an extruded mesh from polylines.
The polylines are assumed to be closed and non-intersecting. Delaunay triangulation is applied to create the resulting mesh. If there is more than one polyline, a ray casting algorithm will be used to identify the exterior/interior edges and remove holes from the 2D shape before extrusion.
[in] | _name | the name of the new mesh |
[in] | _vertices | A multidimensional vector of polylines and their vertices. Each element in the outer vector consists of a vector of vertices that describe one polyline. edges and remove the holes in the shape. |
[in] | _height | the height of extrusion |
void CreatePlane | ( | const std::string & | _name, |
const ignition::math::Planed & | _plane, | ||
const ignition::math::Vector2d & | _segments, | ||
const ignition::math::Vector2d & | _uvTile | ||
) |
Create mesh for a plane.
[in] | _name | |
[in] | _plane | plane parameters |
[in] | _segments | number of segments in x and y |
[in] | _uvTile | the texture tile size in x and y |
void CreatePlane | ( | const std::string & | _name, |
const ignition::math::Vector3d & | _normal, | ||
const double | _d, | ||
const ignition::math::Vector2d & | _size, | ||
const ignition::math::Vector2d & | _segments, | ||
const ignition::math::Vector2d & | _uvTile | ||
) |
Create mesh for a plane.
[in] | _name | the name of the new mesh |
[in] | _normal | the normal to the plane |
[in] | _d | distance from the origin along normal |
[in] | _size | the size of the plane in x and y |
[in] | _segments | the number of segments in x and y |
[in] | _uvTile | the texture tile size in x and y |
void CreateSphere | ( | const std::string & | _name, |
float | _radius, | ||
int | _rings, | ||
int | _segments | ||
) |
Create a sphere mesh.
[in] | _name | the name of the mesh |
[in] | _radius | radius of the sphere in meter |
[in] | _rings | number of circles on th y axis |
[in] | _segments | number of segment per circle |
void CreateTube | ( | const std::string & | _name, |
float | _innerRadius, | ||
float | _outterRadius, | ||
float | _height, | ||
int | _rings, | ||
int | _segments, | ||
double | _arc = 2.0 *M_PI |
||
) |
Create a tube mesh.
Generates rings inside and outside the cylinder Needs at least two rings and 3 segments
[in] | _name | the name of the new mesh |
[in] | _innerRadius | the inner radius of the tube in the x y plane |
[in] | _outterRadius | the outer radius of the tube in the x y plane |
[in] | _height | the height along z |
[in] | _rings | the number of circles along the height |
[in] | _segments | the number of segment per circle |
[in] | _arc | the arc angle in radians |
void Export | ( | const Mesh * | _mesh, |
const std::string & | _filename, | ||
const std::string & | _extension, | ||
bool | _exportTextures = false |
||
) |
Export a mesh to a file.
[in] | _mesh | Pointer to the mesh to be exported |
[in] | _filename | Exported file's path and name |
[in] | _extension | Exported file's format ("dae" for Collada) |
[in] | _exportTextures | True to export texture images to '../materials/textures' folder |
void GenSphericalTexCoord | ( | const Mesh * | _mesh, |
const ignition::math::Vector3d & | _center | ||
) |
generate spherical texture coordinates
[in] | _mesh | Pointer to the mesh |
[in] | _center | Center of the mesh |
const Mesh* GetMesh | ( | const std::string & | _name | ) | const |
Get a mesh by name.
[in] | _name | the name of the mesh to look for |
void GetMeshAABB | ( | const Mesh * | _mesh, |
ignition::math::Vector3d & | _center, | ||
ignition::math::Vector3d & | _min_xyz, | ||
ignition::math::Vector3d & | _max_xyz | ||
) |
Get mesh aabb and center.
[in] | _mesh | the mesh |
[out] | _center | the AAB center position |
[out] | _min_xyz | the bounding box minimum |
[out] | _max_xyz | the bounding box maximum |
bool HasMesh | ( | const std::string & | _name | ) | const |
Return true if the mesh exists.
[in] | _name | the name of the mesh |
|
inlinestaticinherited |
Get an instance of the singleton.
bool IsValidFilename | ( | const std::string & | _filename | ) |
Checks a path extension against the list of valid extensions.
const Mesh* Load | ( | const std::string & | _filename | ) |
Load a mesh from a file.
[in] | _filename | the path to the mesh |