bullet debug draw

b0gd4n
Posts: 14
Joined: Thu Nov 07, 2013 2:38 am

bullet debug draw

Post by b0gd4n »

Hey guys.

I have been fiddling around with bullet for a bit and I now want to draw debug.
I have an opengl world with working bullet physics and everything.

What I have tried is this:

#include <LinearMath\btIDebugDraw.h>
then btIDebugDraw* debugDraw;

where I initialize the bt world, I set the debug draw type like this:
debugDraw->DBG_DrawWireframe; <- this breaks when I run the app
debugDraw->setDebugMode(1); <- this doesn't

I then set the debug to the bullet world like this:
bt_dynamicsWorld->setDebugDrawer(debugDraw);

And finally, I render the debug draw after I render the bullet bodies like this:
bt_dynamicsWorld->debugDrawWorld();


There must be something that I am missing as I am not getting any wireframes or anything when running.

Thanks!
b0gd4n
Posts: 14
Joined: Thu Nov 07, 2013 2:38 am

Re: bullet debug draw

Post by b0gd4n »

Ok, I realized that I missed something really big:

I have created a class GLDebugDrawer like this:

Code: Select all

#include "LinearMath/btIDebugDraw.h"


class GLDebugDrawer : public btIDebugDraw
{
	int m_debugMode;

public:

	GLDebugDrawer();
	virtual ~GLDebugDrawer();

	virtual void	drawLine(const btVector3& from, const btVector3& to, const btVector3& fromColor, const btVector3& toColor);

	virtual void	drawLine(const btVector3& from, const btVector3& to, const btVector3& color);

	virtual void	drawSphere(const btVector3& p, btScalar radius, const btVector3& color);

	virtual void	drawTriangle(const btVector3& a, const btVector3& b, const btVector3& c, const btVector3& color, btScalar alpha);

	virtual void	drawContactPoint(const btVector3& PointOnB, const btVector3& normalOnB, btScalar distance, int lifeTime, const btVector3& color);

	virtual void	reportErrorWarning(const char* warningString);

	virtual void	draw3dText(const btVector3& location, const char* textString);

	virtual void	setDebugMode(int debugMode);

	virtual int		getDebugMode() const { return m_debugMode; }

};
Then in the game I include this header instead of the btIDebugDraw and create a instance of that.

The rest is the same, but I still don't get anything...