From 767be784dc7fe293bf5c5ee6507df242526be3ed Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Tue, 24 Sep 2019 02:10:06 -0400
Subject: [PATCH] Rag doll is back.

---
 PhysicsNode.java |   38 +++++++++++++++++++++-----------------
 1 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/PhysicsNode.java b/PhysicsNode.java
index 77051fd..ca3a422 100644
--- a/PhysicsNode.java
+++ b/PhysicsNode.java
@@ -78,6 +78,8 @@
         super("Physics");
         
         live = true;
+        
+        gravity = 1;
     }
     
     void Reset()
@@ -193,39 +195,41 @@
             //staticdynamicsWorld = dynamicsWorld;
 //		dynamicsWorld.setDebugDrawer(new GLDebugDrawer(gl));
 
+            float boxsize = 100;
+            
         // Setup a big ground box
 //        {
-            CollisionShape groundShape = new BoxShape(new Vector3f(200f, 10f, 200f));
+            CollisionShape groundShape = new BoxShape(new Vector3f(boxsize, 10f, boxsize));
             Transform groundTransform = new Transform();
             groundTransform.setIdentity();
             groundTransform.origin.set(0f, -floor - 10, 0f);
             localCreateRigidBody(0f, groundTransform, groundShape);
             
-            groundShape = new BoxShape(new Vector3f(200f, 200f, 200f));
+            groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize));
             groundTransform = new Transform();
             groundTransform.setIdentity();
-            groundTransform.origin.set(0f, 100, -201f);
-            //localCreateRigidBody(0f, groundTransform, groundShape);
+            groundTransform.origin.set(0f, boxsize/2, -boxsize-1);
+            localCreateRigidBody(0f, groundTransform, groundShape);
             
-            groundShape = new BoxShape(new Vector3f(200f, 200f, 200f));
+            groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize));
             groundTransform = new Transform();
             groundTransform.setIdentity();
-            groundTransform.origin.set(-201f, 100, 0f);
-            //localCreateRigidBody(0f, groundTransform, groundShape);
+            groundTransform.origin.set(-boxsize-1, boxsize/2, 0f);
+            localCreateRigidBody(0f, groundTransform, groundShape);
             
-            groundShape = new BoxShape(new Vector3f(200f, 200f, 200f));
+            groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize));
             groundTransform = new Transform();
             groundTransform.setIdentity();
-            groundTransform.origin.set(201f, 100, 0f);
-            //localCreateRigidBody(0f, groundTransform, groundShape);
+            groundTransform.origin.set(boxsize+1, boxsize/2, 0f);
+            localCreateRigidBody(0f, groundTransform, groundShape);
             
-            groundShape = new BoxShape(new Vector3f(200f, 200f, 200f));
+            groundShape = new BoxShape(new Vector3f(boxsize, boxsize, boxsize));
             groundTransform = new Transform();
             groundTransform.setIdentity();
-            groundTransform.origin.set(0f, 100, 201f);
-            //localCreateRigidBody(0f, groundTransform, groundShape);
+            groundTransform.origin.set(0f, boxsize/2, boxsize+1);
+            localCreateRigidBody(0f, groundTransform, groundShape);
             
-            transientDynamicsWorld.setGravity(new Vector3f(0, -gravity, wind));
+            transientDynamicsWorld.setGravity(new Vector3f(0.075f, -gravity, wind));
             
             SetDynamics(transientDynamicsWorld);
         }
@@ -251,7 +255,7 @@
 //        myoffset = dynamicsWorld.getNumCollisionObjects() - 1;
 //        
 //        if (myoffset == 0)
-            clientResetScene();
+//            clientResetScene();
     }
 
     public RigidBody localCreateRigidBody(float mass, Transform startTransform, CollisionShape shape)
@@ -271,7 +275,7 @@
         //#ifdef USE_MOTIONSTATE
         DefaultMotionState myMotionState = new DefaultMotionState(startTransform);
 
-        float friction = 1;
+        float friction = 1f;
         
         RigidBodyConstructionInfo cInfo = new RigidBodyConstructionInfo(mass, myMotionState, shape, localInertia, friction);
 
@@ -288,7 +292,7 @@
 
     public void clientResetScene()
     {
-//        System.exit(0);
+        System.exit(0);
         //#ifdef SHOW_NUM_DEEP_PENETRATIONS
         BulletStats.gNumDeepPenetrationChecks = 0;
         BulletStats.gNumGjkChecks = 0;

--
Gitblit v1.6.2