RioEngine  0.1
My first attempt to create a 3D WYSIWYG Game Engine
bdebugdraw.cpp
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 #include <QtOpenGL>
31 #include "macro.h"
32 #include "constants.h"
33 #include "bdebugdraw.h"
34 
35 //-----------------------------------------------------------------------------
36 
37 bDebugDraw::bDebugDraw(QGLShaderProgram* shader_program) {
38  m_shaderProgram = shader_program;
39  m_drawMode = k_bdebugdraw_DefaultDebugMode;
40 }
41 
42 //-----------------------------------------------------------------------------
43 
44 std::map<QString, std::vector<bDebugDraw::LineInfo>>* bDebugDraw::lines() {
45  return &m_lines;
46 }
47 
48 //-----------------------------------------------------------------------------
49 
51  m_lines.clear();
52 }
53 
54 //-----------------------------------------------------------------------------
55 
56 void bDebugDraw::drawLine(const btVector3 &from, const btVector3 &to, const btVector3 &color) {
58  line.from = from;
59  line.to = to;
60  QString color_name = QColor(color.getX() * 255, color.getY() * 255, color.getZ() * 255).name();
61 
62  if(m_lines.count(color_name) > 0) {
63  std::vector<LineInfo>* lines = &m_lines.find(color_name)->second;
64  lines->push_back(line);
65  } else {
66  std::vector<LineInfo> lines;
67  lines.push_back(line);
68  m_lines.insert(std::pair<QString, std::vector<LineInfo>>(color_name, lines));
69  }
70 }
71 
72 //-----------------------------------------------------------------------------
73 
74 void bDebugDraw::drawContactPoint(const btVector3 &PointOnB, const btVector3 &normalOnB,
75  btScalar distance, int lifeTime, const btVector3 &color) {
76  // TODO
77 }
78 
79 //-----------------------------------------------------------------------------
80 
81 void bDebugDraw::reportErrorWarning(const char *warningString) {
82  LOG(warningString);
83 }
84 
85 //-----------------------------------------------------------------------------
86 
87 void bDebugDraw::draw3dText(const btVector3 &location, const char *textString) {
88  // TODO
89 }
90 
91 //-----------------------------------------------------------------------------
92 
93 void bDebugDraw::setDebugMode(int debug_mode) {
94  m_drawMode = debug_mode;
95 }
96 
97 //-----------------------------------------------------------------------------
98 
100  return m_drawMode;
101 }
#define LOG
Definition: macro.h:43
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