From b661ddcfb58c6408afb7b120dcbb9d8cf23d8e76 Mon Sep 17 00:00:00 2001 From: Viktor Kovacs Date: Mon, 8 May 2023 07:49:00 +0200 Subject: [PATCH] Fix glTF export transformations. --- source/engine/export/exportergltf.js | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/source/engine/export/exportergltf.js b/source/engine/export/exportergltf.js index 17fa681..46a39ec 100644 --- a/source/engine/export/exportergltf.js +++ b/source/engine/export/exportergltf.js @@ -2,7 +2,6 @@ import { BinaryWriter } from '../io/binarywriter.js'; import { Utf8StringToArrayBuffer } from '../io/bufferutils.js'; import { FileFormat, GetFileExtension, GetFileName } from '../io/fileutils.js'; import { MeshInstanceId } from '../model/meshinstance.js'; -import { NodeType } from '../model/node.js'; import { RGBColor, SRGBToLinear } from '../model/color.js'; import { MaterialType } from '../model/material.js'; import { ConvertMeshToMeshBuffer } from '../model/meshbuffer.js'; @@ -276,28 +275,23 @@ export class ExporterGltf extends ExporterBase function AddNode (model, jsonParent, jsonNodes, node) { - let nodeType = node.GetType (); - if (nodeType === NodeType.GroupNode) { - let nodeJson = {}; - let nodeName = node.GetName (); - if (nodeName.length > 0) { - nodeJson.name = node.GetName (); - } - let transformation = node.GetTransformation (); - if (!transformation.IsIdentity ()) { - nodeJson.matrix = node.GetTransformation ().GetMatrix ().Get (); - } + let nodeJson = {}; + let nodeName = node.GetName (); + if (nodeName.length > 0) { + nodeJson.name = node.GetName (); + } + let transformation = node.GetTransformation (); + if (!transformation.IsIdentity ()) { + nodeJson.matrix = node.GetTransformation ().GetMatrix ().Get (); + } + if (node.ChildNodeCount () > 0 || node.MeshIndexCount () > 0) { nodeJson.children = []; AddChildNodes (model, nodeJson.children, jsonNodes, node); if (nodeJson.children.length > 0) { jsonNodes.push (nodeJson); jsonParent.push (jsonNodes.length - 1); } - } else if (nodeType === NodeType.MeshNode) { - for (let meshIndex of node.GetMeshIndices ()) { - AddMeshNode (model, jsonParent, jsonNodes, node, meshIndex); - } } }