/* render/debugdrawer.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_RENDER_DEBUGDRAWER_H__ #define __INCLUDED_RENDER_DEBUGDRAWER_H__ #include "LinearMath/btIDebugDraw.h" namespace render { /** * @brief implementation for the bullet debug draw interface * This class implements the bullet btIDebugDraw interface to * render the world as seen by the bullet physics library */ class DebugDrawer: public btIDebugDraw { public: DebugDrawer(); virtual ~DebugDrawer(); virtual void drawLine(const btVector3 & from, const btVector3 & to, const btVector3 & color); virtual void drawLine(const btVector3& from, const btVector3 & to, const btVector3 & fromColor, const btVector3 & toColor); virtual void drawContactPoint(const btVector3 & point, const btVector3 & normal, btScalar distance, int lifetime, const btVector3 & color); virtual void drawSphere(btScalar radius, const btTransform & transform, const btVector3 & color); virtual void drawSphere(const btVector3 & p, btScalar radius, const btVector3 & color); virtual void drawBox(const btVector3 & bbMin, const btVector3 & bbMax, const btVector3 & color); virtual void drawBox(const btVector3 & bbMin, const btVector3 & bbMax, const btTransform & trans, 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; private: int debugdrawer_debugmode; }; extern DebugDrawer bullet_debugdrawer; } // namespace render #endif // __INCLUDED_RENDER_DEBUGDRAWER_H__