25 #include <tbb/spin_mutex.h>
26 #include <tbb/concurrent_vector.h>
32 #include <boost/thread/thread.hpp>
41 #include "gazebo_config.h"
72 public:
virtual void Init();
87 public:
virtual void Fini();
100 const std::string &_shapeType,
LinkPtr _parent);
126 public:
virtual void SetStepType(
const std::string &_type);
173 private:
static void CollisionCallback(
void *data,
174 dGeomID o1, dGeomID o2);
178 dContactGeom *contactCollisions);
182 msgs::Contact *_msg);
194 private:
void AddTrimeshCollider(
ODECollision *_collision1,
202 private: dWorldID worldId;
205 private: dSpaceID spaceId;
208 private: dJointGroupID contactGroup;
212 private:
double stepTimeDouble;
213 private: std::string stepType;
215 private: std::vector<ContactFeedback*> contactFeedbacks;
216 private:
unsigned int contactFeedbackIndex;
218 private: std::map<std::string, dSpaceID> spaces;
220 private: std::vector< std::pair<ODECollision*, ODECollision*> > colliders;
221 private: std::vector< std::pair<ODECollision*, ODECollision*> >
224 private:
unsigned int collidersCount, trimeshCollidersCount;
226 private: tbb::spin_mutex collideMutex;
229 private: int (*physicsStepFunc)(dxWorld*, dReal);