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 |