private GltfNodeInfo[] ExtractNodes(Gltf model, GltfBucketContainer cameras) { var noOfNodes = model.Nodes != null ? model.Nodes.Length : 0; var allNodes = new GltfNodeInfo[noOfNodes]; for (var i = 0; i < noOfNodes; i += 1) { var srcNode = model.Nodes[i]; var destNode = new GltfNodeInfo { Name = srcNode.Name, NodeIndex = i, CameraAllocation = cameras.GetAllocation(srcNode.Camera), Children = srcNode.Children ?? (new int[] { }), Transform = GenerateTransform(srcNode), Mesh = srcNode.Mesh, }; destNode.IsMirrored = destNode.Transform.Determinant < 0; // TODO: meshes allNodes[i] = destNode; } LinkToParents(allNodes); return(allNodes); }
private GltfMesh[] ExtractMeshes(Gltf model, GltfAccessor[] accessors, GltfBucketContainer materials) { var noOfItems = model.Meshes != null ? model.Meshes.Length : 0; var output = new GltfMesh[noOfItems]; for (var i = 0; i < noOfItems; i += 1) { var result = new GltfMesh(model.Meshes[i], accessors); output[i] = result; } return(output); }