# Interface Geometry3d

Represents a geometry that consists of one or more IFC objects

interface Geometry3d {
aabb: { max: Vector3; min: Vector3 };
center: Vector3;
cullingDistance: number;
cullOnCameraMove: boolean;
id: string;
indices: GeometryIndiceArray;
isTransparent: boolean;
positions: Float32Array;
productsAndMeshes: BimIfcProductsAndMeshes;
uvs: Float32Array;
applyToGeometry(babylonGeometry: Geometry, engine: Engine): void;
applyToMesh(mesh: Mesh, engine: Engine): void;
copyNormalsTo<T extends Writeable<ArrayLike<number>>>(dst: T): T;
toHandle(): Geometry3dHandle;
}

#### Hierarchy (View Summary)

- GeometryArrays
- Geometry3dHandle
  - Geometry3d

#### Implemented by

- VertexDataMerge

##### Index

### Properties

aabb
center
cullingDistance
cullOnCameraMove
id
indices
isTransparent
positions
productsAndMeshes
uvs

### Methods

applyToGeometry
applyToMesh
copyNormalsTo
toHandle

## Properties

### `Readonly` aabb

aabb: { max: Vector3; min: Vector3 }

The axis-aligned bounding box of the geometry.

Inherited from Geometry3dHandle.aabb

### `Readonly` center

center: Vector3

The center of the geometry's axis-aligned bounding box in IFC space.

Inherited from Geometry3dHandle.center

### `Readonly` cullingDistance

cullingDistance: number

The distance at which the geometry should be culled.

Inherited from Geometry3dHandle.cullingDistance

### cullOnCameraMove

cullOnCameraMove: boolean

Specifies whether to cull the geometry when the camera moves.

### `Readonly` id

id: string

The unique identifier for the geometry.

Inherited from Geometry3dHandle.id

### `Readonly` indices

indices: GeometryIndiceArray

Indices. Describes triangles by referencing items in positions.

Inherited from GeometryArrays.indices

### `Readonly` isTransparent

isTransparent: boolean

Indicates whether the geometry is transparent.

Inherited from Geometry3dHandle.isTransparent

### `Readonly` positions

positions: Float32Array

Positions (x,y,z).

Inherited from GeometryArrays.positions

### `Readonly` productsAndMeshes

productsAndMeshes: BimIfcProductsAndMeshes

The products and meshes associated with the geometry.

Inherited from Geometry3dHandle.productsAndMeshes

### `Readonly` uvs

uvs: Float32Array

Uvs (u,v)

Inherited from GeometryArrays.uvs

## Methods

### applyToGeometry

- applyToGeometry(babylonGeometry: Geometry, engine: Engine): void

  Applies geometry to a babylon Geometry.

  #### Parameters

  - babylonGeometry: Geometry
  - engine: Engine

  #### Returns void

### applyToMesh

- applyToMesh(mesh: Mesh, engine: Engine): void

  Applies geometry to a babylon Mesh.

  #### Parameters

  - mesh: Mesh
  - engine: Engine

  #### Returns void

### copyNormalsTo

- copyNormalsTo<T extends Writeable<ArrayLike<number>>>(dst: T): T

  Copies normals to existing array.

  #### Type Parameters

  - T extends Writeable<ArrayLike<number>>

  #### Parameters

  - dst: T

  #### Returns T

### toHandle

- toHandle(): Geometry3dHandle

  Handle for this geometry. Can be used to unload the geometry from the GPU.

  #### Returns Geometry3dHandle