From bb87fae3b097ddd5c5039bf1ab48d3718b900b08 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 01 Jul 2018 17:00:29 -0400
Subject: [PATCH] Fix camera and hip height.

---
 mocap/reader/BVHReader.java |    6 +++++-
 CameraPane.java             |    8 ++++----
 Mocap.java                  |    4 ++--
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/CameraPane.java b/CameraPane.java
index b6d1421..a1b29d7 100644
--- a/CameraPane.java
+++ b/CameraPane.java
@@ -7693,7 +7693,7 @@
         
         if (renderCamera != lightCamera)
         for (int count = parentcam.GetTransformCount(); --count>=0;)
-            LA.matConcat(parentcam.toParent, matrix, matrix);
+            LA.matConcat(matrix, parentcam.toParent, matrix);
         
 //            LA.matConcat(renderCamera.toScreen, renderCamera.toParent, matrix);
             
@@ -7709,7 +7709,7 @@
             
         if (renderCamera != lightCamera)
         for (int count = parentcam.GetTransformCount(); --count>=0;)
-            LA.matConcat(matrix, parentcam.fromParent, matrix);
+            LA.matConcat(parentcam.fromParent, matrix, matrix);
 
 //            LA.matConcat(renderCamera.fromParent, renderCamera.fromScreen, matrix);
             
@@ -8915,7 +8915,7 @@
 //        if (parentcam != renderCamera) // not a light
         if (cam != lightCamera)
             for (int count = parentcam.GetTransformCount(); --count>=0;)
-                LA.matConcat(parentcam.toParent, matrix, matrix);
+                LA.matConcat(matrix, parentcam.toParent, matrix);
             
             for (int j = 0; j < 4; j++)
             {
@@ -8930,7 +8930,7 @@
 //        if (parentcam != renderCamera) // not a light
         if (cam != lightCamera)
             for (int count = parentcam.GetTransformCount(); --count>=0;)
-                LA.matConcat(matrix, parentcam.fromParent, matrix);
+                LA.matConcat(parentcam.fromParent, matrix, matrix);
         
             //LA.matConcat(cam.fromScreen, parentcam.fromParent, matrix);
             
diff --git a/Mocap.java b/Mocap.java
index 93dd7ac..5b79812 100644
--- a/Mocap.java
+++ b/Mocap.java
@@ -3056,8 +3056,8 @@
     
     void Reset()
     {
-        if (fullname != null)
-            ReadBVH();
+//        if (fullname != null)
+//            ReadBVH();
         
         Object3D hip = get(0);
         
diff --git a/mocap/reader/BVHReader.java b/mocap/reader/BVHReader.java
index c48f786..8acc3f3 100644
--- a/mocap/reader/BVHReader.java
+++ b/mocap/reader/BVHReader.java
@@ -180,8 +180,12 @@
             b.setParent(parent);
 // EXTRA JOINTS
 //                        parent.attachGeom(n.offset, maxRadius, joints);
+            
+            b.setBaseTranslation(n.offset);
         }
-        b.setBaseTranslation(n.offset);
+        else
+            // Not for hip because the height is already factored in the mocap data.
+            b.setBaseTranslation(new Vector3d());
 
         // for horse
 //        if (n.name.equals("tail1"))

--
Gitblit v1.6.2