diff --git a/leenkx/Sources/leenkx/trait/physics/bullet/PhysicsWorld.hx b/leenkx/Sources/leenkx/trait/physics/bullet/PhysicsWorld.hx index 4517f76..bc50571 100644 --- a/leenkx/Sources/leenkx/trait/physics/bullet/PhysicsWorld.hx +++ b/leenkx/Sources/leenkx/trait/physics/bullet/PhysicsWorld.hx @@ -71,7 +71,8 @@ class PhysicsWorld extends Trait { public var convexHitPointWorld = new Vec4(); public var convexHitNormalWorld = new Vec4(); var pairCache: Bool = false; - + public var drawRaycasts: Bool = false; + static var nullvec = true; static var vec1: bullet.Bt.Vector3 = null; static var vec2: bullet.Bt.Vector3 = null; @@ -101,7 +102,7 @@ class PhysicsWorld extends Trait { - public function new(timeScale = 1.0, maxSteps = 10, solverIterations = 10, debugDrawMode: DebugDrawMode = NoDebug) { + public function new(timeScale = 1.0, maxSteps = 10, solverIterations = 10, debugDrawMode: DebugDrawMode = NoDebug, drawRaycasts: Bool = false) { super(); if (nullvec) { @@ -120,7 +121,8 @@ class PhysicsWorld extends Trait { this.timeScale = timeScale; this.maxSteps = maxSteps; this.solverIterations = solverIterations; - + this.drawRaycasts = drawRaycasts; + // First scene if (active == null) { createPhysics(); @@ -507,10 +509,12 @@ class PhysicsWorld extends Trait { public function setDebugDrawMode(debugDrawMode: DebugDrawMode) { if (debugDrawHelper == null) { - if (debugDrawMode == NoDebug) { + if (debugDrawMode != NoDebug || this.drawRaycasts) { + initDebugDrawing(); + } + else { return; } - initDebugDrawing(); } #if js @@ -526,7 +530,8 @@ class PhysicsWorld extends Trait { } #if js - return world.getDebugDrawer().getDebugMode(); + var drawer = world.getDebugDrawer(); + if (drawer != null) drawer.setDebugMode(debugDrawMode); #elseif hl return hlDebugDrawer_getDebugMode(); #else