17 #ifndef _MESHMANAGER_HH_
18 #define _MESHMANAGER_HH_
23 #include <boost/thread/mutex.hpp>
37 class ColladaExporter;
61 public:
const Mesh *Load(
const std::string &_filename);
69 public:
void Export(
const Mesh *_mesh,
const std::string &_filename,
70 const std::string &_extension,
bool _exportTextures =
false);
74 public:
bool IsValidFilename(
const std::string &_filename);
81 public:
void GetMeshAABB(
const Mesh *_mesh,
87 public:
void GenSphericalTexCoord(
const Mesh *_mesh,
96 public:
void AddMesh(
Mesh *_mesh);
101 public:
const Mesh *GetMesh(
const std::string &_name)
const;
105 public:
bool HasMesh(
const std::string &_name)
const;
112 public:
void CreateSphere(
const std::string &_name,
float _radius,
113 int _rings,
int _segments);
119 public:
void CreateBox(
const std::string &_name,
128 public:
void CreateExtrudedPolyline(
const std::string &_name,
129 const std::vector<math::Vector2d> &_vertices,
130 const double &_height,
139 public:
void CreateCylinder(
const std::string &_name,
151 public:
void CreateCone(
const std::string &_name,
167 public:
void CreateTube(
const std::string &_name,
179 public:
void CreatePlane(
const std::string &_name,
191 public:
void CreatePlane(
const std::string &_name,
205 private:
void Tesselate2DMesh(
SubMesh *_sm,
213 public:
void CreateCamera(
const std::string &_name,
float _scale);
216 public:
void CreateBoolean(
const std::string &_name,
const Mesh *_m1,
223 const Mesh *_m2,
const int _operation,
237 private: std::map<std::string, Mesh*> meshes;
240 private: std::vector<std::string> fileExtensions;
242 private: boost::mutex mutex;
A 3D mesh.
Definition: Mesh.hh:40
Encapsulates a position and rotation in three space.
Definition: Pose.hh:40
Generic double x, y vector.
Definition: Vector2d.hh:39
The Vector3 class represents the generic vector containing 3 elements.
Definition: Vector3.hh:43
Singleton template class.
Definition: SingletonT.hh:33
A child mesh.
Definition: Mesh.hh:209
A plane and related functions.
Definition: Plane.hh:33
Class used to load Collada mesh files.
Definition: ColladaLoader.hh:43
Maintains and manages all meshes.
Definition: MeshManager.hh:48
Class used to export Collada mesh files.
Definition: ColladaExporter.hh:43
static const Pose Zero
math::Pose(0, 0, 0, 0, 0, 0)
Definition: Pose.hh:43
#define GAZEBO_VISIBLE
Use to represent "symbol visible" if supported.
Definition: system.hh:48
Class used to load STL mesh files.
Definition: STLLoader.hh:40