Options
All
  • Public
  • Public/Protected
  • All
Menu

Class used to store geometry data (vertex buffers + index buffer)

Hierarchy

  • Geometry

Implements

Index

Constructors

  • Creates a new geometry

    Parameters

    • id: string

      defines the unique ID

    • Optional scene: Scene

      defines the hosting scene

    • Optional vertexData: VertexData

      defines the VertexData used to get geometry data

    • Optional updatable: boolean

      defines if geometry must be updatable (false by default)

    • Optional mesh: Nullable<Mesh>

      defines the mesh that will be associated with the geometry

    Returns Geometry

Properties

delayLoadState: number

Gets the delay loading state of the geometry (none by default which means not delayed)

delayLoadingFile: Nullable<string>

Gets the file containing the data to load when running in delay load state

id: string

Gets or sets the ID of the geometry

onGeometryUpdated: ((geometry: Geometry, kind?: string) => void)

Type declaration

    • (geometry: Geometry, kind?: string): void
    • Callback called when the geometry is updated

      Parameters

      Returns void

uniqueId: number

Gets or sets the unique ID of the geometry

useBoundingInfoFromGeometry: boolean

If set to true (false by default), the bounding info applied to the meshes sharing this geometry will be the bounding info defined at the class level and won't be computed based on the vertex positions (which is what we get when useBoundingInfoFromGeometry = false)

Accessors

  • Gets or sets the Bias Vector to apply on the bounding elements (box/sphere), the max extend is computed as v += v * bias.x + bias.y, the min is computed as v -= v * bias.x + bias.y

    Returns Vector2

  • Gets or sets the Bias Vector to apply on the bounding elements (box/sphere), the max extend is computed as v += v * bias.x + bias.y, the min is computed as v -= v * bias.x + bias.y

    Parameters

    Returns void

  • get doNotSerialize(): boolean
  • Gets a value indicating that the geometry should not be serialized

    Returns boolean

  • Gets the current extend of the geometry

    Returns { maximum: Vector3; minimum: Vector3 }

  • get meshes(): Mesh[]
  • Get the list of meshes using this geometry

    Returns Mesh[]

Methods

  • applyToMesh(mesh: Mesh): void
  • Apply current geometry to a given mesh

    Parameters

    • mesh: Mesh

      defines the mesh to apply geometry to

    Returns void

  • clearCachedData(): void
  • Release any memory retained by the cached data on the Geometry.

    Call this function to reduce memory footprint of the mesh. Vertex buffers will not store CPU data anymore (this will prevent picking, collisions or physics to work correctly)

    Returns void

  • Clone the current geometry into a new geometry

    Parameters

    • id: string

      defines the unique ID of the new geometry

    Returns Geometry

    a new geometry object

  • dispose(): void
  • Free all associated resources

    Returns void

  • Gets the hosting engine

    Returns Engine

    the hosting Engine

  • Gets the index buffer

    Returns Nullable<DataBuffer>

    the index buffer

  • Gets the index buffer array

    Parameters

    • Optional copyWhenShared: boolean

      defines if the returned array must be cloned upon returning it if the current geometry is shared between multiple meshes

    • Optional forceCopy: boolean

      defines a boolean indicating that the returned array must be cloned upon returning it

    Returns Nullable<IndicesArray>

    the index buffer array

  • Gets the hosting scene

    Returns Scene

    the hosting Scene

  • getTotalIndices(): number
  • Return the total number of indices

    Returns number

    the total number of indices

  • getTotalVertices(): number
  • Gets total number of vertices

    Returns number

    the total number of vertices

  • Gets a specific vertex buffer

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    Returns Nullable<VertexBuffer>

    a VertexBuffer

  • Returns all vertex buffers

    Returns Nullable<{}>

    an object holding all vertex buffers indexed by kind

  • getVerticesData(kind: string, copyWhenShared?: boolean, forceCopy?: boolean): Nullable<FloatArray>
  • Gets a specific vertex data attached to this geometry. Float data is constructed if the vertex buffer data cannot be returned directly.

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    • Optional copyWhenShared: boolean

      defines if the returned array must be cloned upon returning it if the current geometry is shared between multiple meshes

    • Optional forceCopy: boolean

      defines a boolean indicating that the returned array must be cloned upon returning it

    Returns Nullable<FloatArray>

    a float array containing vertex data

  • getVerticesDataKinds(): string[]
  • Gets a list of all attached data kinds (Position, normal, etc...)

    Returns string[]

    a list of string containing all kinds

  • isDisposed(): boolean
  • Gets a value indicating if the geometry is disposed

    Returns boolean

    true if the geometry was disposed

  • isReady(): boolean
  • Defines if the geometry is ready to use

    Returns boolean

    true if the geometry is ready to be used

  • isVertexBufferUpdatable(kind: string): boolean
  • Returns a boolean defining if the vertex data for the requested kind is updatable

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    Returns boolean

    true if the vertex buffer with the specified kind is updatable

  • isVerticesDataPresent(kind: string): boolean
  • Gets a boolean indicating if specific vertex buffer is present

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    Returns boolean

    true if data is present

  • load(scene: Scene, onLoaded?: (() => void)): void
  • Load the geometry if it was flagged as delay loaded

    Parameters

    • scene: Scene

      defines the hosting scene

    • Optional onLoaded: (() => void)

      defines a callback called when the geometry is loaded

        • (): void
        • Returns void

    Returns void

  • releaseForMesh(mesh: Mesh, shouldDispose?: boolean): void
  • Release the associated resources for a specific mesh

    Parameters

    • mesh: Mesh

      defines the source mesh

    • Optional shouldDispose: boolean

      defines if the geometry must be disposed if there is no more mesh pointing to it

    Returns void

  • removeVerticesData(kind: string): void
  • Removes a specific vertex data

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    Returns void

  • serialize(): any
  • Serialize the current geometry info (and not the vertices data) into a JSON object

    Returns any

    a JSON representation of the current geometry data (without the vertices data)

  • serializeVerticeData(): any
  • Serialize all vertices data into a JSON object

    Returns any

    a JSON representation of the current geometry data

  • setAllVerticesData(vertexData: VertexData, updatable?: boolean): void
  • Affects all geometry data in one call

    Parameters

    • vertexData: VertexData

      defines the geometry data

    • Optional updatable: boolean

      defines if the geometry must be flagged as updatable (false as default)

    Returns void

  • Creates a new index buffer

    Parameters

    • indices: IndicesArray

      defines the indices to store in the index buffer

    • Optional totalVertices: Nullable<number>

      defines the total number of vertices (could be null)

    • Optional updatable: boolean

      defines if the index buffer must be flagged as updatable (false by default)

    Returns void

  • setVerticesBuffer(buffer: VertexBuffer, totalVertices?: Nullable<number>, disposeExistingBuffer?: boolean): void
  • Affect a vertex buffer to the geometry. the vertexBuffer.getKind() function is used to determine where to store the data

    Parameters

    • buffer: VertexBuffer

      defines the vertex buffer to use

    • Optional totalVertices: Nullable<number>

      defines the total number of vertices for position kind (could be null)

    • Optional disposeExistingBuffer: boolean

      disposes the existing buffer, if any (default: true)

    Returns void

  • setVerticesData(kind: string, data: FloatArray, updatable?: boolean, stride?: number): void
  • Set specific vertex data

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    • data: FloatArray

      defines the vertex data to use

    • Optional updatable: boolean

      defines if the vertex must be flagged as updatable (false as default)

    • Optional stride: number

      defines the stride to use (0 by default). This value is deduced from the kind value if not specified

    Returns void

  • toLeftHanded(): void
  • Invert the geometry to move from a right handed system to a left handed one.

    Returns void

  • updateIndices(indices: IndicesArray, offset?: number, gpuMemoryOnly?: boolean): void
  • Update index buffer

    Parameters

    • indices: IndicesArray

      defines the indices to store in the index buffer

    • Optional offset: number

      defines the offset in the target buffer where to store the data

    • Optional gpuMemoryOnly: boolean

      defines a boolean indicating that only the GPU memory must be updated leaving the CPU version of the indices unchanged (false by default)

    Returns void

  • updateVerticesData(kind: string, data: FloatArray, updateExtends?: boolean): void
  • Update a specific vertex buffer This function will create a new buffer if the current one is not updatable

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    • data: FloatArray

      defines the data to use

    • Optional updateExtends: boolean

      defines if the geometry extends must be recomputed (false by default)

    Returns void

  • updateVerticesDataDirectly(kind: string, data: DataArray, offset: number, useBytes?: boolean): void
  • Update a specific vertex buffer This function will directly update the underlying DataBuffer according to the passed numeric array or Float32Array It will do nothing if the buffer is not updatable

    Parameters

    • kind: string

      defines the data kind (Position, normal, etc...)

    • data: DataArray

      defines the data to use

    • offset: number

      defines the offset in the target buffer where to store the data

    • Optional useBytes: boolean

      set to true if the offset is in bytes

    Returns void

  • Static function used to attach a new empty geometry to a mesh

    Parameters

    • mesh: Mesh

      defines the mesh to attach the geometry to

    Returns Geometry

    the new Geometry

  • Extracts a clone of a mesh geometry

    Parameters

    • mesh: Mesh

      defines the source mesh

    • id: string

      defines the unique ID of the new geometry object

    Returns Nullable<Geometry>

    the new geometry object

  • Create a new geometry from persisted data (Using .babylon file format)

    Parameters

    • parsedVertexData: any

      defines the persisted data

    • scene: Scene

      defines the hosting scene

    • rootUrl: string

      defines the root url to use to load assets (like delayed data)

    Returns Nullable<Geometry>

    the new geometry object

  • RandomId(): string

Legend

  • Constructor
  • Property
  • Method
  • Accessor
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Property
  • Method
  • Static method

Settings

Theme