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

    • scene: Scene

      defines the hosting scene

    • Optional vertexData: VertexData

      defines the {BABYLON.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

boundingBias

boundingBias: 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

delayLoadState

delayLoadState: number

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

delayLoadingFile

delayLoadingFile: Nullable<string>

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

doNotSerialize

doNotSerialize: boolean

Gets a value indicating that the geometry should not be serialized

extend

extend: object

Gets the current extend of the geometry

Type declaration

id

id: string

Gets or sets the unique ID of the geometry

onGeometryUpdated

onGeometryUpdated: function

Callback called when the geometry is updated

Type declaration

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

      • geometry: Geometry
      • Optional kind: string

      Returns void

Methods

applyToMesh

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

    Parameters

    • mesh: Mesh

      defines the mesh to apply geometry to

    Returns void

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

dispose

  • dispose(): void
  • Free all associated resources

    Returns void

getEngine

  • Gets the hosting engine

    Returns Engine

    the hosting {BABYLON.Engine}

getIndexBuffer

  • getIndexBuffer(): Nullable<WebGLBuffer>
  • Gets the index buffer

    Returns Nullable<WebGLBuffer>

    the index buffer

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

    Returns Nullable<IndicesArray>

    the index buffer array

getScene

  • Gets the hosting scene

    Returns Scene

    the hosting {BABYLON.Scene}

getTotalIndices

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

    Returns number

    the total number of indices

getTotalVertices

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

    Returns number

    the total number of vertices

getVertexBuffer

  • Gets a specific vertex buffer

    Parameters

    • kind: string

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

    Returns Nullable<VertexBuffer>

    a {BABYLON.VertexBuffer}

getVertexBuffers

  • Returns all vertex buffers

    Returns Nullable<object>

    an object holding all vertex buffers indexed by kind

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

getVerticesDataKinds

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

    Returns string[]

    a list of string containing all kinds

isDisposed

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

    Returns boolean

    true if the geometry was disposed

isReady

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

    Returns boolean

    true if the geometry is ready to be used

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

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

load

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

    Parameters

    • scene: Scene

      defines the hosting scene

    • Optional onLoaded: function

      defines a callback called when the geometry is loaded

        • (): void
        • Returns void

    Returns void

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

removeVerticesData

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

    Parameters

    • kind: string

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

    Returns void

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)

serializeVerticeData

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

    Returns any

    a JSON representation of the current geometry data

setAllVerticesData

  • setAllVerticesData(vertexData: VertexData, updatable?: boolean): void
  • Affects all gemetry 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

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

setVerticesBuffer

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

    Returns void

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

toLeftHanded

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

    Returns void

updateIndices

  • updateIndices(indices: IndicesArray, offset?: number): 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

    Returns void

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

updateVerticesDataDirectly

  • updateVerticesDataDirectly(kind: string, data: DataArray, offset: number, useBytes?: boolean): void
  • Update a specific vertex buffer This function will directly update the underlying WebGLBuffer 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 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 {BABYLON.Geometry}

Static 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 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 RandomId

  • RandomId(): string

Generated using TypeDoc