|
@@ -19234,6 +19234,187 @@ declare module "babylonjs/Particles/IParticleSystem" {
|
|
|
getScene(): Scene;
|
|
|
}
|
|
|
}
|
|
|
+declare module "babylonjs/Meshes/instancedMesh" {
|
|
|
+ import { Nullable, FloatArray, IndicesArray } from "babylonjs/types";
|
|
|
+ import { Vector3, Matrix } from "babylonjs/Maths/math.vector";
|
|
|
+ import { Camera } from "babylonjs/Cameras/camera";
|
|
|
+ import { Node } from "babylonjs/node";
|
|
|
+ import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
|
|
|
+ import { Mesh } from "babylonjs/Meshes/mesh";
|
|
|
+ import { Material } from "babylonjs/Materials/material";
|
|
|
+ import { Skeleton } from "babylonjs/Bones/skeleton";
|
|
|
+ import { Light } from "babylonjs/Lights/light";
|
|
|
+ /**
|
|
|
+ * Creates an instance based on a source mesh.
|
|
|
+ */
|
|
|
+ export class InstancedMesh extends AbstractMesh {
|
|
|
+ private _sourceMesh;
|
|
|
+ private _currentLOD;
|
|
|
+ /** @hidden */
|
|
|
+ _indexInSourceMeshInstanceArray: number;
|
|
|
+ constructor(name: string, source: Mesh);
|
|
|
+ /**
|
|
|
+ * Returns the string "InstancedMesh".
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /** Gets the list of lights affecting that mesh */
|
|
|
+ readonly lightSources: Light[];
|
|
|
+ _resyncLightSources(): void;
|
|
|
+ _resyncLighSource(light: Light): void;
|
|
|
+ _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
+ /**
|
|
|
+ * If the source mesh receives shadows
|
|
|
+ */
|
|
|
+ readonly receiveShadows: boolean;
|
|
|
+ /**
|
|
|
+ * The material of the source mesh
|
|
|
+ */
|
|
|
+ readonly material: Nullable<Material>;
|
|
|
+ /**
|
|
|
+ * Visibility of the source mesh
|
|
|
+ */
|
|
|
+ readonly visibility: number;
|
|
|
+ /**
|
|
|
+ * Skeleton of the source mesh
|
|
|
+ */
|
|
|
+ readonly skeleton: Nullable<Skeleton>;
|
|
|
+ /**
|
|
|
+ * Rendering ground id of the source mesh
|
|
|
+ */
|
|
|
+ renderingGroupId: number;
|
|
|
+ /**
|
|
|
+ * Returns the total number of vertices (integer).
|
|
|
+ */
|
|
|
+ getTotalVertices(): number;
|
|
|
+ /**
|
|
|
+ * Returns a positive integer : the total number of indices in this mesh geometry.
|
|
|
+ * @returns the numner of indices or zero if the mesh has no geometry.
|
|
|
+ */
|
|
|
+ getTotalIndices(): number;
|
|
|
+ /**
|
|
|
+ * The source mesh of the instance
|
|
|
+ */
|
|
|
+ readonly sourceMesh: Mesh;
|
|
|
+ /**
|
|
|
+ * Is this node ready to be used/rendered
|
|
|
+ * @param completeCheck defines if a complete check (including materials and lights) has to be done (false by default)
|
|
|
+ * @return {boolean} is it ready
|
|
|
+ */
|
|
|
+ isReady(completeCheck?: boolean): boolean;
|
|
|
+ /**
|
|
|
+ * Returns an array of integers or a typed array (Int32Array, Uint32Array, Uint16Array) populated with the mesh indices.
|
|
|
+ * @param kind kind of verticies to retreive (eg. positons, normals, uvs, etc.)
|
|
|
+ * @param copyWhenShared If true (default false) and and if the mesh geometry is shared among some other meshes, the returned array is a copy of the internal one.
|
|
|
+ * @returns a float array or a Float32Array of the requested kind of data : positons, normals, uvs, etc.
|
|
|
+ */
|
|
|
+ getVerticesData(kind: string, copyWhenShared?: boolean): Nullable<FloatArray>;
|
|
|
+ /**
|
|
|
+ * Sets the vertex data of the mesh geometry for the requested `kind`.
|
|
|
+ * If the mesh has no geometry, a new Geometry object is set to the mesh and then passed this vertex data.
|
|
|
+ * The `data` are either a numeric array either a Float32Array.
|
|
|
+ * The parameter `updatable` is passed as is to the underlying Geometry object constructor (if initianilly none) or updater.
|
|
|
+ * The parameter `stride` is an optional positive integer, it is usually automatically deducted from the `kind` (3 for positions or normals, 2 for UV, etc).
|
|
|
+ * Note that a new underlying VertexBuffer object is created each call.
|
|
|
+ * If the `kind` is the `PositionKind`, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
+ *
|
|
|
+ * Possible `kind` values :
|
|
|
+ * - VertexBuffer.PositionKind
|
|
|
+ * - VertexBuffer.UVKind
|
|
|
+ * - VertexBuffer.UV2Kind
|
|
|
+ * - VertexBuffer.UV3Kind
|
|
|
+ * - VertexBuffer.UV4Kind
|
|
|
+ * - VertexBuffer.UV5Kind
|
|
|
+ * - VertexBuffer.UV6Kind
|
|
|
+ * - VertexBuffer.ColorKind
|
|
|
+ * - VertexBuffer.MatricesIndicesKind
|
|
|
+ * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
+ * - VertexBuffer.MatricesWeightsKind
|
|
|
+ * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
+ *
|
|
|
+ * Returns the Mesh.
|
|
|
+ */
|
|
|
+ setVerticesData(kind: string, data: FloatArray, updatable?: boolean, stride?: number): AbstractMesh;
|
|
|
+ /**
|
|
|
+ * Updates the existing vertex data of the mesh geometry for the requested `kind`.
|
|
|
+ * If the mesh has no geometry, it is simply returned as it is.
|
|
|
+ * The `data` are either a numeric array either a Float32Array.
|
|
|
+ * No new underlying VertexBuffer object is created.
|
|
|
+ * If the `kind` is the `PositionKind` and if `updateExtends` is true, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
+ * If the parameter `makeItUnique` is true, a new global geometry is created from this positions and is set to the mesh.
|
|
|
+ *
|
|
|
+ * Possible `kind` values :
|
|
|
+ * - VertexBuffer.PositionKind
|
|
|
+ * - VertexBuffer.UVKind
|
|
|
+ * - VertexBuffer.UV2Kind
|
|
|
+ * - VertexBuffer.UV3Kind
|
|
|
+ * - VertexBuffer.UV4Kind
|
|
|
+ * - VertexBuffer.UV5Kind
|
|
|
+ * - VertexBuffer.UV6Kind
|
|
|
+ * - VertexBuffer.ColorKind
|
|
|
+ * - VertexBuffer.MatricesIndicesKind
|
|
|
+ * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
+ * - VertexBuffer.MatricesWeightsKind
|
|
|
+ * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
+ *
|
|
|
+ * Returns the Mesh.
|
|
|
+ */
|
|
|
+ updateVerticesData(kind: string, data: FloatArray, updateExtends?: boolean, makeItUnique?: boolean): Mesh;
|
|
|
+ /**
|
|
|
+ * Sets the mesh indices.
|
|
|
+ * Expects an array populated with integers or a typed array (Int32Array, Uint32Array, Uint16Array).
|
|
|
+ * If the mesh has no geometry, a new Geometry object is created and set to the mesh.
|
|
|
+ * This method creates a new index buffer each call.
|
|
|
+ * Returns the Mesh.
|
|
|
+ */
|
|
|
+ setIndices(indices: IndicesArray, totalVertices?: Nullable<number>): Mesh;
|
|
|
+ /**
|
|
|
+ * Boolean : True if the mesh owns the requested kind of data.
|
|
|
+ */
|
|
|
+ isVerticesDataPresent(kind: string): boolean;
|
|
|
+ /**
|
|
|
+ * Returns an array of indices (IndicesArray).
|
|
|
+ */
|
|
|
+ getIndices(): Nullable<IndicesArray>;
|
|
|
+ readonly _positions: Nullable<Vector3[]>;
|
|
|
+ /**
|
|
|
+ * This method recomputes and sets a new BoundingInfo to the mesh unless it is locked.
|
|
|
+ * This means the mesh underlying bounding box and sphere are recomputed.
|
|
|
+ * @param applySkeleton defines whether to apply the skeleton before computing the bounding info
|
|
|
+ * @returns the current mesh
|
|
|
+ */
|
|
|
+ refreshBoundingInfo(applySkeleton?: boolean): InstancedMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _preActivate(): InstancedMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _activate(renderId: number, intermediateRendering: boolean): boolean;
|
|
|
+ /** @hidden */
|
|
|
+ _postActivate(): void;
|
|
|
+ getWorldMatrix(): Matrix;
|
|
|
+ readonly isAnInstance: boolean;
|
|
|
+ /**
|
|
|
+ * Returns the current associated LOD AbstractMesh.
|
|
|
+ */
|
|
|
+ getLOD(camera: Camera): AbstractMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _syncSubMeshes(): InstancedMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _generatePointsArray(): boolean;
|
|
|
+ /**
|
|
|
+ * Creates a new InstancedMesh from the current mesh.
|
|
|
+ * - name (string) : the cloned mesh name
|
|
|
+ * - newParent (optional Node) : the optional Node to parent the clone to.
|
|
|
+ * - doNotCloneChildren (optional boolean, default `false`) : if `true` the model children aren't cloned.
|
|
|
+ *
|
|
|
+ * Returns the clone.
|
|
|
+ */
|
|
|
+ clone(name: string, newParent?: Nullable<Node>, doNotCloneChildren?: boolean): Nullable<AbstractMesh>;
|
|
|
+ /**
|
|
|
+ * Disposes the InstancedMesh.
|
|
|
+ * Returns nothing.
|
|
|
+ */
|
|
|
+ dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
|
|
|
+ }
|
|
|
+}
|
|
|
declare module "babylonjs/Materials/shaderMaterial" {
|
|
|
import { Scene } from "babylonjs/scene";
|
|
|
import { Matrix, Vector3, Vector2, Vector4 } from "babylonjs/Maths/math.vector";
|
|
@@ -21065,189 +21246,6 @@ declare module "babylonjs/Materials/material" {
|
|
|
static Parse(parsedMaterial: any, scene: Scene, rootUrl: string): Nullable<Material>;
|
|
|
}
|
|
|
}
|
|
|
-declare module "babylonjs/Meshes/instancedMesh" {
|
|
|
- import { Nullable, FloatArray, IndicesArray } from "babylonjs/types";
|
|
|
- import { Vector3, Matrix } from "babylonjs/Maths/math.vector";
|
|
|
- import { Camera } from "babylonjs/Cameras/camera";
|
|
|
- import { Node } from "babylonjs/node";
|
|
|
- import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
|
|
|
- import { Mesh } from "babylonjs/Meshes/mesh";
|
|
|
- import { Material } from "babylonjs/Materials/material";
|
|
|
- import { Skeleton } from "babylonjs/Bones/skeleton";
|
|
|
- import { Light } from "babylonjs/Lights/light";
|
|
|
- /**
|
|
|
- * Creates an instance based on a source mesh.
|
|
|
- */
|
|
|
- export class InstancedMesh extends AbstractMesh {
|
|
|
- private _sourceMesh;
|
|
|
- private _currentLOD;
|
|
|
- /** @hidden */
|
|
|
- _actAsRegularMesh: boolean;
|
|
|
- /** @hidden */
|
|
|
- _indexInSourceMeshInstanceArray: number;
|
|
|
- constructor(name: string, source: Mesh);
|
|
|
- /**
|
|
|
- * Returns the string "InstancedMesh".
|
|
|
- */
|
|
|
- getClassName(): string;
|
|
|
- /** Gets the list of lights affecting that mesh */
|
|
|
- readonly lightSources: Light[];
|
|
|
- _resyncLightSources(): void;
|
|
|
- _resyncLighSource(light: Light): void;
|
|
|
- _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
- /**
|
|
|
- * If the source mesh receives shadows
|
|
|
- */
|
|
|
- readonly receiveShadows: boolean;
|
|
|
- /**
|
|
|
- * The material of the source mesh
|
|
|
- */
|
|
|
- readonly material: Nullable<Material>;
|
|
|
- /**
|
|
|
- * Visibility of the source mesh
|
|
|
- */
|
|
|
- readonly visibility: number;
|
|
|
- /**
|
|
|
- * Skeleton of the source mesh
|
|
|
- */
|
|
|
- readonly skeleton: Nullable<Skeleton>;
|
|
|
- /**
|
|
|
- * Rendering ground id of the source mesh
|
|
|
- */
|
|
|
- renderingGroupId: number;
|
|
|
- /**
|
|
|
- * Returns the total number of vertices (integer).
|
|
|
- */
|
|
|
- getTotalVertices(): number;
|
|
|
- /**
|
|
|
- * Returns a positive integer : the total number of indices in this mesh geometry.
|
|
|
- * @returns the numner of indices or zero if the mesh has no geometry.
|
|
|
- */
|
|
|
- getTotalIndices(): number;
|
|
|
- /**
|
|
|
- * The source mesh of the instance
|
|
|
- */
|
|
|
- readonly sourceMesh: Mesh;
|
|
|
- /**
|
|
|
- * Is this node ready to be used/rendered
|
|
|
- * @param completeCheck defines if a complete check (including materials and lights) has to be done (false by default)
|
|
|
- * @return {boolean} is it ready
|
|
|
- */
|
|
|
- isReady(completeCheck?: boolean): boolean;
|
|
|
- /**
|
|
|
- * Returns an array of integers or a typed array (Int32Array, Uint32Array, Uint16Array) populated with the mesh indices.
|
|
|
- * @param kind kind of verticies to retreive (eg. positons, normals, uvs, etc.)
|
|
|
- * @param copyWhenShared If true (default false) and and if the mesh geometry is shared among some other meshes, the returned array is a copy of the internal one.
|
|
|
- * @returns a float array or a Float32Array of the requested kind of data : positons, normals, uvs, etc.
|
|
|
- */
|
|
|
- getVerticesData(kind: string, copyWhenShared?: boolean): Nullable<FloatArray>;
|
|
|
- /**
|
|
|
- * Sets the vertex data of the mesh geometry for the requested `kind`.
|
|
|
- * If the mesh has no geometry, a new Geometry object is set to the mesh and then passed this vertex data.
|
|
|
- * The `data` are either a numeric array either a Float32Array.
|
|
|
- * The parameter `updatable` is passed as is to the underlying Geometry object constructor (if initianilly none) or updater.
|
|
|
- * The parameter `stride` is an optional positive integer, it is usually automatically deducted from the `kind` (3 for positions or normals, 2 for UV, etc).
|
|
|
- * Note that a new underlying VertexBuffer object is created each call.
|
|
|
- * If the `kind` is the `PositionKind`, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
- *
|
|
|
- * Possible `kind` values :
|
|
|
- * - VertexBuffer.PositionKind
|
|
|
- * - VertexBuffer.UVKind
|
|
|
- * - VertexBuffer.UV2Kind
|
|
|
- * - VertexBuffer.UV3Kind
|
|
|
- * - VertexBuffer.UV4Kind
|
|
|
- * - VertexBuffer.UV5Kind
|
|
|
- * - VertexBuffer.UV6Kind
|
|
|
- * - VertexBuffer.ColorKind
|
|
|
- * - VertexBuffer.MatricesIndicesKind
|
|
|
- * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
- * - VertexBuffer.MatricesWeightsKind
|
|
|
- * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
- *
|
|
|
- * Returns the Mesh.
|
|
|
- */
|
|
|
- setVerticesData(kind: string, data: FloatArray, updatable?: boolean, stride?: number): AbstractMesh;
|
|
|
- /**
|
|
|
- * Updates the existing vertex data of the mesh geometry for the requested `kind`.
|
|
|
- * If the mesh has no geometry, it is simply returned as it is.
|
|
|
- * The `data` are either a numeric array either a Float32Array.
|
|
|
- * No new underlying VertexBuffer object is created.
|
|
|
- * If the `kind` is the `PositionKind` and if `updateExtends` is true, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
- * If the parameter `makeItUnique` is true, a new global geometry is created from this positions and is set to the mesh.
|
|
|
- *
|
|
|
- * Possible `kind` values :
|
|
|
- * - VertexBuffer.PositionKind
|
|
|
- * - VertexBuffer.UVKind
|
|
|
- * - VertexBuffer.UV2Kind
|
|
|
- * - VertexBuffer.UV3Kind
|
|
|
- * - VertexBuffer.UV4Kind
|
|
|
- * - VertexBuffer.UV5Kind
|
|
|
- * - VertexBuffer.UV6Kind
|
|
|
- * - VertexBuffer.ColorKind
|
|
|
- * - VertexBuffer.MatricesIndicesKind
|
|
|
- * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
- * - VertexBuffer.MatricesWeightsKind
|
|
|
- * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
- *
|
|
|
- * Returns the Mesh.
|
|
|
- */
|
|
|
- updateVerticesData(kind: string, data: FloatArray, updateExtends?: boolean, makeItUnique?: boolean): Mesh;
|
|
|
- /**
|
|
|
- * Sets the mesh indices.
|
|
|
- * Expects an array populated with integers or a typed array (Int32Array, Uint32Array, Uint16Array).
|
|
|
- * If the mesh has no geometry, a new Geometry object is created and set to the mesh.
|
|
|
- * This method creates a new index buffer each call.
|
|
|
- * Returns the Mesh.
|
|
|
- */
|
|
|
- setIndices(indices: IndicesArray, totalVertices?: Nullable<number>): Mesh;
|
|
|
- /**
|
|
|
- * Boolean : True if the mesh owns the requested kind of data.
|
|
|
- */
|
|
|
- isVerticesDataPresent(kind: string): boolean;
|
|
|
- /**
|
|
|
- * Returns an array of indices (IndicesArray).
|
|
|
- */
|
|
|
- getIndices(): Nullable<IndicesArray>;
|
|
|
- readonly _positions: Nullable<Vector3[]>;
|
|
|
- /**
|
|
|
- * This method recomputes and sets a new BoundingInfo to the mesh unless it is locked.
|
|
|
- * This means the mesh underlying bounding box and sphere are recomputed.
|
|
|
- * @param applySkeleton defines whether to apply the skeleton before computing the bounding info
|
|
|
- * @returns the current mesh
|
|
|
- */
|
|
|
- refreshBoundingInfo(applySkeleton?: boolean): InstancedMesh;
|
|
|
- /** @hidden */
|
|
|
- _preActivate(): InstancedMesh;
|
|
|
- /** @hidden */
|
|
|
- _activate(renderId: number, intermediateRendering: boolean): boolean;
|
|
|
- /** @hidden */
|
|
|
- _postActivate(): void;
|
|
|
- getWorldMatrix(): Matrix;
|
|
|
- readonly isAnInstance: boolean;
|
|
|
- /**
|
|
|
- * Returns the current associated LOD AbstractMesh.
|
|
|
- */
|
|
|
- getLOD(camera: Camera): AbstractMesh;
|
|
|
- /** @hidden */
|
|
|
- _syncSubMeshes(): InstancedMesh;
|
|
|
- /** @hidden */
|
|
|
- _generatePointsArray(): boolean;
|
|
|
- /**
|
|
|
- * Creates a new InstancedMesh from the current mesh.
|
|
|
- * - name (string) : the cloned mesh name
|
|
|
- * - newParent (optional Node) : the optional Node to parent the clone to.
|
|
|
- * - doNotCloneChildren (optional boolean, default `false`) : if `true` the model children aren't cloned.
|
|
|
- *
|
|
|
- * Returns the clone.
|
|
|
- */
|
|
|
- clone(name: string, newParent?: Nullable<Node>, doNotCloneChildren?: boolean): Nullable<AbstractMesh>;
|
|
|
- /**
|
|
|
- * Disposes the InstancedMesh.
|
|
|
- * Returns nothing.
|
|
|
- */
|
|
|
- dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
|
|
|
- }
|
|
|
-}
|
|
|
declare module "babylonjs/Materials/multiMaterial" {
|
|
|
import { Nullable } from "babylonjs/types";
|
|
|
import { Scene } from "babylonjs/scene";
|
|
@@ -26522,6 +26520,7 @@ declare module "babylonjs/Meshes/abstractMesh" {
|
|
|
_onlyForInstances: boolean;
|
|
|
_isActiveIntermediate: boolean;
|
|
|
_onlyForInstancesIntermediate: boolean;
|
|
|
+ _actAsRegularMesh: boolean;
|
|
|
}
|
|
|
/**
|
|
|
* Class used to store all common mesh properties
|
|
@@ -85548,6 +85547,178 @@ declare module BABYLON {
|
|
|
}
|
|
|
declare module BABYLON {
|
|
|
/**
|
|
|
+ * Creates an instance based on a source mesh.
|
|
|
+ */
|
|
|
+ export class InstancedMesh extends AbstractMesh {
|
|
|
+ private _sourceMesh;
|
|
|
+ private _currentLOD;
|
|
|
+ /** @hidden */
|
|
|
+ _indexInSourceMeshInstanceArray: number;
|
|
|
+ constructor(name: string, source: Mesh);
|
|
|
+ /**
|
|
|
+ * Returns the string "InstancedMesh".
|
|
|
+ */
|
|
|
+ getClassName(): string;
|
|
|
+ /** Gets the list of lights affecting that mesh */
|
|
|
+ readonly lightSources: Light[];
|
|
|
+ _resyncLightSources(): void;
|
|
|
+ _resyncLighSource(light: Light): void;
|
|
|
+ _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
+ /**
|
|
|
+ * If the source mesh receives shadows
|
|
|
+ */
|
|
|
+ readonly receiveShadows: boolean;
|
|
|
+ /**
|
|
|
+ * The material of the source mesh
|
|
|
+ */
|
|
|
+ readonly material: Nullable<Material>;
|
|
|
+ /**
|
|
|
+ * Visibility of the source mesh
|
|
|
+ */
|
|
|
+ readonly visibility: number;
|
|
|
+ /**
|
|
|
+ * Skeleton of the source mesh
|
|
|
+ */
|
|
|
+ readonly skeleton: Nullable<Skeleton>;
|
|
|
+ /**
|
|
|
+ * Rendering ground id of the source mesh
|
|
|
+ */
|
|
|
+ renderingGroupId: number;
|
|
|
+ /**
|
|
|
+ * Returns the total number of vertices (integer).
|
|
|
+ */
|
|
|
+ getTotalVertices(): number;
|
|
|
+ /**
|
|
|
+ * Returns a positive integer : the total number of indices in this mesh geometry.
|
|
|
+ * @returns the numner of indices or zero if the mesh has no geometry.
|
|
|
+ */
|
|
|
+ getTotalIndices(): number;
|
|
|
+ /**
|
|
|
+ * The source mesh of the instance
|
|
|
+ */
|
|
|
+ readonly sourceMesh: Mesh;
|
|
|
+ /**
|
|
|
+ * Is this node ready to be used/rendered
|
|
|
+ * @param completeCheck defines if a complete check (including materials and lights) has to be done (false by default)
|
|
|
+ * @return {boolean} is it ready
|
|
|
+ */
|
|
|
+ isReady(completeCheck?: boolean): boolean;
|
|
|
+ /**
|
|
|
+ * Returns an array of integers or a typed array (Int32Array, Uint32Array, Uint16Array) populated with the mesh indices.
|
|
|
+ * @param kind kind of verticies to retreive (eg. positons, normals, uvs, etc.)
|
|
|
+ * @param copyWhenShared If true (default false) and and if the mesh geometry is shared among some other meshes, the returned array is a copy of the internal one.
|
|
|
+ * @returns a float array or a Float32Array of the requested kind of data : positons, normals, uvs, etc.
|
|
|
+ */
|
|
|
+ getVerticesData(kind: string, copyWhenShared?: boolean): Nullable<FloatArray>;
|
|
|
+ /**
|
|
|
+ * Sets the vertex data of the mesh geometry for the requested `kind`.
|
|
|
+ * If the mesh has no geometry, a new Geometry object is set to the mesh and then passed this vertex data.
|
|
|
+ * The `data` are either a numeric array either a Float32Array.
|
|
|
+ * The parameter `updatable` is passed as is to the underlying Geometry object constructor (if initianilly none) or updater.
|
|
|
+ * The parameter `stride` is an optional positive integer, it is usually automatically deducted from the `kind` (3 for positions or normals, 2 for UV, etc).
|
|
|
+ * Note that a new underlying VertexBuffer object is created each call.
|
|
|
+ * If the `kind` is the `PositionKind`, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
+ *
|
|
|
+ * Possible `kind` values :
|
|
|
+ * - VertexBuffer.PositionKind
|
|
|
+ * - VertexBuffer.UVKind
|
|
|
+ * - VertexBuffer.UV2Kind
|
|
|
+ * - VertexBuffer.UV3Kind
|
|
|
+ * - VertexBuffer.UV4Kind
|
|
|
+ * - VertexBuffer.UV5Kind
|
|
|
+ * - VertexBuffer.UV6Kind
|
|
|
+ * - VertexBuffer.ColorKind
|
|
|
+ * - VertexBuffer.MatricesIndicesKind
|
|
|
+ * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
+ * - VertexBuffer.MatricesWeightsKind
|
|
|
+ * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
+ *
|
|
|
+ * Returns the Mesh.
|
|
|
+ */
|
|
|
+ setVerticesData(kind: string, data: FloatArray, updatable?: boolean, stride?: number): AbstractMesh;
|
|
|
+ /**
|
|
|
+ * Updates the existing vertex data of the mesh geometry for the requested `kind`.
|
|
|
+ * If the mesh has no geometry, it is simply returned as it is.
|
|
|
+ * The `data` are either a numeric array either a Float32Array.
|
|
|
+ * No new underlying VertexBuffer object is created.
|
|
|
+ * If the `kind` is the `PositionKind` and if `updateExtends` is true, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
+ * If the parameter `makeItUnique` is true, a new global geometry is created from this positions and is set to the mesh.
|
|
|
+ *
|
|
|
+ * Possible `kind` values :
|
|
|
+ * - VertexBuffer.PositionKind
|
|
|
+ * - VertexBuffer.UVKind
|
|
|
+ * - VertexBuffer.UV2Kind
|
|
|
+ * - VertexBuffer.UV3Kind
|
|
|
+ * - VertexBuffer.UV4Kind
|
|
|
+ * - VertexBuffer.UV5Kind
|
|
|
+ * - VertexBuffer.UV6Kind
|
|
|
+ * - VertexBuffer.ColorKind
|
|
|
+ * - VertexBuffer.MatricesIndicesKind
|
|
|
+ * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
+ * - VertexBuffer.MatricesWeightsKind
|
|
|
+ * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
+ *
|
|
|
+ * Returns the Mesh.
|
|
|
+ */
|
|
|
+ updateVerticesData(kind: string, data: FloatArray, updateExtends?: boolean, makeItUnique?: boolean): Mesh;
|
|
|
+ /**
|
|
|
+ * Sets the mesh indices.
|
|
|
+ * Expects an array populated with integers or a typed array (Int32Array, Uint32Array, Uint16Array).
|
|
|
+ * If the mesh has no geometry, a new Geometry object is created and set to the mesh.
|
|
|
+ * This method creates a new index buffer each call.
|
|
|
+ * Returns the Mesh.
|
|
|
+ */
|
|
|
+ setIndices(indices: IndicesArray, totalVertices?: Nullable<number>): Mesh;
|
|
|
+ /**
|
|
|
+ * Boolean : True if the mesh owns the requested kind of data.
|
|
|
+ */
|
|
|
+ isVerticesDataPresent(kind: string): boolean;
|
|
|
+ /**
|
|
|
+ * Returns an array of indices (IndicesArray).
|
|
|
+ */
|
|
|
+ getIndices(): Nullable<IndicesArray>;
|
|
|
+ readonly _positions: Nullable<Vector3[]>;
|
|
|
+ /**
|
|
|
+ * This method recomputes and sets a new BoundingInfo to the mesh unless it is locked.
|
|
|
+ * This means the mesh underlying bounding box and sphere are recomputed.
|
|
|
+ * @param applySkeleton defines whether to apply the skeleton before computing the bounding info
|
|
|
+ * @returns the current mesh
|
|
|
+ */
|
|
|
+ refreshBoundingInfo(applySkeleton?: boolean): InstancedMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _preActivate(): InstancedMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _activate(renderId: number, intermediateRendering: boolean): boolean;
|
|
|
+ /** @hidden */
|
|
|
+ _postActivate(): void;
|
|
|
+ getWorldMatrix(): Matrix;
|
|
|
+ readonly isAnInstance: boolean;
|
|
|
+ /**
|
|
|
+ * Returns the current associated LOD AbstractMesh.
|
|
|
+ */
|
|
|
+ getLOD(camera: Camera): AbstractMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _syncSubMeshes(): InstancedMesh;
|
|
|
+ /** @hidden */
|
|
|
+ _generatePointsArray(): boolean;
|
|
|
+ /**
|
|
|
+ * Creates a new InstancedMesh from the current mesh.
|
|
|
+ * - name (string) : the cloned mesh name
|
|
|
+ * - newParent (optional Node) : the optional Node to parent the clone to.
|
|
|
+ * - doNotCloneChildren (optional boolean, default `false`) : if `true` the model children aren't cloned.
|
|
|
+ *
|
|
|
+ * Returns the clone.
|
|
|
+ */
|
|
|
+ clone(name: string, newParent?: Nullable<Node>, doNotCloneChildren?: boolean): Nullable<AbstractMesh>;
|
|
|
+ /**
|
|
|
+ * Disposes the InstancedMesh.
|
|
|
+ * Returns nothing.
|
|
|
+ */
|
|
|
+ dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
|
|
|
+ }
|
|
|
+}
|
|
|
+declare module BABYLON {
|
|
|
+ /**
|
|
|
* Defines the options associated with the creation of a shader material.
|
|
|
*/
|
|
|
export interface IShaderMaterialOptions {
|
|
@@ -87284,180 +87455,6 @@ declare module BABYLON {
|
|
|
}
|
|
|
declare module BABYLON {
|
|
|
/**
|
|
|
- * Creates an instance based on a source mesh.
|
|
|
- */
|
|
|
- export class InstancedMesh extends AbstractMesh {
|
|
|
- private _sourceMesh;
|
|
|
- private _currentLOD;
|
|
|
- /** @hidden */
|
|
|
- _actAsRegularMesh: boolean;
|
|
|
- /** @hidden */
|
|
|
- _indexInSourceMeshInstanceArray: number;
|
|
|
- constructor(name: string, source: Mesh);
|
|
|
- /**
|
|
|
- * Returns the string "InstancedMesh".
|
|
|
- */
|
|
|
- getClassName(): string;
|
|
|
- /** Gets the list of lights affecting that mesh */
|
|
|
- readonly lightSources: Light[];
|
|
|
- _resyncLightSources(): void;
|
|
|
- _resyncLighSource(light: Light): void;
|
|
|
- _removeLightSource(light: Light, dispose: boolean): void;
|
|
|
- /**
|
|
|
- * If the source mesh receives shadows
|
|
|
- */
|
|
|
- readonly receiveShadows: boolean;
|
|
|
- /**
|
|
|
- * The material of the source mesh
|
|
|
- */
|
|
|
- readonly material: Nullable<Material>;
|
|
|
- /**
|
|
|
- * Visibility of the source mesh
|
|
|
- */
|
|
|
- readonly visibility: number;
|
|
|
- /**
|
|
|
- * Skeleton of the source mesh
|
|
|
- */
|
|
|
- readonly skeleton: Nullable<Skeleton>;
|
|
|
- /**
|
|
|
- * Rendering ground id of the source mesh
|
|
|
- */
|
|
|
- renderingGroupId: number;
|
|
|
- /**
|
|
|
- * Returns the total number of vertices (integer).
|
|
|
- */
|
|
|
- getTotalVertices(): number;
|
|
|
- /**
|
|
|
- * Returns a positive integer : the total number of indices in this mesh geometry.
|
|
|
- * @returns the numner of indices or zero if the mesh has no geometry.
|
|
|
- */
|
|
|
- getTotalIndices(): number;
|
|
|
- /**
|
|
|
- * The source mesh of the instance
|
|
|
- */
|
|
|
- readonly sourceMesh: Mesh;
|
|
|
- /**
|
|
|
- * Is this node ready to be used/rendered
|
|
|
- * @param completeCheck defines if a complete check (including materials and lights) has to be done (false by default)
|
|
|
- * @return {boolean} is it ready
|
|
|
- */
|
|
|
- isReady(completeCheck?: boolean): boolean;
|
|
|
- /**
|
|
|
- * Returns an array of integers or a typed array (Int32Array, Uint32Array, Uint16Array) populated with the mesh indices.
|
|
|
- * @param kind kind of verticies to retreive (eg. positons, normals, uvs, etc.)
|
|
|
- * @param copyWhenShared If true (default false) and and if the mesh geometry is shared among some other meshes, the returned array is a copy of the internal one.
|
|
|
- * @returns a float array or a Float32Array of the requested kind of data : positons, normals, uvs, etc.
|
|
|
- */
|
|
|
- getVerticesData(kind: string, copyWhenShared?: boolean): Nullable<FloatArray>;
|
|
|
- /**
|
|
|
- * Sets the vertex data of the mesh geometry for the requested `kind`.
|
|
|
- * If the mesh has no geometry, a new Geometry object is set to the mesh and then passed this vertex data.
|
|
|
- * The `data` are either a numeric array either a Float32Array.
|
|
|
- * The parameter `updatable` is passed as is to the underlying Geometry object constructor (if initianilly none) or updater.
|
|
|
- * The parameter `stride` is an optional positive integer, it is usually automatically deducted from the `kind` (3 for positions or normals, 2 for UV, etc).
|
|
|
- * Note that a new underlying VertexBuffer object is created each call.
|
|
|
- * If the `kind` is the `PositionKind`, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
- *
|
|
|
- * Possible `kind` values :
|
|
|
- * - VertexBuffer.PositionKind
|
|
|
- * - VertexBuffer.UVKind
|
|
|
- * - VertexBuffer.UV2Kind
|
|
|
- * - VertexBuffer.UV3Kind
|
|
|
- * - VertexBuffer.UV4Kind
|
|
|
- * - VertexBuffer.UV5Kind
|
|
|
- * - VertexBuffer.UV6Kind
|
|
|
- * - VertexBuffer.ColorKind
|
|
|
- * - VertexBuffer.MatricesIndicesKind
|
|
|
- * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
- * - VertexBuffer.MatricesWeightsKind
|
|
|
- * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
- *
|
|
|
- * Returns the Mesh.
|
|
|
- */
|
|
|
- setVerticesData(kind: string, data: FloatArray, updatable?: boolean, stride?: number): AbstractMesh;
|
|
|
- /**
|
|
|
- * Updates the existing vertex data of the mesh geometry for the requested `kind`.
|
|
|
- * If the mesh has no geometry, it is simply returned as it is.
|
|
|
- * The `data` are either a numeric array either a Float32Array.
|
|
|
- * No new underlying VertexBuffer object is created.
|
|
|
- * If the `kind` is the `PositionKind` and if `updateExtends` is true, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
|
|
|
- * If the parameter `makeItUnique` is true, a new global geometry is created from this positions and is set to the mesh.
|
|
|
- *
|
|
|
- * Possible `kind` values :
|
|
|
- * - VertexBuffer.PositionKind
|
|
|
- * - VertexBuffer.UVKind
|
|
|
- * - VertexBuffer.UV2Kind
|
|
|
- * - VertexBuffer.UV3Kind
|
|
|
- * - VertexBuffer.UV4Kind
|
|
|
- * - VertexBuffer.UV5Kind
|
|
|
- * - VertexBuffer.UV6Kind
|
|
|
- * - VertexBuffer.ColorKind
|
|
|
- * - VertexBuffer.MatricesIndicesKind
|
|
|
- * - VertexBuffer.MatricesIndicesExtraKind
|
|
|
- * - VertexBuffer.MatricesWeightsKind
|
|
|
- * - VertexBuffer.MatricesWeightsExtraKind
|
|
|
- *
|
|
|
- * Returns the Mesh.
|
|
|
- */
|
|
|
- updateVerticesData(kind: string, data: FloatArray, updateExtends?: boolean, makeItUnique?: boolean): Mesh;
|
|
|
- /**
|
|
|
- * Sets the mesh indices.
|
|
|
- * Expects an array populated with integers or a typed array (Int32Array, Uint32Array, Uint16Array).
|
|
|
- * If the mesh has no geometry, a new Geometry object is created and set to the mesh.
|
|
|
- * This method creates a new index buffer each call.
|
|
|
- * Returns the Mesh.
|
|
|
- */
|
|
|
- setIndices(indices: IndicesArray, totalVertices?: Nullable<number>): Mesh;
|
|
|
- /**
|
|
|
- * Boolean : True if the mesh owns the requested kind of data.
|
|
|
- */
|
|
|
- isVerticesDataPresent(kind: string): boolean;
|
|
|
- /**
|
|
|
- * Returns an array of indices (IndicesArray).
|
|
|
- */
|
|
|
- getIndices(): Nullable<IndicesArray>;
|
|
|
- readonly _positions: Nullable<Vector3[]>;
|
|
|
- /**
|
|
|
- * This method recomputes and sets a new BoundingInfo to the mesh unless it is locked.
|
|
|
- * This means the mesh underlying bounding box and sphere are recomputed.
|
|
|
- * @param applySkeleton defines whether to apply the skeleton before computing the bounding info
|
|
|
- * @returns the current mesh
|
|
|
- */
|
|
|
- refreshBoundingInfo(applySkeleton?: boolean): InstancedMesh;
|
|
|
- /** @hidden */
|
|
|
- _preActivate(): InstancedMesh;
|
|
|
- /** @hidden */
|
|
|
- _activate(renderId: number, intermediateRendering: boolean): boolean;
|
|
|
- /** @hidden */
|
|
|
- _postActivate(): void;
|
|
|
- getWorldMatrix(): Matrix;
|
|
|
- readonly isAnInstance: boolean;
|
|
|
- /**
|
|
|
- * Returns the current associated LOD AbstractMesh.
|
|
|
- */
|
|
|
- getLOD(camera: Camera): AbstractMesh;
|
|
|
- /** @hidden */
|
|
|
- _syncSubMeshes(): InstancedMesh;
|
|
|
- /** @hidden */
|
|
|
- _generatePointsArray(): boolean;
|
|
|
- /**
|
|
|
- * Creates a new InstancedMesh from the current mesh.
|
|
|
- * - name (string) : the cloned mesh name
|
|
|
- * - newParent (optional Node) : the optional Node to parent the clone to.
|
|
|
- * - doNotCloneChildren (optional boolean, default `false`) : if `true` the model children aren't cloned.
|
|
|
- *
|
|
|
- * Returns the clone.
|
|
|
- */
|
|
|
- clone(name: string, newParent?: Nullable<Node>, doNotCloneChildren?: boolean): Nullable<AbstractMesh>;
|
|
|
- /**
|
|
|
- * Disposes the InstancedMesh.
|
|
|
- * Returns nothing.
|
|
|
- */
|
|
|
- dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean): void;
|
|
|
- }
|
|
|
-}
|
|
|
-declare module BABYLON {
|
|
|
- /**
|
|
|
* A multi-material is used to apply different materials to different parts of the same object without the need of
|
|
|
* separate meshes. This can be use to improve performances.
|
|
|
* @see http://doc.babylonjs.com/how_to/multi_materials
|
|
@@ -92573,6 +92570,7 @@ declare module BABYLON {
|
|
|
_onlyForInstances: boolean;
|
|
|
_isActiveIntermediate: boolean;
|
|
|
_onlyForInstancesIntermediate: boolean;
|
|
|
+ _actAsRegularMesh: boolean;
|
|
|
}
|
|
|
/**
|
|
|
* Class used to store all common mesh properties
|