diff options
author | HG1 <HG1_public@gmx.net> | 2014-07-12 02:18:43 +0400 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2014-07-12 03:00:14 +0400 |
commit | 984d6c8677a365cf47cc6ad6c89c93b04877a948 (patch) | |
tree | 0433fe2f7f5646d4afddca0c769c42c6cbfca56b /source/gameengine/Physics | |
parent | 93278165937273fd0c14eb54deb1c4c25ebb1296 (diff) |
BGE debug API and actuator
This patch adds some new debug methods to the KX_GameObject for manually adding the debug list and bge.render for controlling the debug visualization.
It also adds a new debug actuator, which allows to control the same functions.
This patch is a updated version of T33701.
Thread on Blenderartists:
http://blenderartists.org/forum/showthread.php?264745-Debug-proerties-for-added-objects-patch&p=2256018&viewfull=1#post2256018
Reviewers: moguri
Reviewed By: moguri
Differential Revision: https://developer.blender.org/D635
Diffstat (limited to 'source/gameengine/Physics')
5 files changed, 17 insertions, 2 deletions
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp index 69e190c79db..f34311d70a0 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp @@ -877,6 +877,14 @@ void CcdPhysicsEnvironment::ProcessFhSprings(double curTime,float interval) } } +int CcdPhysicsEnvironment::GetDebugMode() const +{ + if (m_debugDrawer) { + return m_debugDrawer->getDebugMode(); + } + return 0; +} + void CcdPhysicsEnvironment::SetDebugMode(int debugMode) { if (m_debugDrawer) { diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h index a94e205b160..ff8a3f4f9f9 100644 --- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h +++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h @@ -139,6 +139,7 @@ protected: virtual float GetFixedTimeStep() { return 0.f; } virtual void SetDebugMode(int debugMode); + virtual int GetDebugMode()const; virtual void SetGravity(float x,float y,float z); virtual void GetGravity(MT_Vector3& grav); diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp index 1bb5431c749..979128370ee 100644 --- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp +++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp @@ -78,8 +78,10 @@ float DummyPhysicsEnvironment::GetFixedTimeStep() return 0.f; } - - +int DummyPhysicsEnvironment::GetDebugMode() const +{ + return 0; +} void DummyPhysicsEnvironment::SetGravity(float x,float y,float z) { diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h index a645af1e471..cfc8841cac2 100644 --- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h +++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h @@ -56,6 +56,8 @@ public: virtual void SetFixedTimeStep(bool useFixedTimeStep,float fixedTimeStep); virtual float GetFixedTimeStep(); + virtual int GetDebugMode() const; + virtual void SetGravity(float x,float y,float z); virtual void GetGravity(class MT_Vector3& grav); diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h index 81a45f93993..dd762b02b4e 100644 --- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h +++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h @@ -126,6 +126,8 @@ class PHY_IPhysicsEnvironment //returns 0.f if no fixed timestep is used virtual float GetFixedTimeStep()=0; + ///getDebugMode return the actual debug visualization state + virtual int GetDebugMode()const=0; ///setDebugMode is used to support several ways of debug lines, contact point visualization virtual void SetDebugMode(int debugMode) {} ///setNumIterations set the number of iterations for iterative solvers |