From c5a3b3106cc4fb4829f80f475cdfb52312d6d9ca Mon Sep 17 00:00:00 2001 From: Ed Mackey Date: Fri, 10 May 2019 16:45:05 -0400 Subject: [PATCH 01/10] First crack at importing AGI_articulations from glTF models. --- Source/DataSources/ModelVisualizer.js | 10 +- Source/Scene/Model.js | 203 ++++++++++++++++++++++++-- Source/Scene/ModelNode.js | 14 ++ Source/Scene/ModelUtility.js | 5 +- 4 files changed, 207 insertions(+), 25 deletions(-) diff --git a/Source/DataSources/ModelVisualizer.js b/Source/DataSources/ModelVisualizer.js index 3ce724f63523..06469ee82796 100644 --- a/Source/DataSources/ModelVisualizer.js +++ b/Source/DataSources/ModelVisualizer.js @@ -137,7 +137,6 @@ define([ url : resource.url, animationsRunning : false, nodeTransformationsScratch : {}, - originalNodeMatrixHash : {}, loadFail : false }; modelHash[entity.id] = modelData; @@ -179,7 +178,6 @@ define([ // Apply node transformations var nodeTransformations = Property.getValueOrUndefined(modelGraphics._nodeTransformations, time, modelData.nodeTransformationsScratch); if (defined(nodeTransformations)) { - var originalNodeMatrixHash = modelData.originalNodeMatrixHash; var nodeNames = Object.keys(nodeTransformations); for (var nodeIndex = 0, nodeLength = nodeNames.length; nodeIndex < nodeLength; ++nodeIndex) { var nodeName = nodeNames[nodeIndex]; @@ -194,14 +192,8 @@ define([ continue; } - var originalNodeMatrix = originalNodeMatrixHash[nodeName]; - if (!defined(originalNodeMatrix)) { - originalNodeMatrix = modelNode.matrix.clone(); - originalNodeMatrixHash[nodeName] = originalNodeMatrix; - } - var transformationMatrix = Matrix4.fromTranslationRotationScale(nodeTransformation, nodeMatrixScratch); - modelNode.matrix = Matrix4.multiply(originalNodeMatrix, transformationMatrix, transformationMatrix); + modelNode.matrix = Matrix4.multiply(modelNode.originalMatrix, transformationMatrix, transformationMatrix); } } } diff --git a/Source/Scene/Model.js b/Source/Scene/Model.js index 1892df92f71e..5980a63fa6c7 100644 --- a/Source/Scene/Model.js +++ b/Source/Scene/Model.js @@ -237,21 +237,23 @@ define([ * Cesium supports glTF assets with the following extensions: *