40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
|
|
#ifndef ODEWORLD_H
|
|
#define ODEWORLD_H
|
|
|
|
#include <ode/ode.h>
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
class OdeWorld
|
|
{
|
|
public:
|
|
OdeWorld();
|
|
~OdeWorld();
|
|
void setGravity(float x, float y, float z)
|
|
{
|
|
dWorldSetGravity(m_world, x, y, z);
|
|
}
|
|
void worldStep();
|
|
std::vector<dGeomID> loadPhy(const std::string & path,
|
|
bool static_data = false);
|
|
dGeomID addCube(const std::string & name, bool static_data,
|
|
dBodyID * body, const std::vector<float> args);
|
|
dGeomID addSphere(const std::string & name, bool static_data,
|
|
dBodyID * body, const std::vector<float> args);
|
|
dGeomID addCylinder(const std::string & name, bool static_data,
|
|
dBodyID * body, const std::vector<float> args);
|
|
dGeomID addPlane(const std::string & name, bool static_data,
|
|
dBodyID * body, const std::vector<float> args);
|
|
|
|
friend void OdeWorld_collide_callback(void * data,
|
|
dGeomID o1, dGeomID o2);
|
|
|
|
protected:
|
|
dWorldID m_world;
|
|
dSpaceID m_space;
|
|
dJointGroupID m_contactJointGroup;
|
|
};
|
|
|
|
#endif
|