From fdf3a9b6b07b6ca09c6242d7b46e32b8876a9a1c Mon Sep 17 00:00:00 2001 From: Brian Peiris Date: Thu, 12 Jul 2018 15:22:39 -0700 Subject: [PATCH] Move components to extensions after gltf export --- src/client/editor/SceneLoader.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/client/editor/SceneLoader.js b/src/client/editor/SceneLoader.js index 2c18c5e26..d09ed5720 100644 --- a/src/client/editor/SceneLoader.js +++ b/src/client/editor/SceneLoader.js @@ -1,4 +1,5 @@ import THREE from "../vendor/three"; +import { Components } from "./components"; import SceneReferenceComponent from "./components/SceneReferenceComponent"; export function absoluteToRelativeURL(from, to) { @@ -78,6 +79,21 @@ function postProcessGLTF(scene, sceneURI, gltf) { } } + const componentNames = Components.map(component => component.componentName); + + for (const node of gltf.json.nodes) { + if (!node.extras) continue; + if (!node.extensions) { + node.extensions = []; + } + for (const component of node.extras._components) { + if (componentNames.includes(component.name)) { + node.extensions.push(component); + } + } + delete node.extras._components; + } + return gltf; }