#ifndef PHYSICSDEBUGNODE_H
#define PHYSICSDEBUGNODE_H

#include "meshnode.h"
#include <SparrowRenderer/mesh.h>
#include <LinearMath/btIDebugDraw.h>

class PhysicsDebugNode : public MeshNode, public btIDebugDraw
{
    int m_debugMode;

public:
    PhysicsDebugNode();
    ~PhysicsDebugNode();

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

    virtual void flushLines();

    virtual void drawContactPoint(const btVector3& PointOnB,const btVector3& normalOnB,btScalar distance,int lifeTime,const btVector3& color) {} // not supported yet

    virtual void reportErrorWarning(const char* warningString) {} // not supported yet

    virtual void draw3dText(const btVector3& location, const char* textString) {} // not supported yet

    // currently useless
    virtual void setDebugMode(int debugMode) { m_debugMode = debugMode; }
    virtual int	getDebugMode() const { return m_debugMode; }

    unsigned int getFlags() { m_geometry.mesh->getFlags(); }

    void clearBuffers();
};

#endif // PHYSICSDEBUGNODE_H
