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
- getThreeNode
- setNodeToMerge
- update
- _getAttributes
- _getMatrix
- _getOriginalMeshByFaceIndex
- _getOriginalParent
- _getPhysicalObjectFromObject3D
- _preallocateBufferAttributes
- _traverseAncestors
- flatten
- getPhysicalObjectByFaceIndex
- isVisible
- merge
- mergeGeometriesFromMeshes
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
-
geometry: BufferGeometry
-
offsets: IIndexOffset[]