ODEMesh.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014 Open Source Robotics Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16*/
17
18#ifndef GAZEBO_PHYSICS_ODE_ODEMESH_HH_
19#define GAZEBO_PHYSICS_ODE_ODEMESH_HH_
20
21#include <ignition/math/Vector3.hh>
22
26#include "gazebo/util/system.hh"
27
28namespace gazebo
29{
30 namespace physics
31 {
34
36 class GZ_PHYSICS_VISIBLE ODEMesh
37 {
39 public: explicit ODEMesh();
40
42 public: virtual ~ODEMesh();
43
48 public: void Init(const common::SubMesh *_subMesh,
49 ODECollisionPtr _collision,
50 const ignition::math::Vector3d &_scale);
51
56 public: void Init(const common::Mesh *_mesh,
57 ODECollisionPtr _collision,
58 const ignition::math::Vector3d &_scale);
59
61 public: virtual void Update();
62
67 private: void CreateMesh(unsigned int _numVertices,
68 unsigned int _numIndices, ODECollisionPtr _collision,
69 const ignition::math::Vector3d &_scale);
70
72 private: dReal transform[16*2];
73
75 private: int transformIndex;
76
78 private: float *vertices;
79
81 private: int *indices;
82
84 private: dTriMeshDataID odeData;
85
87 private: dGeomID collisionId;
88 };
90 }
91}
92#endif
ODE wrapper forward declarations and typedefs.
A 3D mesh.
Definition Mesh.hh:43
A child mesh.
Definition Mesh.hh:215
Triangle mesh helper class.
Definition ODEMesh.hh:37
virtual ~ODEMesh()
Destructor.
void Init(const common::SubMesh *_subMesh, ODECollisionPtr _collision, const ignition::math::Vector3d &_scale)
Create a mesh collision shape using a submesh.
void Init(const common::Mesh *_mesh, ODECollisionPtr _collision, const ignition::math::Vector3d &_scale)
Create a mesh collision shape using a mesh.
virtual void Update()
Update the collision mesh.
boost::shared_ptr< ODECollision > ODECollisionPtr
Definition ODETypes.hh:39
Forward declarations for the common classes.
Definition Animation.hh:27