Eliminate manual node type setting in importers.
This commit is contained in:
parent
b661ddcfb5
commit
96609b559a
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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 ()
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user