diff --git a/source/engine/import/importer3ds.js b/source/engine/import/importer3ds.js index 4720f5f..6b57042 100644 --- a/source/engine/import/importer3ds.js +++ b/source/engine/import/importer3ds.js @@ -9,7 +9,7 @@ import { RGBColor, ColorComponentFromFloat } from '../model/color.js'; import { PhongMaterial, TextureMap } from '../model/material.js'; import { Mesh } from '../model/mesh.js'; import { FlipMeshTrianglesOrientation, TransformMesh } from '../model/meshutils.js'; -import { Node, NodeType } from '../model/node.js'; +import { Node } from '../model/node.js'; import { Triangle } from '../model/triangle.js'; import { ImporterBase } from './importerbase.js'; import { UpdateMaterialTransparency } from './importerutils.js'; @@ -550,7 +550,6 @@ export class Importer3ds extends ImporterBase let isMeshNode = this.meshNameToIndex.has (node3ds.name); node.SetTransformation (GetNodeTransformation (node3ds, isMeshNode)); if (isMeshNode) { - node.SetType (NodeType.MeshNode); node.AddMeshIndex (this.meshNameToIndex.get (node3ds.name)); } } diff --git a/source/engine/import/importerbim.js b/source/engine/import/importerbim.js index caa8156..3fa3762 100644 --- a/source/engine/import/importerbim.js +++ b/source/engine/import/importerbim.js @@ -2,7 +2,7 @@ import { IsObjectEmpty } from '../core/core.js'; import { Coord3D } from '../geometry/coord3d.js'; import { Direction } from '../geometry/geometry.js'; import { ArrayBufferToUtf8String } from '../io/bufferutils.js'; -import { Node, NodeType } from '../model/node.js'; +import { Node } from '../model/node.js'; import { Mesh } from '../model/mesh.js'; import { Triangle } from '../model/triangle.js'; import { ImporterBase } from './importerbase.js'; @@ -95,7 +95,6 @@ export class ImporterBim extends ImporterBase let meshIndex = this.model.AddMesh (mesh); let elementNode = new Node (); - elementNode.SetType (NodeType.MeshNode); elementNode.AddMeshIndex (meshIndex); let translation = new Coord3D (0.0, 0.0, 0.0); diff --git a/source/engine/import/importerfcstd.js b/source/engine/import/importerfcstd.js index 27c8552..1dc0507 100644 --- a/source/engine/import/importerfcstd.js +++ b/source/engine/import/importerfcstd.js @@ -4,7 +4,7 @@ import { GetFileExtension } from '../io/fileutils.js'; import { GetExternalLibPath } from '../io/externallibs.js'; import { ConvertThreeGeometryToMesh } from '../threejs/threeutils.js'; import { ArrayBufferToUtf8String } from '../io/bufferutils.js'; -import { Node, NodeType } from '../model/node.js'; +import { Node } from '../model/node.js'; import { ColorToMaterialConverter } from './importerutils.js'; import { RGBAColor } from '../model/color.js'; import { Property, PropertyGroup, PropertyType } from '../model/property.js'; @@ -387,7 +387,6 @@ export class ImporterFcstd extends ImporterBase } let objectNode = new Node (); - objectNode.SetType (NodeType.GroupNode); if (object.shapeName !== null) { objectNode.SetName (object.shapeName); } diff --git a/source/engine/import/importergltf.js b/source/engine/import/importergltf.js index b641a3f..54b19b0 100644 --- a/source/engine/import/importergltf.js +++ b/source/engine/import/importergltf.js @@ -11,7 +11,7 @@ import { LoadExternalLibrary } from '../io/externallibs.js'; import { RGBColor, ColorComponentFromFloat, RGBColorFromFloatComponents, LinearToSRGB } from '../model/color.js'; import { PhongMaterial, PhysicalMaterial, TextureMap } from '../model/material.js'; import { Mesh } from '../model/mesh.js'; -import { Node, NodeType } from '../model/node.js'; +import { Node } from '../model/node.js'; import { Property, PropertyGroup, PropertyType } from '../model/property.js'; import { Triangle } from '../model/triangle.js'; import { ImporterBase } from './importerbase.js'; @@ -1057,9 +1057,6 @@ export class ImporterGltf extends ImporterBase } if (gltfNode.mesh !== undefined) { - if (gltfNode.children === undefined || gltfNode.children.length === 0) { - node.SetType (NodeType.MeshNode); - } let mesh = this.model.GetMesh (gltfNode.mesh); this.ImportProperties (mesh, gltfNode.extras, 'Node properties'); node.AddMeshIndex (gltfNode.mesh); diff --git a/source/engine/import/importerthree.js b/source/engine/import/importerthree.js index 9f26c99..22b0f5b 100644 --- a/source/engine/import/importerthree.js +++ b/source/engine/import/importerthree.js @@ -5,7 +5,7 @@ import { Transformation } from '../geometry/transformation.js'; import { Base64DataURIToArrayBuffer, CreateObjectUrl, GetFileExtensionFromMimeType } from '../io/bufferutils.js'; import { GetFileExtension, GetFileName } from '../io/fileutils.js'; import { PhongMaterial, TextureMap } from '../model/material.js'; -import { Node, NodeType } from '../model/node.js'; +import { Node } from '../model/node.js'; import { ConvertThreeColorToColor, ConvertThreeGeometryToMesh, ThreeLinearToSRGBColorConverter, ThreeSRGBToLinearColorConverter } from '../threejs/threeutils.js'; import { ImporterBase } from './importerbase.js'; @@ -134,9 +134,6 @@ export class ImporterThreeBase extends ImporterBase AddObject (importer, model, childObject, node); } if (threeObject.isMesh && importer.IsMeshVisible (threeObject)) { - if (threeObject.children.length === 0) { - node.SetType (NodeType.MeshNode); - } let mesh = importer.ConvertThreeMesh (threeObject); let meshIndex = model.AddMesh (mesh); node.AddMeshIndex (meshIndex); diff --git a/source/engine/main.js b/source/engine/main.js index 4662d98..6b02594 100644 --- a/source/engine/main.js +++ b/source/engine/main.js @@ -54,7 +54,7 @@ import { GetMeshType, CalculateTriangleNormal, TransformMesh, FlipMeshTrianglesO import { Model } from './model/model.js'; import { FinalizeModel, CheckModel } from './model/modelfinalization.js'; import { IsModelEmpty, GetBoundingBox, GetTopology, IsTwoManifold, HasDefaultMaterial, ReplaceDefaultMaterialColor } from './model/modelutils.js'; -import { Node, NodeType } from './model/node.js'; +import { Node } from './model/node.js'; import { Object3D, ModelObject3D } from './model/object.js'; import { Property, PropertyGroup, PropertyToString, PropertyType } from './model/property.js'; import { GetTriangleArea, GetTetrahedronSignedVolume, CalculateVolume, CalculateSurfaceArea } from './model/quantities.js'; @@ -253,7 +253,6 @@ export { HasDefaultMaterial, ReplaceDefaultMaterialColor, Node, - NodeType, Object3D, ModelObject3D, Property, diff --git a/source/engine/model/node.js b/source/engine/model/node.js index 48c29f4..84a5340 100644 --- a/source/engine/model/node.js +++ b/source/engine/model/node.js @@ -15,17 +15,10 @@ class NodeIdGenerator } } -export const NodeType = -{ - GroupNode : 0, - MeshNode : 1 -}; - export class Node { constructor () { - this.type = NodeType.GroupNode; this.name = ''; this.parent = null; this.transformation = new Transformation (); @@ -42,14 +35,9 @@ export class Node return this.childNodes.length === 0 && this.meshIndices.length === 0; } - GetType () + IsMeshNode () { - return this.type; - } - - SetType (type) - { - this.type = type; + return this.childNodes.length === 0 && this.meshIndices.length === 1; } GetId () diff --git a/source/website/navigatormeshespanel.js b/source/website/navigatormeshespanel.js index cd2a1a0..e84345f 100644 --- a/source/website/navigatormeshespanel.js +++ b/source/website/navigatormeshespanel.js @@ -1,4 +1,3 @@ -import { NodeType } from '../engine/model/node.js'; import { MeshInstanceId } from '../engine/model/meshinstance.js'; import { AddDiv, CreateDiv, ShowDomElement, ClearDomElement, InsertDomElementBefore, SetDomElementHeight, GetDomElementOuterHeight, IsDomElementVisible } from '../engine/viewer/domutils.js'; import { CalculatePopupPositionToElementBottomRight, ShowListPopup } from './dialogs.js'; @@ -147,7 +146,7 @@ export class NavigatorMeshesPanel extends NavigatorPanel const rootNode = importResult.model.GetRootNode (); let isHierarchical = false; for (let childNode of rootNode.GetChildNodes ()) { - if (childNode.GetType () === NodeType.GroupNode) { + if (childNode.ChildNodeCount () > 0) { isHierarchical = true; break; } @@ -380,12 +379,12 @@ export class NavigatorMeshesPanel extends NavigatorPanel let meshNodes = []; for (let childNode of node.GetChildNodes ()) { if (mode === MeshesPanelMode.TreeView) { - if (childNode.GetType () === NodeType.GroupNode) { + if (childNode.IsMeshNode ()) { + meshNodes.push (childNode); + } else { let nodeItem = CreateNodeItem (panel, childNode); parentItem.AddChild (nodeItem); AddModelNodeToTree (panel, model, childNode, nodeItem, mode); - } else if (childNode.GetType () === NodeType.MeshNode) { - meshNodes.push (childNode); } } else { AddModelNodeToTree (panel, model, childNode, parentItem, mode);