Skip to content

editor › Globals › MeshMerger

Class: MeshMerger

This class merges a hierarchy of Objects3D into a flat Object3D with only one mesh per material.

Hierarchy

  • MeshMerger

Index

Constructors

Properties

Methods

Constructors

constructor

+ new MeshMerger(nodeToMerge?: Object3D): MeshMerger

Defined in src/util/MeshMerger.ts:389

Parameters:

Name Type
nodeToMerge? Object3D

Returns: MeshMerger

Properties

Private Readonly mergedNode

• mergedNode: Object3D

Defined in src/util/MeshMerger.ts:389


Private nodeToMerge

• nodeToMerge: Object3D

Defined in src/util/MeshMerger.ts:388

Methods

getThreeNode

▸ getThreeNode(): Object3D

Defined in src/util/MeshMerger.ts:405

Returns: Object3D


setNodeToMerge

▸ setNodeToMerge(node: Object3D): void

Defined in src/util/MeshMerger.ts:401

Parameters:

Name Type
node Object3D

Returns: void


update

▸ update(): void

Defined in src/util/MeshMerger.ts:409

Returns: void


Static Private _getAttributes

▸ _getAttributes(meshes: SupportedObject3D[]): object

Defined in src/util/MeshMerger.ts:227

Parameters:

Name Type
meshes SupportedObject3D[]

Returns: object

  • attributes(): object

  • normal: boolean

  • plateUv: boolean

  • position: true

  • uv: boolean

  • uv2: boolean

  • index: boolean


Static Private _getMatrix

▸ _getMatrix(base: SupportedObject3D, rootNode: Object3D): Matrix4

Defined in src/util/MeshMerger.ts:379

Returns the matrix of the base object in relation to the rootNode.

Parameters:

Name Type
base SupportedObject3D
rootNode Object3D

Returns: Matrix4


Static Private _getOriginalMeshByFaceIndex

▸ _getOriginalMeshByFaceIndex(mesh: SupportedObject3D, faceIndex: any): SupportedObject3D | null

Defined in src/util/MeshMerger.ts:190

Parameters:

Name Type
mesh SupportedObject3D
faceIndex any

Returns: SupportedObject3D | null


Static Private _getOriginalParent

▸ _getOriginalParent(mesh: SupportedObject3D): Object3D

Defined in src/util/MeshMerger.ts:211

Parameters:

Name Type
mesh SupportedObject3D

Returns: Object3D


Static Private _getPhysicalObjectFromObject3D

▸ _getPhysicalObjectFromObject3D(object3D: Object3D): PhysicalObject | null

Defined in src/util/MeshMerger.ts:215

Parameters:

Name Type
object3D Object3D

Returns: PhysicalObject | null


Static Private _preallocateBufferAttributes

▸ _preallocateBufferAttributes(meshes: SupportedObject3D[], attributes: ReturnType‹typeof _getAttributes›): object

Defined in src/util/MeshMerger.ts:321

Parameters:

Name Type
meshes SupportedObject3D[]
attributes ReturnType‹typeof _getAttributes›

Returns: object

  • index? : BufferAttribute

  • normal? : BufferAttribute

  • plateUv? : BufferAttribute

  • position: BufferAttribute

  • uv? : BufferAttribute

  • uv2? : BufferAttribute


Static Private _traverseAncestors

▸ _traverseAncestors(base: SupportedObject3D, rootNode: Object3D, callback: function): void

Defined in src/util/MeshMerger.ts:178

Traverses the tree from the base node through all parents up to the root node. Calls the callback for each object. Callback is called for the base but not for the rootNode.

Parameters:

▪ base: SupportedObject3D

▪ rootNode: Object3D

▪ callback: function

▸ (object3D: Object3D): void

Parameters:

Name Type
object3D Object3D

Returns: void


Static flatten

▸ flatten(object: SupportedObject3D, rootNode: Object3D): Object3D

Defined in src/util/MeshMerger.ts:146

Clones the object, applies the matrix up to the rootNode and returns it.

Parameters:

Name Type Description
object SupportedObject3D -
rootNode Object3D -

Returns: Object3D


Static getPhysicalObjectByFaceIndex

▸ getPhysicalObjectByFaceIndex(mesh: any, faceIndex: any): PhysicalObject

Defined in src/util/MeshMerger.ts:160

Parameters:

Name Type
mesh any
faceIndex any

Returns: PhysicalObject


Static isVisible

▸ isVisible(object: Object3D): boolean

Defined in src/util/MeshMerger.ts:169

Parameters:

Name Type
object Object3D

Returns: boolean


Static merge

▸ merge‹T›(meshes: T[], Class: Constructor‹T›, material: any, rootNode: Object3D): T

Defined in src/util/MeshMerger.ts:21

Type parameters:

▪ T: SupportedObject3D

Parameters:

Name Type
meshes T[]
Class Constructor‹T›
material any
rootNode Object3D

Returns: T


Static mergeGeometriesFromMeshes

▸ mergeGeometriesFromMeshes(meshes: SupportedObject3D[], rootNode: Object3D): object

Defined in src/util/MeshMerger.ts:39

Parameters:

Name Type
meshes SupportedObject3D[]
rootNode Object3D

Returns: object