# Interface VertexDataMergeOptions

Options for merging vertex data.

interface VertexDataMergeOptions {
compactAfterMerge?: boolean;
cullOnCameraMove?: boolean;
disableTransparencyAndMergeIdChecks?: boolean;
includeNormals?: boolean;
noTransformCache?: boolean;
}

##### Index

### Properties

compactAfterMerge?
cullOnCameraMove?
disableTransparencyAndMergeIdChecks?
includeNormals?
noTransformCache?

## Properties

### `Optional` compactAfterMerge

compactAfterMerge?: boolean

If `true`, VertexDataMerge.merge will replace its internal geometry arrays with tightly-sized copies of the actually-written prefix once merging completes. This releases the slack reserved in the backing GeometryBuffer (which is over-estimated for per-face-normal expansion / vertex dedup) so the underlying ArrayBuffers become GC-eligible as soon as no other references exist.

Use this when the GeometryBuffer is dedicated to a single merge and the resulting geometry is handed to a long-lived consumer. Do NOT use it when the GeometryBuffer is pooled across many merges — compaction would defeat the pool by allocating fresh arrays per merge.

Defaults to `false`.

### `Optional` cullOnCameraMove

cullOnCameraMove?: boolean

Specifies whether to cull the geometry when the camera moves.

### `Optional` disableTransparencyAndMergeIdChecks

disableTransparencyAndMergeIdChecks?: boolean

Specifies whether to disable transparency and merge ID checks.

### `Optional` includeNormals

includeNormals?: boolean

Specifies whether to include normals in the merged vertex data. Not including it speeds up the VertexDataMerge.merge operation. However calling VertexDataMerge.applyToMesh or VertexDataMerge.applyToGeometry will then not include the normals

### `Optional` noTransformCache

noTransformCache?: boolean

Specifies whether to use the transform cache when writing vertex data. Defaults to `true`. When set to `false`, the transform cache will not be used to optimize vertex data writing. This can improve performance when merging large amounts of geometry. It does however increase memory usage since transforms are kept in cache until BimIfcLoaderElement.transformsRepository.clear is called.