|
@@ -1516,6 +1516,244 @@ declare module BABYLON {
|
|
}
|
|
}
|
|
|
|
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
|
|
+ class Collider {
|
|
|
|
+ radius: Vector3;
|
|
|
|
+ retry: number;
|
|
|
|
+ velocity: Vector3;
|
|
|
|
+ basePoint: Vector3;
|
|
|
|
+ epsilon: number;
|
|
|
|
+ collisionFound: boolean;
|
|
|
|
+ velocityWorldLength: number;
|
|
|
|
+ basePointWorld: Vector3;
|
|
|
|
+ velocityWorld: Vector3;
|
|
|
|
+ normalizedVelocity: Vector3;
|
|
|
|
+ initialVelocity: Vector3;
|
|
|
|
+ initialPosition: Vector3;
|
|
|
|
+ nearestDistance: number;
|
|
|
|
+ intersectionPoint: Vector3;
|
|
|
|
+ collidedMesh: AbstractMesh;
|
|
|
|
+ private _collisionPoint;
|
|
|
|
+ private _planeIntersectionPoint;
|
|
|
|
+ private _tempVector;
|
|
|
|
+ private _tempVector2;
|
|
|
|
+ private _tempVector3;
|
|
|
|
+ private _tempVector4;
|
|
|
|
+ private _edge;
|
|
|
|
+ private _baseToVertex;
|
|
|
|
+ private _destinationPoint;
|
|
|
|
+ private _slidePlaneNormal;
|
|
|
|
+ private _displacementVector;
|
|
|
|
+ _initialize(source: Vector3, dir: Vector3, e: number): void;
|
|
|
|
+ _checkPointInTriangle(point: Vector3, pa: Vector3, pb: Vector3, pc: Vector3, n: Vector3): boolean;
|
|
|
|
+ _canDoCollision(sphereCenter: Vector3, sphereRadius: number, vecMin: Vector3, vecMax: Vector3): boolean;
|
|
|
|
+ _testTriangle(faceIndex: number, trianglePlaneArray: Array<Plane>, p1: Vector3, p2: Vector3, p3: Vector3, hasMaterial: boolean): void;
|
|
|
|
+ _collide(trianglePlaneArray: Array<Plane>, pts: Vector3[], indices: number[], indexStart: number, indexEnd: number, decal: number, hasMaterial: boolean): void;
|
|
|
|
+ _getResponse(pos: Vector3, vel: Vector3): void;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+declare module BABYLON {
|
|
|
|
+ var CollisionWorker: string;
|
|
|
|
+ interface ICollisionCoordinator {
|
|
|
|
+ getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
|
|
|
|
+ init(scene: Scene): void;
|
|
|
|
+ destroy(): void;
|
|
|
|
+ onMeshAdded(mesh: AbstractMesh): any;
|
|
|
|
+ onMeshUpdated(mesh: AbstractMesh): any;
|
|
|
|
+ onMeshRemoved(mesh: AbstractMesh): any;
|
|
|
|
+ onGeometryAdded(geometry: Geometry): any;
|
|
|
|
+ onGeometryUpdated(geometry: Geometry): any;
|
|
|
|
+ onGeometryDeleted(geometry: Geometry): any;
|
|
|
|
+ }
|
|
|
|
+ interface SerializedMesh {
|
|
|
|
+ id: string;
|
|
|
|
+ name: string;
|
|
|
|
+ uniqueId: number;
|
|
|
|
+ geometryId: string;
|
|
|
|
+ sphereCenter: Array<number>;
|
|
|
|
+ sphereRadius: number;
|
|
|
|
+ boxMinimum: Array<number>;
|
|
|
|
+ boxMaximum: Array<number>;
|
|
|
|
+ worldMatrixFromCache: any;
|
|
|
|
+ subMeshes: Array<SerializedSubMesh>;
|
|
|
|
+ checkCollisions: boolean;
|
|
|
|
+ }
|
|
|
|
+ interface SerializedSubMesh {
|
|
|
|
+ position: number;
|
|
|
|
+ verticesStart: number;
|
|
|
|
+ verticesCount: number;
|
|
|
|
+ indexStart: number;
|
|
|
|
+ indexCount: number;
|
|
|
|
+ hasMaterial: boolean;
|
|
|
|
+ sphereCenter: Array<number>;
|
|
|
|
+ sphereRadius: number;
|
|
|
|
+ boxMinimum: Array<number>;
|
|
|
|
+ boxMaximum: Array<number>;
|
|
|
|
+ }
|
|
|
|
+ interface SerializedGeometry {
|
|
|
|
+ id: string;
|
|
|
|
+ positions: Float32Array;
|
|
|
|
+ indices: Int32Array;
|
|
|
|
+ normals: Float32Array;
|
|
|
|
+ }
|
|
|
|
+ interface BabylonMessage {
|
|
|
|
+ taskType: WorkerTaskType;
|
|
|
|
+ payload: InitPayload | CollidePayload | UpdatePayload;
|
|
|
|
+ }
|
|
|
|
+ interface SerializedColliderToWorker {
|
|
|
|
+ position: Array<number>;
|
|
|
|
+ velocity: Array<number>;
|
|
|
|
+ radius: Array<number>;
|
|
|
|
+ }
|
|
|
|
+ enum WorkerTaskType {
|
|
|
|
+ INIT = 0,
|
|
|
|
+ UPDATE = 1,
|
|
|
|
+ COLLIDE = 2,
|
|
|
|
+ }
|
|
|
|
+ interface WorkerReply {
|
|
|
|
+ error: WorkerReplyType;
|
|
|
|
+ taskType: WorkerTaskType;
|
|
|
|
+ payload?: any;
|
|
|
|
+ }
|
|
|
|
+ interface CollisionReplyPayload {
|
|
|
|
+ newPosition: Array<number>;
|
|
|
|
+ collisionId: number;
|
|
|
|
+ collidedMeshUniqueId: number;
|
|
|
|
+ }
|
|
|
|
+ interface InitPayload {
|
|
|
|
+ }
|
|
|
|
+ interface CollidePayload {
|
|
|
|
+ collisionId: number;
|
|
|
|
+ collider: SerializedColliderToWorker;
|
|
|
|
+ maximumRetry: number;
|
|
|
|
+ excludedMeshUniqueId?: number;
|
|
|
|
+ }
|
|
|
|
+ interface UpdatePayload {
|
|
|
|
+ updatedMeshes: {
|
|
|
|
+ [n: number]: SerializedMesh;
|
|
|
|
+ };
|
|
|
|
+ updatedGeometries: {
|
|
|
|
+ [s: string]: SerializedGeometry;
|
|
|
|
+ };
|
|
|
|
+ removedMeshes: Array<number>;
|
|
|
|
+ removedGeometries: Array<string>;
|
|
|
|
+ }
|
|
|
|
+ enum WorkerReplyType {
|
|
|
|
+ SUCCESS = 0,
|
|
|
|
+ UNKNOWN_ERROR = 1,
|
|
|
|
+ }
|
|
|
|
+ class CollisionCoordinatorWorker implements ICollisionCoordinator {
|
|
|
|
+ private _scene;
|
|
|
|
+ private _scaledPosition;
|
|
|
|
+ private _scaledVelocity;
|
|
|
|
+ private _collisionsCallbackArray;
|
|
|
|
+ private _init;
|
|
|
|
+ private _runningUpdated;
|
|
|
|
+ private _runningCollisionTask;
|
|
|
|
+ private _worker;
|
|
|
|
+ private _addUpdateMeshesList;
|
|
|
|
+ private _addUpdateGeometriesList;
|
|
|
|
+ private _toRemoveMeshesArray;
|
|
|
|
+ private _toRemoveGeometryArray;
|
|
|
|
+ constructor();
|
|
|
|
+ static SerializeMesh: (mesh: AbstractMesh) => SerializedMesh;
|
|
|
|
+ static SerializeGeometry: (geometry: Geometry) => SerializedGeometry;
|
|
|
|
+ getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
|
|
|
|
+ init(scene: Scene): void;
|
|
|
|
+ destroy(): void;
|
|
|
|
+ onMeshAdded(mesh: AbstractMesh): void;
|
|
|
|
+ onMeshUpdated: (mesh: AbstractMesh) => void;
|
|
|
|
+ onMeshRemoved(mesh: AbstractMesh): void;
|
|
|
|
+ onGeometryAdded(geometry: Geometry): void;
|
|
|
|
+ onGeometryUpdated: (geometry: Geometry) => void;
|
|
|
|
+ onGeometryDeleted(geometry: Geometry): void;
|
|
|
|
+ private _afterRender;
|
|
|
|
+ private _onMessageFromWorker;
|
|
|
|
+ }
|
|
|
|
+ class CollisionCoordinatorLegacy implements ICollisionCoordinator {
|
|
|
|
+ private _scene;
|
|
|
|
+ private _scaledPosition;
|
|
|
|
+ private _scaledVelocity;
|
|
|
|
+ private _finalPosition;
|
|
|
|
+ getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
|
|
|
|
+ init(scene: Scene): void;
|
|
|
|
+ destroy(): void;
|
|
|
|
+ onMeshAdded(mesh: AbstractMesh): void;
|
|
|
|
+ onMeshUpdated(mesh: AbstractMesh): void;
|
|
|
|
+ onMeshRemoved(mesh: AbstractMesh): void;
|
|
|
|
+ onGeometryAdded(geometry: Geometry): void;
|
|
|
|
+ onGeometryUpdated(geometry: Geometry): void;
|
|
|
|
+ onGeometryDeleted(geometry: Geometry): void;
|
|
|
|
+ private _collideWithWorld(position, velocity, collider, maximumRetry, finalPosition, excludedMesh?);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+declare module BABYLON {
|
|
|
|
+ var WorkerIncluded: boolean;
|
|
|
|
+ class CollisionCache {
|
|
|
|
+ private _meshes;
|
|
|
|
+ private _geometries;
|
|
|
|
+ getMeshes(): {
|
|
|
|
+ [n: number]: SerializedMesh;
|
|
|
|
+ };
|
|
|
|
+ getGeometries(): {
|
|
|
|
+ [s: number]: SerializedGeometry;
|
|
|
|
+ };
|
|
|
|
+ getMesh(id: any): SerializedMesh;
|
|
|
|
+ addMesh(mesh: SerializedMesh): void;
|
|
|
|
+ getGeometry(id: string): SerializedGeometry;
|
|
|
|
+ addGeometry(geometry: SerializedGeometry): void;
|
|
|
|
+ }
|
|
|
|
+ class CollideWorker {
|
|
|
|
+ collider: Collider;
|
|
|
|
+ private _collisionCache;
|
|
|
|
+ private finalPosition;
|
|
|
|
+ private collisionsScalingMatrix;
|
|
|
|
+ private collisionTranformationMatrix;
|
|
|
|
+ constructor(collider: Collider, _collisionCache: CollisionCache, finalPosition: Vector3);
|
|
|
|
+ collideWithWorld(position: Vector3, velocity: Vector3, maximumRetry: number, excludedMeshUniqueId?: number): void;
|
|
|
|
+ private checkCollision(mesh);
|
|
|
|
+ private processCollisionsForSubMeshes(transformMatrix, mesh);
|
|
|
|
+ private collideForSubMesh(subMesh, transformMatrix, meshGeometry);
|
|
|
|
+ private checkSubmeshCollision(subMesh);
|
|
|
|
+ }
|
|
|
|
+ interface ICollisionDetector {
|
|
|
|
+ onInit(payload: InitPayload): void;
|
|
|
|
+ onUpdate(payload: UpdatePayload): void;
|
|
|
|
+ onCollision(payload: CollidePayload): void;
|
|
|
|
+ }
|
|
|
|
+ class CollisionDetectorTransferable implements ICollisionDetector {
|
|
|
|
+ private _collisionCache;
|
|
|
|
+ onInit(payload: InitPayload): void;
|
|
|
|
+ onUpdate(payload: UpdatePayload): void;
|
|
|
|
+ onCollision(payload: CollidePayload): void;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+declare module BABYLON {
|
|
|
|
+ class IntersectionInfo {
|
|
|
|
+ bu: number;
|
|
|
|
+ bv: number;
|
|
|
|
+ distance: number;
|
|
|
|
+ faceId: number;
|
|
|
|
+ subMeshId: number;
|
|
|
|
+ constructor(bu: number, bv: number, distance: number);
|
|
|
|
+ }
|
|
|
|
+ class PickingInfo {
|
|
|
|
+ hit: boolean;
|
|
|
|
+ distance: number;
|
|
|
|
+ pickedPoint: Vector3;
|
|
|
|
+ pickedMesh: AbstractMesh;
|
|
|
|
+ bu: number;
|
|
|
|
+ bv: number;
|
|
|
|
+ faceId: number;
|
|
|
|
+ subMeshId: number;
|
|
|
|
+ getNormal(useWorldCoordinates?: boolean, useVerticesNormals?: boolean): Vector3;
|
|
|
|
+ getTextureCoordinates(): Vector2;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+declare module BABYLON {
|
|
class BoundingBox {
|
|
class BoundingBox {
|
|
minimum: Vector3;
|
|
minimum: Vector3;
|
|
maximum: Vector3;
|
|
maximum: Vector3;
|
|
@@ -1576,62 +1814,6 @@ declare module BABYLON {
|
|
}
|
|
}
|
|
|
|
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
- class DebugLayer {
|
|
|
|
- private _scene;
|
|
|
|
- private _camera;
|
|
|
|
- private _transformationMatrix;
|
|
|
|
- private _enabled;
|
|
|
|
- private _labelsEnabled;
|
|
|
|
- private _displayStatistics;
|
|
|
|
- private _displayTree;
|
|
|
|
- private _displayLogs;
|
|
|
|
- private _globalDiv;
|
|
|
|
- private _statsDiv;
|
|
|
|
- private _statsSubsetDiv;
|
|
|
|
- private _optionsDiv;
|
|
|
|
- private _optionsSubsetDiv;
|
|
|
|
- private _logDiv;
|
|
|
|
- private _logSubsetDiv;
|
|
|
|
- private _treeDiv;
|
|
|
|
- private _treeSubsetDiv;
|
|
|
|
- private _drawingCanvas;
|
|
|
|
- private _drawingContext;
|
|
|
|
- private _syncPositions;
|
|
|
|
- private _syncData;
|
|
|
|
- private _syncUI;
|
|
|
|
- private _onCanvasClick;
|
|
|
|
- private _clickPosition;
|
|
|
|
- private _ratio;
|
|
|
|
- private _identityMatrix;
|
|
|
|
- private _showUI;
|
|
|
|
- private _needToRefreshMeshesTree;
|
|
|
|
- shouldDisplayLabel: (node: Node) => boolean;
|
|
|
|
- shouldDisplayAxis: (mesh: Mesh) => boolean;
|
|
|
|
- axisRatio: number;
|
|
|
|
- accentColor: string;
|
|
|
|
- customStatsFunction: () => string;
|
|
|
|
- constructor(scene: Scene);
|
|
|
|
- private _refreshMeshesTreeContent();
|
|
|
|
- private _renderSingleAxis(zero, unit, unitText, label, color);
|
|
|
|
- private _renderAxis(projectedPosition, mesh, globalViewport);
|
|
|
|
- private _renderLabel(text, projectedPosition, labelOffset, onClick, getFillStyle);
|
|
|
|
- private _isClickInsideRect(x, y, width, height);
|
|
|
|
- isVisible(): boolean;
|
|
|
|
- hide(): void;
|
|
|
|
- show(showUI?: boolean, camera?: Camera): void;
|
|
|
|
- private _clearLabels();
|
|
|
|
- private _generateheader(root, text);
|
|
|
|
- private _generateTexBox(root, title, color);
|
|
|
|
- private _generateAdvancedCheckBox(root, leftTitle, rightTitle, initialState, task, tag?);
|
|
|
|
- private _generateCheckBox(root, title, initialState, task, tag?);
|
|
|
|
- private _generateButton(root, title, task, tag?);
|
|
|
|
- private _generateRadio(root, title, name, initialState, task, tag?);
|
|
|
|
- private _generateDOMelements();
|
|
|
|
- private _displayStats();
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-declare module BABYLON {
|
|
|
|
class ArcRotateCamera extends TargetCamera {
|
|
class ArcRotateCamera extends TargetCamera {
|
|
alpha: number;
|
|
alpha: number;
|
|
beta: number;
|
|
beta: number;
|
|
@@ -2019,259 +2201,149 @@ declare module BABYLON {
|
|
}
|
|
}
|
|
|
|
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
- class Layer {
|
|
|
|
- name: string;
|
|
|
|
- texture: Texture;
|
|
|
|
- isBackground: boolean;
|
|
|
|
- color: Color4;
|
|
|
|
- onDispose: () => void;
|
|
|
|
- private _scene;
|
|
|
|
- private _vertexDeclaration;
|
|
|
|
- private _vertexStrideSize;
|
|
|
|
- private _vertexBuffer;
|
|
|
|
- private _indexBuffer;
|
|
|
|
- private _effect;
|
|
|
|
- constructor(name: string, imgUrl: string, scene: Scene, isBackground?: boolean, color?: Color4);
|
|
|
|
- render(): void;
|
|
|
|
- dispose(): void;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-declare module BABYLON {
|
|
|
|
- class Collider {
|
|
|
|
- radius: Vector3;
|
|
|
|
- retry: number;
|
|
|
|
- velocity: Vector3;
|
|
|
|
- basePoint: Vector3;
|
|
|
|
- epsilon: number;
|
|
|
|
- collisionFound: boolean;
|
|
|
|
- velocityWorldLength: number;
|
|
|
|
- basePointWorld: Vector3;
|
|
|
|
- velocityWorld: Vector3;
|
|
|
|
- normalizedVelocity: Vector3;
|
|
|
|
- initialVelocity: Vector3;
|
|
|
|
- initialPosition: Vector3;
|
|
|
|
- nearestDistance: number;
|
|
|
|
- intersectionPoint: Vector3;
|
|
|
|
- collidedMesh: AbstractMesh;
|
|
|
|
- private _collisionPoint;
|
|
|
|
- private _planeIntersectionPoint;
|
|
|
|
- private _tempVector;
|
|
|
|
- private _tempVector2;
|
|
|
|
- private _tempVector3;
|
|
|
|
- private _tempVector4;
|
|
|
|
- private _edge;
|
|
|
|
- private _baseToVertex;
|
|
|
|
- private _destinationPoint;
|
|
|
|
- private _slidePlaneNormal;
|
|
|
|
- private _displacementVector;
|
|
|
|
- _initialize(source: Vector3, dir: Vector3, e: number): void;
|
|
|
|
- _checkPointInTriangle(point: Vector3, pa: Vector3, pb: Vector3, pc: Vector3, n: Vector3): boolean;
|
|
|
|
- _canDoCollision(sphereCenter: Vector3, sphereRadius: number, vecMin: Vector3, vecMax: Vector3): boolean;
|
|
|
|
- _testTriangle(faceIndex: number, trianglePlaneArray: Array<Plane>, p1: Vector3, p2: Vector3, p3: Vector3, hasMaterial: boolean): void;
|
|
|
|
- _collide(trianglePlaneArray: Array<Plane>, pts: Vector3[], indices: number[], indexStart: number, indexEnd: number, decal: number, hasMaterial: boolean): void;
|
|
|
|
- _getResponse(pos: Vector3, vel: Vector3): void;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-declare module BABYLON {
|
|
|
|
- var CollisionWorker: string;
|
|
|
|
- interface ICollisionCoordinator {
|
|
|
|
- getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
|
|
|
|
- init(scene: Scene): void;
|
|
|
|
- destroy(): void;
|
|
|
|
- onMeshAdded(mesh: AbstractMesh): any;
|
|
|
|
- onMeshUpdated(mesh: AbstractMesh): any;
|
|
|
|
- onMeshRemoved(mesh: AbstractMesh): any;
|
|
|
|
- onGeometryAdded(geometry: Geometry): any;
|
|
|
|
- onGeometryUpdated(geometry: Geometry): any;
|
|
|
|
- onGeometryDeleted(geometry: Geometry): any;
|
|
|
|
- }
|
|
|
|
- interface SerializedMesh {
|
|
|
|
- id: string;
|
|
|
|
- name: string;
|
|
|
|
- uniqueId: number;
|
|
|
|
- geometryId: string;
|
|
|
|
- sphereCenter: Array<number>;
|
|
|
|
- sphereRadius: number;
|
|
|
|
- boxMinimum: Array<number>;
|
|
|
|
- boxMaximum: Array<number>;
|
|
|
|
- worldMatrixFromCache: any;
|
|
|
|
- subMeshes: Array<SerializedSubMesh>;
|
|
|
|
- checkCollisions: boolean;
|
|
|
|
- }
|
|
|
|
- interface SerializedSubMesh {
|
|
|
|
- position: number;
|
|
|
|
- verticesStart: number;
|
|
|
|
- verticesCount: number;
|
|
|
|
- indexStart: number;
|
|
|
|
- indexCount: number;
|
|
|
|
- hasMaterial: boolean;
|
|
|
|
- sphereCenter: Array<number>;
|
|
|
|
- sphereRadius: number;
|
|
|
|
- boxMinimum: Array<number>;
|
|
|
|
- boxMaximum: Array<number>;
|
|
|
|
- }
|
|
|
|
- interface SerializedGeometry {
|
|
|
|
- id: string;
|
|
|
|
- positions: Float32Array;
|
|
|
|
- indices: Int32Array;
|
|
|
|
- normals: Float32Array;
|
|
|
|
- }
|
|
|
|
- interface BabylonMessage {
|
|
|
|
- taskType: WorkerTaskType;
|
|
|
|
- payload: InitPayload | CollidePayload | UpdatePayload;
|
|
|
|
- }
|
|
|
|
- interface SerializedColliderToWorker {
|
|
|
|
- position: Array<number>;
|
|
|
|
- velocity: Array<number>;
|
|
|
|
- radius: Array<number>;
|
|
|
|
- }
|
|
|
|
- enum WorkerTaskType {
|
|
|
|
- INIT = 0,
|
|
|
|
- UPDATE = 1,
|
|
|
|
- COLLIDE = 2,
|
|
|
|
- }
|
|
|
|
- interface WorkerReply {
|
|
|
|
- error: WorkerReplyType;
|
|
|
|
- taskType: WorkerTaskType;
|
|
|
|
- payload?: any;
|
|
|
|
- }
|
|
|
|
- interface CollisionReplyPayload {
|
|
|
|
- newPosition: Array<number>;
|
|
|
|
- collisionId: number;
|
|
|
|
- collidedMeshUniqueId: number;
|
|
|
|
- }
|
|
|
|
- interface InitPayload {
|
|
|
|
- }
|
|
|
|
- interface CollidePayload {
|
|
|
|
- collisionId: number;
|
|
|
|
- collider: SerializedColliderToWorker;
|
|
|
|
- maximumRetry: number;
|
|
|
|
- excludedMeshUniqueId?: number;
|
|
|
|
- }
|
|
|
|
- interface UpdatePayload {
|
|
|
|
- updatedMeshes: {
|
|
|
|
- [n: number]: SerializedMesh;
|
|
|
|
- };
|
|
|
|
- updatedGeometries: {
|
|
|
|
- [s: string]: SerializedGeometry;
|
|
|
|
- };
|
|
|
|
- removedMeshes: Array<number>;
|
|
|
|
- removedGeometries: Array<string>;
|
|
|
|
- }
|
|
|
|
- enum WorkerReplyType {
|
|
|
|
- SUCCESS = 0,
|
|
|
|
- UNKNOWN_ERROR = 1,
|
|
|
|
- }
|
|
|
|
- class CollisionCoordinatorWorker implements ICollisionCoordinator {
|
|
|
|
|
|
+ class DebugLayer {
|
|
private _scene;
|
|
private _scene;
|
|
- private _scaledPosition;
|
|
|
|
- private _scaledVelocity;
|
|
|
|
- private _collisionsCallbackArray;
|
|
|
|
- private _init;
|
|
|
|
- private _runningUpdated;
|
|
|
|
- private _runningCollisionTask;
|
|
|
|
- private _worker;
|
|
|
|
- private _addUpdateMeshesList;
|
|
|
|
- private _addUpdateGeometriesList;
|
|
|
|
- private _toRemoveMeshesArray;
|
|
|
|
- private _toRemoveGeometryArray;
|
|
|
|
- constructor();
|
|
|
|
- static SerializeMesh: (mesh: AbstractMesh) => SerializedMesh;
|
|
|
|
- static SerializeGeometry: (geometry: Geometry) => SerializedGeometry;
|
|
|
|
- getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
|
|
|
|
- init(scene: Scene): void;
|
|
|
|
- destroy(): void;
|
|
|
|
- onMeshAdded(mesh: AbstractMesh): void;
|
|
|
|
- onMeshUpdated: (mesh: AbstractMesh) => void;
|
|
|
|
- onMeshRemoved(mesh: AbstractMesh): void;
|
|
|
|
- onGeometryAdded(geometry: Geometry): void;
|
|
|
|
- onGeometryUpdated: (geometry: Geometry) => void;
|
|
|
|
- onGeometryDeleted(geometry: Geometry): void;
|
|
|
|
- private _afterRender;
|
|
|
|
- private _onMessageFromWorker;
|
|
|
|
|
|
+ private _camera;
|
|
|
|
+ private _transformationMatrix;
|
|
|
|
+ private _enabled;
|
|
|
|
+ private _labelsEnabled;
|
|
|
|
+ private _displayStatistics;
|
|
|
|
+ private _displayTree;
|
|
|
|
+ private _displayLogs;
|
|
|
|
+ private _globalDiv;
|
|
|
|
+ private _statsDiv;
|
|
|
|
+ private _statsSubsetDiv;
|
|
|
|
+ private _optionsDiv;
|
|
|
|
+ private _optionsSubsetDiv;
|
|
|
|
+ private _logDiv;
|
|
|
|
+ private _logSubsetDiv;
|
|
|
|
+ private _treeDiv;
|
|
|
|
+ private _treeSubsetDiv;
|
|
|
|
+ private _drawingCanvas;
|
|
|
|
+ private _drawingContext;
|
|
|
|
+ private _syncPositions;
|
|
|
|
+ private _syncData;
|
|
|
|
+ private _syncUI;
|
|
|
|
+ private _onCanvasClick;
|
|
|
|
+ private _clickPosition;
|
|
|
|
+ private _ratio;
|
|
|
|
+ private _identityMatrix;
|
|
|
|
+ private _showUI;
|
|
|
|
+ private _needToRefreshMeshesTree;
|
|
|
|
+ shouldDisplayLabel: (node: Node) => boolean;
|
|
|
|
+ shouldDisplayAxis: (mesh: Mesh) => boolean;
|
|
|
|
+ axisRatio: number;
|
|
|
|
+ accentColor: string;
|
|
|
|
+ customStatsFunction: () => string;
|
|
|
|
+ constructor(scene: Scene);
|
|
|
|
+ private _refreshMeshesTreeContent();
|
|
|
|
+ private _renderSingleAxis(zero, unit, unitText, label, color);
|
|
|
|
+ private _renderAxis(projectedPosition, mesh, globalViewport);
|
|
|
|
+ private _renderLabel(text, projectedPosition, labelOffset, onClick, getFillStyle);
|
|
|
|
+ private _isClickInsideRect(x, y, width, height);
|
|
|
|
+ isVisible(): boolean;
|
|
|
|
+ hide(): void;
|
|
|
|
+ show(showUI?: boolean, camera?: Camera): void;
|
|
|
|
+ private _clearLabels();
|
|
|
|
+ private _generateheader(root, text);
|
|
|
|
+ private _generateTexBox(root, title, color);
|
|
|
|
+ private _generateAdvancedCheckBox(root, leftTitle, rightTitle, initialState, task, tag?);
|
|
|
|
+ private _generateCheckBox(root, title, initialState, task, tag?);
|
|
|
|
+ private _generateButton(root, title, task, tag?);
|
|
|
|
+ private _generateRadio(root, title, name, initialState, task, tag?);
|
|
|
|
+ private _generateDOMelements();
|
|
|
|
+ private _displayStats();
|
|
}
|
|
}
|
|
- class CollisionCoordinatorLegacy implements ICollisionCoordinator {
|
|
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+declare module BABYLON {
|
|
|
|
+ class Layer {
|
|
|
|
+ name: string;
|
|
|
|
+ texture: Texture;
|
|
|
|
+ isBackground: boolean;
|
|
|
|
+ color: Color4;
|
|
|
|
+ onDispose: () => void;
|
|
private _scene;
|
|
private _scene;
|
|
- private _scaledPosition;
|
|
|
|
- private _scaledVelocity;
|
|
|
|
- private _finalPosition;
|
|
|
|
- getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
|
|
|
|
- init(scene: Scene): void;
|
|
|
|
- destroy(): void;
|
|
|
|
- onMeshAdded(mesh: AbstractMesh): void;
|
|
|
|
- onMeshUpdated(mesh: AbstractMesh): void;
|
|
|
|
- onMeshRemoved(mesh: AbstractMesh): void;
|
|
|
|
- onGeometryAdded(geometry: Geometry): void;
|
|
|
|
- onGeometryUpdated(geometry: Geometry): void;
|
|
|
|
- onGeometryDeleted(geometry: Geometry): void;
|
|
|
|
- private _collideWithWorld(position, velocity, collider, maximumRetry, finalPosition, excludedMesh?);
|
|
|
|
|
|
+ private _vertexDeclaration;
|
|
|
|
+ private _vertexStrideSize;
|
|
|
|
+ private _vertexBuffer;
|
|
|
|
+ private _indexBuffer;
|
|
|
|
+ private _effect;
|
|
|
|
+ constructor(name: string, imgUrl: string, scene: Scene, isBackground?: boolean, color?: Color4);
|
|
|
|
+ render(): void;
|
|
|
|
+ dispose(): void;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
- var WorkerIncluded: boolean;
|
|
|
|
- class CollisionCache {
|
|
|
|
- private _meshes;
|
|
|
|
- private _geometries;
|
|
|
|
- getMeshes(): {
|
|
|
|
- [n: number]: SerializedMesh;
|
|
|
|
- };
|
|
|
|
- getGeometries(): {
|
|
|
|
- [s: number]: SerializedGeometry;
|
|
|
|
- };
|
|
|
|
- getMesh(id: any): SerializedMesh;
|
|
|
|
- addMesh(mesh: SerializedMesh): void;
|
|
|
|
- getGeometry(id: string): SerializedGeometry;
|
|
|
|
- addGeometry(geometry: SerializedGeometry): void;
|
|
|
|
- }
|
|
|
|
- class CollideWorker {
|
|
|
|
- collider: Collider;
|
|
|
|
- private _collisionCache;
|
|
|
|
- private finalPosition;
|
|
|
|
- private collisionsScalingMatrix;
|
|
|
|
- private collisionTranformationMatrix;
|
|
|
|
- constructor(collider: Collider, _collisionCache: CollisionCache, finalPosition: Vector3);
|
|
|
|
- collideWithWorld(position: Vector3, velocity: Vector3, maximumRetry: number, excludedMeshUniqueId?: number): void;
|
|
|
|
- private checkCollision(mesh);
|
|
|
|
- private processCollisionsForSubMeshes(transformMatrix, mesh);
|
|
|
|
- private collideForSubMesh(subMesh, transformMatrix, meshGeometry);
|
|
|
|
- private checkSubmeshCollision(subMesh);
|
|
|
|
- }
|
|
|
|
- interface ICollisionDetector {
|
|
|
|
- onInit(payload: InitPayload): void;
|
|
|
|
- onUpdate(payload: UpdatePayload): void;
|
|
|
|
- onCollision(payload: CollidePayload): void;
|
|
|
|
|
|
+ class LensFlare {
|
|
|
|
+ size: number;
|
|
|
|
+ position: number;
|
|
|
|
+ color: Color3;
|
|
|
|
+ texture: Texture;
|
|
|
|
+ private _system;
|
|
|
|
+ constructor(size: number, position: number, color: any, imgUrl: string, system: LensFlareSystem);
|
|
|
|
+ dispose: () => void;
|
|
}
|
|
}
|
|
- class CollisionDetectorTransferable implements ICollisionDetector {
|
|
|
|
- private _collisionCache;
|
|
|
|
- onInit(payload: InitPayload): void;
|
|
|
|
- onUpdate(payload: UpdatePayload): void;
|
|
|
|
- onCollision(payload: CollidePayload): void;
|
|
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+declare module BABYLON {
|
|
|
|
+ class LensFlareSystem {
|
|
|
|
+ name: string;
|
|
|
|
+ lensFlares: LensFlare[];
|
|
|
|
+ borderLimit: number;
|
|
|
|
+ meshesSelectionPredicate: (mesh: Mesh) => boolean;
|
|
|
|
+ private _scene;
|
|
|
|
+ private _emitter;
|
|
|
|
+ private _vertexDeclaration;
|
|
|
|
+ private _vertexStrideSize;
|
|
|
|
+ private _vertexBuffer;
|
|
|
|
+ private _indexBuffer;
|
|
|
|
+ private _effect;
|
|
|
|
+ private _positionX;
|
|
|
|
+ private _positionY;
|
|
|
|
+ private _isEnabled;
|
|
|
|
+ constructor(name: string, emitter: any, scene: Scene);
|
|
|
|
+ isEnabled: boolean;
|
|
|
|
+ getScene(): Scene;
|
|
|
|
+ getEmitter(): any;
|
|
|
|
+ getEmitterPosition(): Vector3;
|
|
|
|
+ computeEffectivePosition(globalViewport: Viewport): boolean;
|
|
|
|
+ _isVisible(): boolean;
|
|
|
|
+ render(): boolean;
|
|
|
|
+ dispose(): void;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
- class IntersectionInfo {
|
|
|
|
- bu: number;
|
|
|
|
- bv: number;
|
|
|
|
- distance: number;
|
|
|
|
- faceId: number;
|
|
|
|
- subMeshId: number;
|
|
|
|
- constructor(bu: number, bv: number, distance: number);
|
|
|
|
|
|
+ interface ISceneLoaderPlugin {
|
|
|
|
+ extensions: string;
|
|
|
|
+ importMesh: (meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => boolean;
|
|
|
|
+ load: (scene: Scene, data: string, rootUrl: string) => boolean;
|
|
}
|
|
}
|
|
- class PickingInfo {
|
|
|
|
- hit: boolean;
|
|
|
|
- distance: number;
|
|
|
|
- pickedPoint: Vector3;
|
|
|
|
- pickedMesh: AbstractMesh;
|
|
|
|
- bu: number;
|
|
|
|
- bv: number;
|
|
|
|
- faceId: number;
|
|
|
|
- subMeshId: number;
|
|
|
|
- getNormal(useWorldCoordinates?: boolean, useVerticesNormals?: boolean): Vector3;
|
|
|
|
- getTextureCoordinates(): Vector2;
|
|
|
|
|
|
+ class SceneLoader {
|
|
|
|
+ private static _ForceFullSceneLoadingForIncremental;
|
|
|
|
+ private static _ShowLoadingScreen;
|
|
|
|
+ static ForceFullSceneLoadingForIncremental: boolean;
|
|
|
|
+ static ShowLoadingScreen: boolean;
|
|
|
|
+ private static _registeredPlugins;
|
|
|
|
+ private static _getPluginForFilename(sceneFilename);
|
|
|
|
+ static RegisterPlugin(plugin: ISceneLoaderPlugin): void;
|
|
|
|
+ static ImportMesh(meshesNames: any, rootUrl: string, sceneFilename: string, scene: Scene, onsuccess?: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, progressCallBack?: () => void, onerror?: (scene: Scene, e: any) => void): void;
|
|
|
|
+ /**
|
|
|
|
+ * Load a scene
|
|
|
|
+ * @param rootUrl a string that defines the root url for scene and resources
|
|
|
|
+ * @param sceneFilename a string that defines the name of the scene file. can start with "data:" following by the stringified version of the scene
|
|
|
|
+ * @param engine is the instance of BABYLON.Engine to use to create the scene
|
|
|
|
+ */
|
|
|
|
+ static Load(rootUrl: string, sceneFilename: any, engine: Engine, onsuccess?: (scene: Scene) => void, progressCallBack?: any, onerror?: (scene: Scene) => void): void;
|
|
|
|
+ /**
|
|
|
|
+ * Append a scene
|
|
|
|
+ * @param rootUrl a string that defines the root url for scene and resources
|
|
|
|
+ * @param sceneFilename a string that defines the name of the scene file. can start with "data:" following by the stringified version of the scene
|
|
|
|
+ * @param scene is the instance of BABYLON.Scene to append to
|
|
|
|
+ */
|
|
|
|
+ static Append(rootUrl: string, sceneFilename: any, scene: Scene, onsuccess?: (scene: Scene) => void, progressCallBack?: any, onerror?: (scene: Scene) => void): void;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2380,78 +2452,6 @@ declare module BABYLON {
|
|
}
|
|
}
|
|
|
|
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
- class LensFlare {
|
|
|
|
- size: number;
|
|
|
|
- position: number;
|
|
|
|
- color: Color3;
|
|
|
|
- texture: Texture;
|
|
|
|
- private _system;
|
|
|
|
- constructor(size: number, position: number, color: any, imgUrl: string, system: LensFlareSystem);
|
|
|
|
- dispose: () => void;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-declare module BABYLON {
|
|
|
|
- class LensFlareSystem {
|
|
|
|
- name: string;
|
|
|
|
- lensFlares: LensFlare[];
|
|
|
|
- borderLimit: number;
|
|
|
|
- meshesSelectionPredicate: (mesh: Mesh) => boolean;
|
|
|
|
- private _scene;
|
|
|
|
- private _emitter;
|
|
|
|
- private _vertexDeclaration;
|
|
|
|
- private _vertexStrideSize;
|
|
|
|
- private _vertexBuffer;
|
|
|
|
- private _indexBuffer;
|
|
|
|
- private _effect;
|
|
|
|
- private _positionX;
|
|
|
|
- private _positionY;
|
|
|
|
- private _isEnabled;
|
|
|
|
- constructor(name: string, emitter: any, scene: Scene);
|
|
|
|
- isEnabled: boolean;
|
|
|
|
- getScene(): Scene;
|
|
|
|
- getEmitter(): any;
|
|
|
|
- getEmitterPosition(): Vector3;
|
|
|
|
- computeEffectivePosition(globalViewport: Viewport): boolean;
|
|
|
|
- _isVisible(): boolean;
|
|
|
|
- render(): boolean;
|
|
|
|
- dispose(): void;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-declare module BABYLON {
|
|
|
|
- interface ISceneLoaderPlugin {
|
|
|
|
- extensions: string;
|
|
|
|
- importMesh: (meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => boolean;
|
|
|
|
- load: (scene: Scene, data: string, rootUrl: string) => boolean;
|
|
|
|
- }
|
|
|
|
- class SceneLoader {
|
|
|
|
- private static _ForceFullSceneLoadingForIncremental;
|
|
|
|
- private static _ShowLoadingScreen;
|
|
|
|
- static ForceFullSceneLoadingForIncremental: boolean;
|
|
|
|
- static ShowLoadingScreen: boolean;
|
|
|
|
- private static _registeredPlugins;
|
|
|
|
- private static _getPluginForFilename(sceneFilename);
|
|
|
|
- static RegisterPlugin(plugin: ISceneLoaderPlugin): void;
|
|
|
|
- static ImportMesh(meshesNames: any, rootUrl: string, sceneFilename: string, scene: Scene, onsuccess?: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, progressCallBack?: () => void, onerror?: (scene: Scene, e: any) => void): void;
|
|
|
|
- /**
|
|
|
|
- * Load a scene
|
|
|
|
- * @param rootUrl a string that defines the root url for scene and resources
|
|
|
|
- * @param sceneFilename a string that defines the name of the scene file. can start with "data:" following by the stringified version of the scene
|
|
|
|
- * @param engine is the instance of BABYLON.Engine to use to create the scene
|
|
|
|
- */
|
|
|
|
- static Load(rootUrl: string, sceneFilename: any, engine: Engine, onsuccess?: (scene: Scene) => void, progressCallBack?: any, onerror?: (scene: Scene) => void): void;
|
|
|
|
- /**
|
|
|
|
- * Append a scene
|
|
|
|
- * @param rootUrl a string that defines the root url for scene and resources
|
|
|
|
- * @param sceneFilename a string that defines the name of the scene file. can start with "data:" following by the stringified version of the scene
|
|
|
|
- * @param scene is the instance of BABYLON.Scene to append to
|
|
|
|
- */
|
|
|
|
- static Append(rootUrl: string, sceneFilename: any, scene: Scene, onsuccess?: (scene: Scene) => void, progressCallBack?: any, onerror?: (scene: Scene) => void): void;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-declare module BABYLON {
|
|
|
|
class EffectFallbacks {
|
|
class EffectFallbacks {
|
|
private _defines;
|
|
private _defines;
|
|
private _currentRank;
|
|
private _currentRank;
|
|
@@ -2537,10 +2537,12 @@ declare module BABYLON {
|
|
onBind: (material: Material, mesh: Mesh) => void;
|
|
onBind: (material: Material, mesh: Mesh) => void;
|
|
getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
|
|
getRenderTargetTextures: () => SmartArray<RenderTargetTexture>;
|
|
alphaMode: number;
|
|
alphaMode: number;
|
|
|
|
+ disableDepthWrite: boolean;
|
|
_effect: Effect;
|
|
_effect: Effect;
|
|
_wasPreviouslyReady: boolean;
|
|
_wasPreviouslyReady: boolean;
|
|
private _scene;
|
|
private _scene;
|
|
private _fillMode;
|
|
private _fillMode;
|
|
|
|
+ private _cachedDepthWriteState;
|
|
pointSize: number;
|
|
pointSize: number;
|
|
zOffset: number;
|
|
zOffset: number;
|
|
wireframe: boolean;
|
|
wireframe: boolean;
|
|
@@ -5614,6 +5616,9 @@ declare module BABYLON {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+declare module BABYLON.Internals {
|
|
|
|
+}
|
|
|
|
+
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
class ShadowGenerator {
|
|
class ShadowGenerator {
|
|
private static _FILTER_NONE;
|
|
private static _FILTER_NONE;
|
|
@@ -5667,9 +5672,6 @@ declare module BABYLON {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-declare module BABYLON.Internals {
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
declare module BABYLON {
|
|
declare module BABYLON {
|
|
class BaseTexture {
|
|
class BaseTexture {
|
|
name: string;
|
|
name: string;
|