Commit: 2b0a6aa5bce9ee23c98444d7b95d7d119aafe780
Author: Martin Felke
Date:   Wed Feb 3 19:37:54 2016 +0100
Branches: fracture_modifier
https://developer.blender.org/rB2b0a6aa5bce9ee23c98444d7b95d7d119aafe780

improved output of constraint impulse visualization a bit, included name, 
impulse and threshold as well as attempted to offset strings at same position

===================================================================

M       intern/rigidbody/rb_bullet_api.cpp

===================================================================

diff --git a/intern/rigidbody/rb_bullet_api.cpp 
b/intern/rigidbody/rb_bullet_api.cpp
index e6138c2..265ec4f 100644
--- a/intern/rigidbody/rb_bullet_api.cpp
+++ b/intern/rigidbody/rb_bullet_api.cpp
@@ -80,7 +80,6 @@ subject to the following restrictions:
 
 #include "../../extern/glew/include/GL/glew.h"
 
-
 typedef struct rbConstraint
 {
        btTypedConstraint *con;
@@ -186,7 +185,7 @@ class TickDiscreteDynamicsWorld : public 
btFractureDynamicsWorld
                rbTickCallback m_tickCallback;
                void* m_bworld;
                void* m_bscene;
-               virtual void debugDrawConstraints(rbConstraint *con, 
draw_string str_callback);
+               virtual void debugDrawConstraints(rbConstraint *con, 
draw_string str_callback, float loc[]);
                virtual void debugDrawWorld(draw_string str_callback);
 };
 
@@ -283,11 +282,27 @@ void 
TickDiscreteDynamicsWorld::debugDrawWorld(draw_string str_callback)
        }
        if(drawConstraints)
        {
+               btVector3 lastVec(0,0,0);
+               btVector3 drawVec(0,0,0);
+               btVector3 offset(0, 0, 0.1);
                for(int i = getNumConstraints()-1; i>=0 ;i--)
                {
+                       float loc[3];
                        btTypedConstraint* constraint = getConstraint(i);
                        rbConstraint *con = 
(rbConstraint*)constraint->getUserConstraintPtr();
-                       debugDrawConstraints(con, str_callback);
+
+                       if (lastVec == con->pivot.getOrigin())
+                       {
+                               drawVec += offset;
+                       }
+                       else
+                       {
+                               drawVec = con->pivot.getOrigin();
+                       }
+                       copy_v3_btvec3(loc, drawVec);
+                       debugDrawConstraints(con, str_callback, loc);
+                       lastVec = con->pivot.getOrigin();
+
                }
        }
 
@@ -307,15 +322,15 @@ void 
TickDiscreteDynamicsWorld::debugDrawWorld(draw_string str_callback)
        }
 }
 
-const char* val_to_str(float value, int precision, int *length)
+const char* val_to_str(rbConstraint* con, int precision, int *length)
 {
        std::ostringstream oss;
-       oss << std::fixed << std::setprecision(precision) << value;
+       oss << std::fixed << std::setprecision(precision) << con->id << ":" << 
con->con->getAppliedImpulse() << ":" << con->con->getBreakingImpulseThreshold();
        *length = oss.str().length();
        return oss.str().c_str();
 }
 
-void TickDiscreteDynamicsWorld::debugDrawConstraints(rbConstraint* con , 
draw_string str_callback)
+void TickDiscreteDynamicsWorld::debugDrawConstraints(rbConstraint* con , 
draw_string str_callback, float loc[3])
 {
        btTypedConstraint *constraint = con->con;
        bool drawFrames = (getDebugDrawer()->getDebugMode() & 
btIDebugDraw::DBG_DrawConstraints) != 0;
@@ -329,12 +344,11 @@ void 
TickDiscreteDynamicsWorld::debugDrawConstraints(rbConstraint* con , draw_st
        btScalar imp = constraint->getAppliedImpulse();
        btScalar thr = constraint->getBreakingImpulseThreshold();
        float ratio = fabs(imp) / thr;
-       int len = strlen(con->id);
-       //const char *str = val_to_str(imp, p, &len);
-       const char *str = con->id;
-       float loc[3];
-
-       copy_v3_btvec3(loc, con->pivot.getOrigin());
+       int len = 0; // strlen(con->id);
+       const char *str = val_to_str(con, p, &len);
+       //const char *str = con->id;
+       //float loc[3];
+       //copy_v3_btvec3(loc, con->pivot.getOrigin());
 
        if (ratio <= 0.5f)
        {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to