RioEngine  0.1
My first attempt to create a 3D WYSIWYG Game Engine
bdebugdraw.h
Go to the documentation of this file.
1 //--------------------------------------------------------------- @License begins
2 // RioEngine: The late night Coke -without whores- debugging sessions
3 // 2012-2015 Leopoldo Lomas Flores. Torreon, Coahuila. MEXICO
4 // leopoldolomas [at] gmail
5 // www.rioengine.com
6 // www.leopoldolomas.info
7 // "You have a problem, you face it like a man."
8 //
9 // This is free and unencumbered software released into the public domain.
10 //
11 // Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
12 // software, either in source code form or as a compiled binary, for any purpose,
13 // commercial or non-commercial, and by any means.
14 //
15 // In jurisdictions that recognize copyright laws, the author or authors of this
16 // software dedicate any and all copyright interest in the software to the public
17 // domain. We make this dedication for the benefit of the public at large and to
18 // the detriment of our heirs and successors. We intend this dedication to be
19 // an overt act of relinquishment in perpetuity of all present and future
20 // rights to this software under copyright law.
21 //
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS
24 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
26 // CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //--------------------------------------------------------------- @License ends
29 
30 #ifndef RIOENGINE_EDITOR_QGLGAMEVIEWPORT_BDEBUGDRAW_H
31 #define RIOENGINE_EDITOR_QGLGAMEVIEWPORT_BDEBUGDRAW_H
32 
33 #include <QGLShaderProgram>
34 #include "bullet/btBulletDynamicsCommon.h"
35 
36 class bDebugDraw : public btIDebugDraw {
37 public:
38  struct LineInfo {
39  btVector3 from, to;
40  };
41 
42  bDebugDraw(QGLShaderProgram* shader_program = NULL);
43  std::map<QString, std::vector<LineInfo>>* lines();
44 
45  void clearLines();
46 
47  virtual void drawLine(const btVector3 &from, const btVector3 &to, const btVector3 &color);
48  virtual void drawContactPoint(const btVector3 &PointOnB,
49  const btVector3 &normalOnB,
50  btScalar distance,
51  int lifeTime,
52  const btVector3 &color);
53  virtual void reportErrorWarning(const char *warningString);
54  virtual void draw3dText(const btVector3 &location, const char *textString);
55  virtual void setDebugMode(int debugMode);
56  virtual int getDebugMode() const;
57 
58 private:
59  int m_drawMode;
60 
61  QGLShaderProgram* m_shaderProgram;
62  std::map<QString, std::vector<LineInfo>> m_lines;
63 };
64 
65 #endif // RIOENGINE_EDITOR_QGLGAMEVIEWPORT_BDEBUGDRAW_H
std::map< QString, std::vector< LineInfo > > * lines()
Definition: bdebugdraw.cpp:44
virtual int getDebugMode() const
Definition: bdebugdraw.cpp:99
virtual void setDebugMode(int debugMode)
Definition: bdebugdraw.cpp:93
virtual void draw3dText(const btVector3 &location, const char *textString)
Definition: bdebugdraw.cpp:87
virtual void reportErrorWarning(const char *warningString)
Definition: bdebugdraw.cpp:81
void clearLines()
Definition: bdebugdraw.cpp:50
virtual void drawLine(const btVector3 &from, const btVector3 &to, const btVector3 &color)
Definition: bdebugdraw.cpp:56
bDebugDraw(QGLShaderProgram *shader_program=NULL)
Definition: bdebugdraw.cpp:37
virtual void drawContactPoint(const btVector3 &PointOnB, const btVector3 &normalOnB, btScalar distance, int lifeTime, const btVector3 &color)
Definition: bdebugdraw.cpp:74