From e8908d5b90d44e43b9da885bc0202fb665a912d0 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Mon, 30 Sep 2019 20:00:22 -0400 Subject: [PATCH] klein --- com/bulletphysics/dynamics/RigidBody.java | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 45 insertions(+), 1 deletions(-) diff --git a/com/bulletphysics/dynamics/RigidBody.java b/com/bulletphysics/dynamics/RigidBody.java index 98e8092..4d96feb 100755 --- a/com/bulletphysics/dynamics/RigidBody.java +++ b/com/bulletphysics/dynamics/RigidBody.java @@ -214,11 +214,55 @@ } } + static Vector3f g = new Vector3f(); + static Vector3f w = new Vector3f(); + + static public Vector3f wind = new Vector3f(); + static public Vector3f pos = new Vector3f(); + + static public Vector3f min = new Vector3f(); + static public Vector3f max = new Vector3f(); + + static public boolean justclicked; + public void applyGravity() { if (isStaticOrKinematicObject()) return; - applyCentralForce(gravity); + g.y = gravity.y; + applyCentralForce(g); + + if (pos.x == 0 && pos.y == 0 && pos.z == 0) + return; + + justclicked = false; + +// wind.set(pos); +// wind.x -= worldTransform.origin.x; +// wind.y -= worldTransform.origin.y; +// wind.z -= worldTransform.origin.z; + + this.collisionShape.getAabb(worldTransform, min, max); + + if (pos.x < min.x || pos.x > max.x) + return; + if (pos.y < min.y || pos.y > max.y) + return; + if (pos.z < min.z || pos.z > max.z) + return; + + float dot = pos.x * wind.x + pos.y * wind.y + pos.z * wind.z; + + dot = 100; + + w.x = wind.x * gravity.z * dot; + w.y = wind.y * gravity.z * dot; + w.z = wind.z * gravity.z * dot; + + System.out.print("min = " + min); + System.out.println("; max = " + max); + + applyCentralForce(w); } public void setGravity(Vector3f acceleration) { -- Gitblit v1.6.2