[ODE] nearcallback pointer help
Christopher Harvey
arbuckle911 at gmail.com
Sun Nov 5 15:48:04 MST 2006
Hello,
I've created a Physics class, here is the .h file.
---------------------------------------------------------------------------------------------------------------
/*
This class holds all the data for all the objects that have to be synchronized
on each client.
It also handles the simulation calculations.
*/
#ifndef PHYSICS_MANAGER
#define PHYSICS_MANAGER
#include "Globals.h"
#define MAX_CONTACTS 100 //Really not sure at all what this should be
//TODO: test to see if we can find out how many it is actually using.
//#include <windows.h>
#include <GL/gl.h>
#include <ode/ode.h>
#include <vector>
#include "timer.h"
using namespace std;
class PhysicsManager
{
public:
PhysicsManager();
~PhysicsManager();
void SetState(const char *fileName);
void SaveState(const char *fileName);
dBodyID AddBox(float *sides, float density, float *position);
bool RemoveBody(dBodyID id);
void PhysicsStep(double dt);
void RenderGeoms();
private:
void ODEtoOGL(float * M, const float *p, const float *R);
void DrawBox(const float sides[3], const float R[12]);
unsigned int getFreeID();
vector<dBodyID> physicsBodies;
dWorldID World;
dSpaceID Space;
dJointGroupID contactgroup;
// void nearCallback (void *data, dGeomID o1, dGeomID o2);
};
#endif
----------------------------------------------------------------------------------
Here is my question:
I want to pass the nearcallback function into the dSpaceCollide();
However, I can't cast it into a pointer because it's not a static member. If I
make it a static member it can't access the World and Space variables,
because they are not static either.
I don't mind changing the whole implementation, if there is a known way to
encapsulate ode in a class. Any ideas?
Thanks in advance.
More information about the ODE
mailing list