Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Geometry

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

Hierarchy

  • Geometry

Implements

Index

Constructors

constructor

  • 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

delayLoadStateSearch playground for delayLoadState

delayLoadState: number

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

delayLoadingFileSearch playground for delayLoadingFile

delayLoadingFile: Nullable<string>

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

idSearch playground for id

id: string

Gets or sets the ID of the geometry

onGeometryUpdatedSearch playground for onGeometryUpdated

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

Callback called when the geometry is updated

Type declaration

    • (geometry: Geometry, kind?: string): void
    • Parameters

      • geometry: Geometry
      • Optional kind: string

      Returns void

uniqueIdSearch playground for uniqueId

uniqueId: number

Gets or sets the unique ID of the geometry

useBoundingInfoFromGeometrySearch playground for useBoundingInfoFromGeometry

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

boundingBias

  • 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 any

doNotSerialize

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

    Returns boolean

extend

  • Gets the current extend of the geometry

    Returns { maximum: Vector3; minimum: Vector3 }

meshes

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

    Returns Mesh[]

Methods

applyToMeshSearch playground for applyToMesh

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

    Parameters

    • mesh: Mesh

      defines the mesh to apply geometry to

    Returns void

clearCachedDataSearch playground for clearCachedData

  • 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

copySearch playground for copy

  • 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

disposeSearch playground for dispose

  • dispose(): void
  • Free all associated resources

    Returns void

getEngineSearch playground for getEngine

  • Gets the hosting engine

    Returns Engine

    the hosting Engine

getIndexBufferSearch playground for getIndexBuffer

  • Gets the index buffer

    Returns Nullable<DataBuffer>

    the index buffer

getIndicesSearch playground for getIndices

  • 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

getSceneSearch playground for getScene

  • Gets the hosting scene

    Returns Scene

    the hosting Scene

getTotalIndicesSearch playground for getTotalIndices

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

    Returns number

    the total number of indices

getTotalVerticesSearch playground for getTotalVertices

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

    Returns number

    the total number of vertices

getVertexBufferSearch playground for getVertexBuffer

  • Gets a specific vertex buffer

    Parameters

    • kind: string

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

    Returns Nullable<VertexBuffer>

    a VertexBuffer

getVertexBuffersSearch playground for getVertexBuffers

  • Returns all vertex buffers

    Returns Nullable<{}>

    an object holding all vertex buffers indexed by kind

getVerticesDataSearch playground for getVerticesData

  • 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

getVerticesDataKindsSearch playground for getVerticesDataKinds

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

    Returns string[]

    a list of string containing all kinds

isDisposedSearch playground for isDisposed

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

    Returns boolean

    true if the geometry was disposed

isReadySearch playground for isReady

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

    Returns boolean

    true if the geometry is ready to be used

isVertexBufferUpdatableSearch playground for isVertexBufferUpdatable

  • 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

isVerticesDataPresentSearch playground for isVerticesDataPresent

  • 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

loadSearch playground for load

  • 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

releaseForMeshSearch playground for releaseForMesh

  • 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

removeVerticesDataSearch playground for removeVerticesData

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

    Parameters

    • kind: string

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

    Returns void

serializeSearch playground for serialize

  • 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)

serializeVerticeDataSearch playground for serializeVerticeData

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

    Returns any

    a JSON representation of the current geometry data

setAllVerticesDataSearch playground for setAllVerticesData

  • 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

setIndicesSearch playground for setIndices

  • 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

setVerticesBufferSearch playground for setVerticesBuffer

  • 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

setVerticesDataSearch playground for setVerticesData

  • 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

toLeftHandedSearch playground for toLeftHanded

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

    Returns void

updateIndicesSearch playground for updateIndices

  • 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

updateVerticesDataSearch playground for updateVerticesData

  • 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

updateVerticesDataDirectlySearch playground for updateVerticesDataDirectly

  • 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 CreateGeometryForMeshSearch playground for CreateGeometryForMesh

  • 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

Static ExtractFromMeshSearch playground for ExtractFromMesh

  • 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

Static ParseSearch playground for Parse

  • 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

Static RandomIdSearch playground for RandomId

  • RandomId(): string

Legend

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