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 |