From 6868472c0b0c5afd03a09898f4c145810afc4423 Mon Sep 17 00:00:00 2001 From: Alex-MSFT Date: Thu, 13 Aug 2020 16:11:54 -0700 Subject: [PATCH] Enable hit testing against different entityTypes in BabylonNative (#364) * Implement hit test filtering on entity types for Android * Move getHitPose into hitTestQualified call. * Make bitfield enum more explicit. * iOS support for raycast query filtering. * Update stub method for OpenXR * Cleanup * Apply suggestions from code review Co-authored-by: Gary Hsu * Add |= and use std::underlying_type Co-authored-by: Gary Hsu --- Apps/BabylonScripts/babylon.max.js | 1872 ++++++++++++++++++++----- Apps/Playground/Scripts/experience.js | 4 +- Dependencies/xr/Include/XR.h | 25 +- Dependencies/xr/Source/ARCore/XR.cpp | 49 +- Dependencies/xr/Source/ARKit/XR.mm | 128 +- Dependencies/xr/Source/OpenXR/XR.cpp | 2 +- Plugins/NativeXr/Source/NativeXr.cpp | 43 +- 7 files changed, 1714 insertions(+), 409 deletions(-) diff --git a/Apps/BabylonScripts/babylon.max.js b/Apps/BabylonScripts/babylon.max.js index 7ae81bcc2..f8812b331 100644 --- a/Apps/BabylonScripts/babylon.max.js +++ b/Apps/BabylonScripts/babylon.max.js @@ -16679,7 +16679,8 @@ var FreeCameraTouchInput = /** @class */ (function () { }; this._pointerInput = function (p) { var evt = p.event; - if (evt.pointerType === "mouse") { + var isMouseEvent = evt instanceof MouseEvent; + if (evt.pointerType === "mouse" || isMouseEvent) { return; } if (p.type === _Events_pointerEvents__WEBPACK_IMPORTED_MODULE_3__["PointerEventTypes"].POINTERDOWN) { @@ -29451,6 +29452,7 @@ var RayHelper = /** @class */ (function () { this._scene = scene; this._renderPoints = [ray.origin, ray.origin.add(ray.direction.scale(ray.length))]; this._renderLine = _Meshes_mesh__WEBPACK_IMPORTED_MODULE_1__["Mesh"].CreateLines("ray", this._renderPoints, scene, true); + this._renderLine.isPickable = false; if (this._renderFunction) { this._scene.registerBeforeRender(this._renderFunction); } @@ -29494,6 +29496,7 @@ var RayHelper = /** @class */ (function () { * @param length Defines the length of the ray */ RayHelper.prototype.attachToMesh = function (mesh, meshSpaceDirection, meshSpaceOrigin, length) { + var _this = this; this._attachedToMesh = mesh; var ray = this.ray; if (!ray) { @@ -29515,6 +29518,9 @@ var RayHelper = /** @class */ (function () { // -1 so that this will work with Mesh.lookAt meshSpaceDirection = new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_0__["Vector3"](0, 0, -1); } + if (!this._scene) { + this._scene = mesh.getScene(); + } if (!this._meshSpaceDirection) { this._meshSpaceDirection = meshSpaceDirection.clone(); this._meshSpaceOrigin = meshSpaceOrigin.clone(); @@ -29523,9 +29529,9 @@ var RayHelper = /** @class */ (function () { this._meshSpaceDirection.copyFrom(meshSpaceDirection); this._meshSpaceOrigin.copyFrom(meshSpaceOrigin); } - if (!this._updateToMeshFunction) { - this._updateToMeshFunction = this._updateToMesh.bind(this); - this._attachedToMesh.getScene().registerBeforeRender(this._updateToMeshFunction); + if (!this._onAfterRenderObserver) { + this._onAfterRenderObserver = this._scene.onBeforeRenderObservable.add(function () { return _this._updateToMesh(); }); + this._onAfterStepObserver = this._scene.onAfterStepObservable.add(function () { return _this._updateToMesh(); }); } // force world matrix computation before the first ray helper computation this._attachedToMesh.computeWorldMatrix(true); @@ -29535,12 +29541,15 @@ var RayHelper = /** @class */ (function () { * Detach the ray helper from the mesh it has previously been attached to. */ RayHelper.prototype.detachFromMesh = function () { - if (this._attachedToMesh) { - if (this._updateToMeshFunction) { - this._attachedToMesh.getScene().unregisterBeforeRender(this._updateToMeshFunction); + if (this._attachedToMesh && this._scene) { + if (this._onAfterRenderObserver) { + this._scene.onBeforeRenderObservable.remove(this._onAfterRenderObserver); + this._scene.onAfterStepObservable.remove(this._onAfterStepObserver); } this._attachedToMesh = null; - this._updateToMeshFunction = null; + this._onAfterRenderObserver = null; + this._onAfterStepObserver = null; + this._scene = null; } }; RayHelper.prototype._updateToMesh = function () { @@ -30069,6 +30078,23 @@ var SkeletonViewer = /** @class */ (function () { this.isEnabled = wasEnabled; } }; + /** Changes the displayMode of the skeleton viewer + * @param option String of the option name + * @param value The numerical option value + */ + SkeletonViewer.prototype.changeDisplayOptions = function (option, value) { + var wasEnabled = (this.isEnabled) ? true : false; + this.options.displayOptions[option] = value; + this.isEnabled = false; + if (this._debugMesh) { + this._debugMesh.dispose(); + this._debugMesh = null; + this.ready = false; + } + this.update(); + this._bindObs(); + this.isEnabled = wasEnabled; + }; /** Release associated resources */ SkeletonViewer.prototype.dispose = function () { this.isEnabled = false; @@ -39305,7 +39331,7 @@ var ThinEngine = /** @class */ (function () { */ // Not mixed with Version for tooling purpose. get: function () { - return "babylonjs@4.2.0-alpha.30"; + return "babylonjs@4.2.0-alpha.31"; }, enumerable: false, configurable: true @@ -39315,7 +39341,7 @@ var ThinEngine = /** @class */ (function () { * Returns the current version of the framework */ get: function () { - return "4.2.0-alpha.30"; + return "4.2.0-alpha.31"; }, enumerable: false, configurable: true @@ -39696,7 +39722,7 @@ var ThinEngine = /** @class */ (function () { configurable: true }); /** - * Gets a string idenfifying the name of the class + * Gets a string identifying the name of the class * @returns "Engine" string */ ThinEngine.prototype.getClassName = function () { @@ -40240,6 +40266,9 @@ var ThinEngine = /** @class */ (function () { }; ThinEngine.prototype._vertexAttribPointer = function (buffer, indx, size, type, normalized, stride, offset) { var pointer = this._currentBufferPointers[indx]; + if (!pointer) { + return; + } var changed = false; if (!pointer.active) { changed = true; @@ -47588,6 +47617,200 @@ var BoundingBoxGizmo = /** @class */ (function (_super) { +/***/ }), + +/***/ "./Gizmos/cameraGizmo.ts": +/*!*******************************!*\ + !*** ./Gizmos/cameraGizmo.ts ***! + \*******************************/ +/*! exports provided: CameraGizmo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CameraGizmo", function() { return CameraGizmo; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Maths/math.vector */ "./Maths/math.vector.ts"); +/* harmony import */ var _Maths_math_color__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Maths/math.color */ "./Maths/math.color.ts"); +/* harmony import */ var _Meshes_mesh__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Meshes/mesh */ "./Meshes/mesh.ts"); +/* harmony import */ var _gizmo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./gizmo */ "./Gizmos/gizmo.ts"); +/* harmony import */ var _Materials_standardMaterial__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Materials/standardMaterial */ "./Materials/standardMaterial.ts"); +/* harmony import */ var _Meshes_Builders_boxBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Meshes/Builders/boxBuilder */ "./Meshes/Builders/boxBuilder.ts"); +/* harmony import */ var _Meshes_Builders_cylinderBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Meshes/Builders/cylinderBuilder */ "./Meshes/Builders/cylinderBuilder.ts"); +/* harmony import */ var _Maths_math__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Maths/math */ "./Maths/math.ts"); +/* harmony import */ var _Meshes_Builders_linesBuilder__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Meshes/Builders/linesBuilder */ "./Meshes/Builders/linesBuilder.ts"); + + + + + + + + + + +/** + * Gizmo that enables viewing a camera + */ +var CameraGizmo = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CameraGizmo, _super); + /** + * Creates a CameraGizmo + * @param gizmoLayer The utility layer the gizmo will be added to + */ + function CameraGizmo(gizmoLayer) { + var _this = _super.call(this, gizmoLayer) || this; + _this._camera = null; + _this._invProjection = new _Maths_math__WEBPACK_IMPORTED_MODULE_8__["Matrix"](); + _this._material = new _Materials_standardMaterial__WEBPACK_IMPORTED_MODULE_5__["StandardMaterial"]("cameraGizmoMaterial", _this.gizmoLayer.utilityLayerScene); + _this._material.diffuseColor = new _Maths_math_color__WEBPACK_IMPORTED_MODULE_2__["Color3"](0.5, 0.5, 0.5); + _this._material.specularColor = new _Maths_math_color__WEBPACK_IMPORTED_MODULE_2__["Color3"](0.1, 0.1, 0.1); + return _this; + } + Object.defineProperty(CameraGizmo.prototype, "displayFrustum", { + /** Gets or sets a boolean indicating if frustum lines must be rendered (true by default)) */ + get: function () { + return this._cameraLinesMesh.isEnabled(); + }, + set: function (value) { + this._cameraLinesMesh.setEnabled(value); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(CameraGizmo.prototype, "camera", { + get: function () { + return this._camera; + }, + /** + * The camera that the gizmo is attached to + */ + set: function (camera) { + var _this = this; + this._camera = camera; + this.attachedNode = camera; + if (camera) { + // Create the mesh for the given camera + if (this._cameraMesh) { + this._cameraMesh.dispose(); + } + if (this._cameraLinesMesh) { + this._cameraLinesMesh.dispose(); + } + this._cameraMesh = CameraGizmo._CreateCameraMesh(this.gizmoLayer.utilityLayerScene); + this._cameraLinesMesh = CameraGizmo._CreateCameraFrustum(this.gizmoLayer.utilityLayerScene); + this._cameraMesh.getChildMeshes(false).forEach(function (m) { + m.material = _this._material; + }); + this._cameraMesh.parent = this._rootMesh; + this._cameraLinesMesh.parent = this._rootMesh; + if (this.gizmoLayer.utilityLayerScene.activeCamera && this.gizmoLayer.utilityLayerScene.activeCamera.maxZ < camera.maxZ * 1.5) { + this.gizmoLayer.utilityLayerScene.activeCamera.maxZ = camera.maxZ * 1.5; + } + if (!this.attachedNode.reservedDataStore) { + this.attachedNode.reservedDataStore = {}; + } + this.attachedNode.reservedDataStore.cameraGizmo = this; + // Add lighting to the camera gizmo + var gizmoLight = this.gizmoLayer._getSharedGizmoLight(); + gizmoLight.includedOnlyMeshes = gizmoLight.includedOnlyMeshes.concat(this._cameraMesh.getChildMeshes(false)); + this._update(); + } + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(CameraGizmo.prototype, "material", { + /** + * Gets the material used to render the camera gizmo + */ + get: function () { + return this._material; + }, + enumerable: false, + configurable: true + }); + /** + * @hidden + * Updates the gizmo to match the attached mesh's position/rotation + */ + CameraGizmo.prototype._update = function () { + _super.prototype._update.call(this); + if (!this._camera) { + return; + } + // frustum matrix + this._camera.getProjectionMatrix().invertToRef(this._invProjection); + this._cameraLinesMesh.setPivotMatrix(this._invProjection, false); + this._cameraLinesMesh.scaling.x = 1 / this._rootMesh.scaling.x; + this._cameraLinesMesh.scaling.y = 1 / this._rootMesh.scaling.y; + this._cameraLinesMesh.scaling.z = 1 / this._rootMesh.scaling.z; + }; + /** + * Disposes of the camera gizmo + */ + CameraGizmo.prototype.dispose = function () { + if (this._cameraMesh) { + this._cameraMesh.dispose(); + } + if (this._cameraLinesMesh) { + this._cameraLinesMesh.dispose(); + } + this._material.dispose(); + _super.prototype.dispose.call(this); + }; + CameraGizmo._CreateCameraMesh = function (scene) { + var root = new _Meshes_mesh__WEBPACK_IMPORTED_MODULE_3__["Mesh"]("rootCameraGizmo", scene); + var mesh = new _Meshes_mesh__WEBPACK_IMPORTED_MODULE_3__["Mesh"](root.name, scene); + mesh.parent = root; + var box = _Meshes_Builders_boxBuilder__WEBPACK_IMPORTED_MODULE_6__["BoxBuilder"].CreateBox(root.name, { width: 1.0, height: 0.8, depth: 0.5 }, scene); + box.parent = mesh; + var cyl1 = _Meshes_Builders_cylinderBuilder__WEBPACK_IMPORTED_MODULE_7__["CylinderBuilder"].CreateCylinder(root.name, { height: 0.5, diameterTop: 0.8, diameterBottom: 0.8 }, scene); + cyl1.parent = mesh; + cyl1.position.y = 0.3; + cyl1.position.x = -0.6; + cyl1.rotation.x = Math.PI * 0.5; + var cyl2 = _Meshes_Builders_cylinderBuilder__WEBPACK_IMPORTED_MODULE_7__["CylinderBuilder"].CreateCylinder(root.name, { height: 0.5, diameterTop: 0.6, diameterBottom: 0.6 }, scene); + cyl2.parent = mesh; + cyl2.position.y = 0.5; + cyl2.position.x = 0.4; + cyl2.rotation.x = Math.PI * 0.5; + var cyl3 = _Meshes_Builders_cylinderBuilder__WEBPACK_IMPORTED_MODULE_7__["CylinderBuilder"].CreateCylinder(root.name, { height: 0.5, diameterTop: 0.5, diameterBottom: 0.5 }, scene); + cyl3.parent = mesh; + cyl3.position.y = 0.0; + cyl3.position.x = 0.6; + cyl3.rotation.z = Math.PI * 0.5; + root.scaling.scaleInPlace(CameraGizmo._Scale); + root.rotation.y = -Math.PI * 0.5; + mesh.position.x = -0.9; + return root; + }; + CameraGizmo._CreateCameraFrustum = function (scene) { + var root = new _Meshes_mesh__WEBPACK_IMPORTED_MODULE_3__["Mesh"]("rootCameraGizmo", scene); + var mesh = new _Meshes_mesh__WEBPACK_IMPORTED_MODULE_3__["Mesh"](root.name, scene); + mesh.parent = root; + for (var y = 0; y < 4; y += 2) { + for (var x = 0; x < 4; x += 2) { + var line = _Meshes_Builders_linesBuilder__WEBPACK_IMPORTED_MODULE_9__["LinesBuilder"].CreateLines("lines", { points: [new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector3"](-1 + x, -1 + y, -1), new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector3"](-1 + x, -1 + y, 1)] }, scene); + line.parent = mesh; + line.alwaysSelectAsActiveMesh = true; + var line = _Meshes_Builders_linesBuilder__WEBPACK_IMPORTED_MODULE_9__["LinesBuilder"].CreateLines("lines", { points: [new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector3"](-1, -1 + x, -1 + y), new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector3"](1, -1 + x, -1 + y)] }, scene); + line.parent = mesh; + line.alwaysSelectAsActiveMesh = true; + var line = _Meshes_Builders_linesBuilder__WEBPACK_IMPORTED_MODULE_9__["LinesBuilder"].CreateLines("lines", { points: [new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector3"](-1 + x, -1, -1 + y), new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector3"](-1 + x, 1, -1 + y)] }, scene); + line.parent = mesh; + line.alwaysSelectAsActiveMesh = true; + } + } + return root; + }; + // Static helper methods + CameraGizmo._Scale = 0.05; + return CameraGizmo; +}(_gizmo__WEBPACK_IMPORTED_MODULE_4__["Gizmo"])); + + + /***/ }), /***/ "./Gizmos/gizmo.ts": @@ -47861,7 +48084,7 @@ __webpack_require__.r(__webpack_exports__); /** - * Helps setup gizmo's in the scene to rotate/scale/position meshes + * Helps setup gizmo's in the scene to rotate/scale/position nodes */ var GizmoManager = /** @class */ (function () { /** @@ -47877,9 +48100,12 @@ var GizmoManager = /** @class */ (function () { this.clearGizmoOnEmptyPointerEvent = false; /** Fires an event when the manager is attached to a mesh */ this.onAttachedToMeshObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](); + /** Fires an event when the manager is attached to a node */ + this.onAttachedToNodeObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](); this._gizmosEnabled = { positionGizmo: false, rotationGizmo: false, scaleGizmo: false, boundingBoxGizmo: false }; this._pointerObserver = null; this._attachedMesh = null; + this._attachedNode = null; this._boundingBoxColor = _Maths_math_color__WEBPACK_IMPORTED_MODULE_4__["Color3"].FromHexString("#0984e3"); this._thickness = 1; /** @@ -47891,7 +48117,11 @@ var GizmoManager = /** @class */ (function () { */ this.attachableMeshes = null; /** - * If pointer events should perform attaching/detaching a gizmo, if false this can be done manually via attachToMesh. (Default: true) + * Array of nodes which will have the gizmo attached when a pointer selected them. If null, all nodes are attachable. (Default: null) + */ + this.attachableNodes = null; + /** + * If pointer events should perform attaching/detaching a gizmo, if false this can be done manually via attachToMesh/attachToNode. (Default: true) */ this.usePointerToAttachGizmos = true; this._defaultKeepDepthUtilityLayer = new _Rendering_utilityLayerRenderer__WEBPACK_IMPORTED_MODULE_3__["UtilityLayerRenderer"](scene); @@ -47973,7 +48203,11 @@ var GizmoManager = /** @class */ (function () { if (this._attachedMesh) { this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior); } + if (this._attachedNode) { + this._attachedNode.removeBehavior(this.boundingBoxDragBehavior); + } this._attachedMesh = mesh; + this._attachedNode = null; for (var key in this.gizmos) { var gizmo = (this.gizmos[key]); if (gizmo && this._gizmosEnabled[key]) { @@ -47985,6 +48219,30 @@ var GizmoManager = /** @class */ (function () { } this.onAttachedToMeshObservable.notifyObservers(mesh); }; + /** + * Attaches a set of gizmos to the specified node + * @param node The node the gizmo's should be attached to + */ + GizmoManager.prototype.attachToNode = function (node) { + if (this._attachedMesh) { + this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior); + } + if (this._attachedNode) { + this._attachedNode.removeBehavior(this.boundingBoxDragBehavior); + } + this._attachedMesh = null; + this._attachedNode = node; + for (var key in this.gizmos) { + var gizmo = (this.gizmos[key]); + if (gizmo && this._gizmosEnabled[key]) { + gizmo.attachedNode = node; + } + } + if (this.boundingBoxGizmoEnabled && this._attachedNode) { + this._attachedNode.addBehavior(this.boundingBoxDragBehavior); + } + this.onAttachedToNodeObservable.notifyObservers(node); + }; Object.defineProperty(GizmoManager.prototype, "positionGizmoEnabled", { get: function () { return this._gizmosEnabled.positionGizmo; @@ -47997,10 +48255,15 @@ var GizmoManager = /** @class */ (function () { if (!this.gizmos.positionGizmo) { this.gizmos.positionGizmo = new _positionGizmo__WEBPACK_IMPORTED_MODULE_7__["PositionGizmo"](this._defaultUtilityLayer, this._thickness); } - this.gizmos.positionGizmo.attachedMesh = this._attachedMesh; + if (this._attachedNode) { + this.gizmos.positionGizmo.attachedNode = this._attachedNode; + } + else { + this.gizmos.positionGizmo.attachedMesh = this._attachedMesh; + } } else if (this.gizmos.positionGizmo) { - this.gizmos.positionGizmo.attachedMesh = null; + this.gizmos.positionGizmo.attachedNode = null; } this._gizmosEnabled.positionGizmo = value; }, @@ -48019,10 +48282,15 @@ var GizmoManager = /** @class */ (function () { if (!this.gizmos.rotationGizmo) { this.gizmos.rotationGizmo = new _rotationGizmo__WEBPACK_IMPORTED_MODULE_6__["RotationGizmo"](this._defaultUtilityLayer, 32, false, this._thickness); } - this.gizmos.rotationGizmo.attachedMesh = this._attachedMesh; + if (this._attachedNode) { + this.gizmos.rotationGizmo.attachedNode = this._attachedNode; + } + else { + this.gizmos.rotationGizmo.attachedMesh = this._attachedMesh; + } } else if (this.gizmos.rotationGizmo) { - this.gizmos.rotationGizmo.attachedMesh = null; + this.gizmos.rotationGizmo.attachedNode = null; } this._gizmosEnabled.rotationGizmo = value; }, @@ -48039,10 +48307,15 @@ var GizmoManager = /** @class */ (function () { set: function (value) { if (value) { this.gizmos.scaleGizmo = this.gizmos.scaleGizmo || new _scaleGizmo__WEBPACK_IMPORTED_MODULE_8__["ScaleGizmo"](this._defaultUtilityLayer, this._thickness); - this.gizmos.scaleGizmo.attachedMesh = this._attachedMesh; + if (this._attachedNode) { + this.gizmos.scaleGizmo.attachedNode = this._attachedNode; + } + else { + this.gizmos.scaleGizmo.attachedMesh = this._attachedMesh; + } } else if (this.gizmos.scaleGizmo) { - this.gizmos.scaleGizmo.attachedMesh = null; + this.gizmos.scaleGizmo.attachedNode = null; } this._gizmosEnabled.scaleGizmo = value; }, @@ -48059,17 +48332,29 @@ var GizmoManager = /** @class */ (function () { set: function (value) { if (value) { this.gizmos.boundingBoxGizmo = this.gizmos.boundingBoxGizmo || new _boundingBoxGizmo__WEBPACK_IMPORTED_MODULE_9__["BoundingBoxGizmo"](this._boundingBoxColor, this._defaultKeepDepthUtilityLayer); - this.gizmos.boundingBoxGizmo.attachedMesh = this._attachedMesh; + if (this._attachedMesh) { + this.gizmos.boundingBoxGizmo.attachedMesh = this._attachedMesh; + } + else { + this.gizmos.boundingBoxGizmo.attachedNode = this._attachedNode; + } if (this._attachedMesh) { this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior); this._attachedMesh.addBehavior(this.boundingBoxDragBehavior); } + else if (this._attachedNode) { + this._attachedNode.removeBehavior(this.boundingBoxDragBehavior); + this._attachedNode.addBehavior(this.boundingBoxDragBehavior); + } } else if (this.gizmos.boundingBoxGizmo) { if (this._attachedMesh) { this._attachedMesh.removeBehavior(this.boundingBoxDragBehavior); } - this.gizmos.boundingBoxGizmo.attachedMesh = null; + else if (this._attachedNode) { + this._attachedNode.removeBehavior(this.boundingBoxDragBehavior); + } + this.gizmos.boundingBoxGizmo.attachedNode = null; } this._gizmosEnabled.boundingBoxGizmo = value; }, @@ -48103,7 +48388,7 @@ var GizmoManager = /** @class */ (function () { /*!*************************!*\ !*** ./Gizmos/index.ts ***! \*************************/ -/*! exports provided: AxisDragGizmo, AxisScaleGizmo, BoundingBoxGizmo, Gizmo, GizmoManager, PlaneRotationGizmo, PositionGizmo, RotationGizmo, ScaleGizmo, LightGizmo, PlaneDragGizmo */ +/*! exports provided: AxisDragGizmo, AxisScaleGizmo, BoundingBoxGizmo, Gizmo, GizmoManager, PlaneRotationGizmo, PositionGizmo, RotationGizmo, ScaleGizmo, LightGizmo, CameraGizmo, PlaneDragGizmo */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -48138,8 +48423,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _lightGizmo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./lightGizmo */ "./Gizmos/lightGizmo.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LightGizmo", function() { return _lightGizmo__WEBPACK_IMPORTED_MODULE_9__["LightGizmo"]; }); -/* harmony import */ var _planeDragGizmo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./planeDragGizmo */ "./Gizmos/planeDragGizmo.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlaneDragGizmo", function() { return _planeDragGizmo__WEBPACK_IMPORTED_MODULE_10__["PlaneDragGizmo"]; }); +/* harmony import */ var _cameraGizmo__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./cameraGizmo */ "./Gizmos/cameraGizmo.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CameraGizmo", function() { return _cameraGizmo__WEBPACK_IMPORTED_MODULE_10__["CameraGizmo"]; }); + +/* harmony import */ var _planeDragGizmo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./planeDragGizmo */ "./Gizmos/planeDragGizmo.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlaneDragGizmo", function() { return _planeDragGizmo__WEBPACK_IMPORTED_MODULE_11__["PlaneDragGizmo"]; }); @@ -48152,6 +48440,7 @@ __webpack_require__.r(__webpack_exports__); + /***/ }), @@ -60398,6 +60687,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../../Misc/typeStore */ "./Misc/typeStore.ts"); /* harmony import */ var _Misc_tools__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../Misc/tools */ "./Misc/tools.ts"); /* harmony import */ var _Misc_stringTools__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../../Misc/stringTools */ "./Misc/stringTools.ts"); +/* harmony import */ var _PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../../PostProcesses/postProcess */ "./PostProcesses/postProcess.ts"); + @@ -60691,6 +60982,18 @@ var loadAssetContainer = function (scene, data, rootUrl, onError, addToScene) { log += "\n\t\t" + camera.toString(fullDetails); } } + // Postprocesses + if (parsedData.postProcesses !== undefined && parsedData.postProcesses !== null) { + for (index = 0, cache = parsedData.postProcesses.length; index < cache; index++) { + var parsedPostProcess = parsedData.postProcesses[index]; + var postProcess = _PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_27__["PostProcess"].Parse(parsedPostProcess, scene, rootUrl); + if (postProcess) { + container.postProcesses.push(postProcess); + log += (index === 0 ? "\n\Postprocesses:" : ""); + log += "\n\t\t" + postProcess.toString(); + } + } + } // Animation Groups if (parsedData.animationGroups !== undefined && parsedData.animationGroups !== null) { for (index = 0, cache = parsedData.animationGroups.length; index < cache; index++) { @@ -97182,238 +97485,241 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _materialDefines__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./materialDefines */ "./Materials/materialDefines.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaterialDefines", function() { return _materialDefines__WEBPACK_IMPORTED_MODULE_8__["MaterialDefines"]; }); -/* harmony import */ var _materialHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./materialHelper */ "./Materials/materialHelper.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaterialHelper", function() { return _materialHelper__WEBPACK_IMPORTED_MODULE_9__["MaterialHelper"]; }); +/* harmony import */ var _thinMaterialHelper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./thinMaterialHelper */ "./Materials/thinMaterialHelper.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThinMaterialHelper", function() { return _thinMaterialHelper__WEBPACK_IMPORTED_MODULE_9__["ThinMaterialHelper"]; }); + +/* harmony import */ var _materialHelper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./materialHelper */ "./Materials/materialHelper.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaterialHelper", function() { return _materialHelper__WEBPACK_IMPORTED_MODULE_10__["MaterialHelper"]; }); -/* harmony import */ var _multiMaterial__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./multiMaterial */ "./Materials/multiMaterial.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiMaterial", function() { return _multiMaterial__WEBPACK_IMPORTED_MODULE_10__["MultiMaterial"]; }); +/* harmony import */ var _multiMaterial__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./multiMaterial */ "./Materials/multiMaterial.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiMaterial", function() { return _multiMaterial__WEBPACK_IMPORTED_MODULE_11__["MultiMaterial"]; }); -/* harmony import */ var _PBR_index__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./PBR/index */ "./Materials/PBR/index.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMaterialDefines", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_11__["PBRMaterialDefines"]; }); +/* harmony import */ var _PBR_index__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./PBR/index */ "./Materials/PBR/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMaterialDefines", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_12__["PBRMaterialDefines"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRBaseMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_11__["PBRBaseMaterial"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRBaseMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_12__["PBRBaseMaterial"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRBaseSimpleMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_11__["PBRBaseSimpleMaterial"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRBaseSimpleMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_12__["PBRBaseSimpleMaterial"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_11__["PBRMaterial"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_12__["PBRMaterial"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMetallicRoughnessMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_11__["PBRMetallicRoughnessMaterial"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMetallicRoughnessMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_12__["PBRMetallicRoughnessMaterial"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRSpecularGlossinessMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_11__["PBRSpecularGlossinessMaterial"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRSpecularGlossinessMaterial", function() { return _PBR_index__WEBPACK_IMPORTED_MODULE_12__["PBRSpecularGlossinessMaterial"]; }); -/* harmony import */ var _pushMaterial__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./pushMaterial */ "./Materials/pushMaterial.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PushMaterial", function() { return _pushMaterial__WEBPACK_IMPORTED_MODULE_12__["PushMaterial"]; }); +/* harmony import */ var _pushMaterial__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pushMaterial */ "./Materials/pushMaterial.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PushMaterial", function() { return _pushMaterial__WEBPACK_IMPORTED_MODULE_13__["PushMaterial"]; }); -/* harmony import */ var _shaderMaterial__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./shaderMaterial */ "./Materials/shaderMaterial.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShaderMaterial", function() { return _shaderMaterial__WEBPACK_IMPORTED_MODULE_13__["ShaderMaterial"]; }); +/* harmony import */ var _shaderMaterial__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./shaderMaterial */ "./Materials/shaderMaterial.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShaderMaterial", function() { return _shaderMaterial__WEBPACK_IMPORTED_MODULE_14__["ShaderMaterial"]; }); -/* harmony import */ var _standardMaterial__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./standardMaterial */ "./Materials/standardMaterial.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMaterialDefines", function() { return _standardMaterial__WEBPACK_IMPORTED_MODULE_14__["StandardMaterialDefines"]; }); +/* harmony import */ var _standardMaterial__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./standardMaterial */ "./Materials/standardMaterial.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMaterialDefines", function() { return _standardMaterial__WEBPACK_IMPORTED_MODULE_15__["StandardMaterialDefines"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMaterial", function() { return _standardMaterial__WEBPACK_IMPORTED_MODULE_14__["StandardMaterial"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMaterial", function() { return _standardMaterial__WEBPACK_IMPORTED_MODULE_15__["StandardMaterial"]; }); -/* harmony import */ var _Textures_index__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Textures/index */ "./Materials/Textures/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Textures_index__WEBPACK_IMPORTED_MODULE_15__) if(["BackgroundMaterial","ColorCurves","EffectFallbacks","Effect","FresnelParameters","ImageProcessingConfigurationDefines","ImageProcessingConfiguration","Material","MaterialDefines","MaterialHelper","MultiMaterial","PBRMaterialDefines","PBRBaseMaterial","PBRBaseSimpleMaterial","PBRMaterial","PBRMetallicRoughnessMaterial","PBRSpecularGlossinessMaterial","PushMaterial","ShaderMaterial","StandardMaterialDefines","StandardMaterial","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Textures_index__WEBPACK_IMPORTED_MODULE_15__[key]; }) }(__WEBPACK_IMPORT_KEY__)); -/* harmony import */ var _uniformBuffer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./uniformBuffer */ "./Materials/uniformBuffer.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UniformBuffer", function() { return _uniformBuffer__WEBPACK_IMPORTED_MODULE_16__["UniformBuffer"]; }); +/* harmony import */ var _Textures_index__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Textures/index */ "./Materials/Textures/index.ts"); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Textures_index__WEBPACK_IMPORTED_MODULE_16__) if(["BackgroundMaterial","ColorCurves","EffectFallbacks","Effect","FresnelParameters","ImageProcessingConfigurationDefines","ImageProcessingConfiguration","Material","MaterialDefines","ThinMaterialHelper","MaterialHelper","MultiMaterial","PBRMaterialDefines","PBRBaseMaterial","PBRBaseSimpleMaterial","PBRMaterial","PBRMetallicRoughnessMaterial","PBRSpecularGlossinessMaterial","PushMaterial","ShaderMaterial","StandardMaterialDefines","StandardMaterial","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Textures_index__WEBPACK_IMPORTED_MODULE_16__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony import */ var _uniformBuffer__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./uniformBuffer */ "./Materials/uniformBuffer.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UniformBuffer", function() { return _uniformBuffer__WEBPACK_IMPORTED_MODULE_17__["UniformBuffer"]; }); -/* harmony import */ var _materialFlags__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./materialFlags */ "./Materials/materialFlags.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaterialFlags", function() { return _materialFlags__WEBPACK_IMPORTED_MODULE_17__["MaterialFlags"]; }); +/* harmony import */ var _materialFlags__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./materialFlags */ "./Materials/materialFlags.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaterialFlags", function() { return _materialFlags__WEBPACK_IMPORTED_MODULE_18__["MaterialFlags"]; }); -/* harmony import */ var _Node_index__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Node/index */ "./Materials/Node/index.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlockTargets", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialBlockTargets"]; }); +/* harmony import */ var _Node_index__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Node/index */ "./Materials/Node/index.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlockTargets", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialBlockTargets"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlockConnectionPointTypes", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialBlockConnectionPointTypes"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlockConnectionPointTypes", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialBlockConnectionPointTypes"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlockConnectionPointMode", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialBlockConnectionPointMode"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlockConnectionPointMode", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialBlockConnectionPointMode"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialSystemValues", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialSystemValues"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialSystemValues", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialSystemValues"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialModes", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialModes"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialModes", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialModes"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialConnectionPointCompatibilityStates", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialConnectionPointCompatibilityStates"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialConnectionPointCompatibilityStates", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialConnectionPointCompatibilityStates"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialConnectionPointDirection", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialConnectionPointDirection"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialConnectionPointDirection", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialConnectionPointDirection"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialConnectionPoint", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialConnectionPoint"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialConnectionPoint", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialConnectionPoint"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialDefines", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialDefines"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialDefines", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialDefines"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterial", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterial"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterial", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterial"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VertexOutputBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["VertexOutputBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VertexOutputBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["VertexOutputBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BonesBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["BonesBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BonesBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["BonesBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InstancesBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["InstancesBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InstancesBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["InstancesBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MorphTargetsBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["MorphTargetsBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MorphTargetsBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["MorphTargetsBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LightInformationBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["LightInformationBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LightInformationBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["LightInformationBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FragmentOutputBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["FragmentOutputBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FragmentOutputBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["FragmentOutputBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageProcessingBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ImageProcessingBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageProcessingBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ImageProcessingBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PerturbNormalBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["PerturbNormalBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PerturbNormalBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["PerturbNormalBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiscardBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["DiscardBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiscardBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["DiscardBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FrontFacingBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["FrontFacingBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FrontFacingBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["FrontFacingBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DerivativeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["DerivativeBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DerivativeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["DerivativeBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FragCoordBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["FragCoordBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FragCoordBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["FragCoordBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenSizeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ScreenSizeBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScreenSizeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ScreenSizeBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FogBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["FogBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FogBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["FogBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LightBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["LightBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LightBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["LightBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextureBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["TextureBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextureBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["TextureBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectionTextureBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ReflectionTextureBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectionTextureBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ReflectionTextureBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CurrentScreenBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["CurrentScreenBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CurrentScreenBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["CurrentScreenBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["InputBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InputBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["InputBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimatedInputBlockTypes", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["AnimatedInputBlockTypes"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimatedInputBlockTypes", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["AnimatedInputBlockTypes"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiplyBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["MultiplyBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiplyBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["MultiplyBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["AddBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["AddBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScaleBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ScaleBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScaleBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ScaleBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClampBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ClampBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClampBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ClampBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CrossBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["CrossBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CrossBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["CrossBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DotBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["DotBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DotBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["DotBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TransformBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["TransformBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TransformBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["TransformBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RemapBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["RemapBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RemapBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["RemapBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalizeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NormalizeBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalizeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NormalizeBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TrigonometryBlockOperations", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["TrigonometryBlockOperations"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TrigonometryBlockOperations", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["TrigonometryBlockOperations"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TrigonometryBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["TrigonometryBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TrigonometryBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["TrigonometryBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorMergerBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ColorMergerBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorMergerBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ColorMergerBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VectorMergerBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["VectorMergerBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VectorMergerBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["VectorMergerBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorSplitterBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ColorSplitterBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorSplitterBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ColorSplitterBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VectorSplitterBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["VectorSplitterBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VectorSplitterBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["VectorSplitterBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LerpBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["LerpBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LerpBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["LerpBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DivideBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["DivideBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DivideBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["DivideBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SubtractBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["SubtractBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SubtractBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["SubtractBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StepBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["StepBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StepBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["StepBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OneMinusBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["OneMinusBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OneMinusBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["OneMinusBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ViewDirectionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ViewDirectionBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ViewDirectionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ViewDirectionBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FresnelBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["FresnelBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FresnelBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["FresnelBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaxBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["MaxBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaxBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["MaxBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MinBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["MinBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MinBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["MinBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DistanceBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["DistanceBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DistanceBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["DistanceBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LengthBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["LengthBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LengthBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["LengthBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NegateBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NegateBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NegateBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NegateBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PowBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["PowBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PowBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["PowBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RandomNumberBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["RandomNumberBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RandomNumberBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["RandomNumberBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ArcTan2Block", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ArcTan2Block"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ArcTan2Block", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ArcTan2Block"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SmoothStepBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["SmoothStepBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SmoothStepBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["SmoothStepBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReciprocalBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ReciprocalBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReciprocalBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ReciprocalBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReplaceColorBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ReplaceColorBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReplaceColorBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ReplaceColorBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PosterizeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["PosterizeBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PosterizeBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["PosterizeBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WaveBlockKind", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["WaveBlockKind"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WaveBlockKind", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["WaveBlockKind"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WaveBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["WaveBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WaveBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["WaveBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GradientBlockColorStep", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["GradientBlockColorStep"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GradientBlockColorStep", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["GradientBlockColorStep"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GradientBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["GradientBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GradientBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["GradientBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NLerpBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NLerpBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NLerpBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NLerpBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WorleyNoise3DBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["WorleyNoise3DBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WorleyNoise3DBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["WorleyNoise3DBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimplexPerlin3DBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["SimplexPerlin3DBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimplexPerlin3DBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["SimplexPerlin3DBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalBlendBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NormalBlendBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NormalBlendBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NormalBlendBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rotate2dBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["Rotate2dBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rotate2dBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["Rotate2dBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ReflectBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ReflectBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefractBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["RefractBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefractBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["RefractBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DesaturateBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["DesaturateBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DesaturateBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["DesaturateBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMetallicRoughnessBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["PBRMetallicRoughnessBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PBRMetallicRoughnessBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["PBRMetallicRoughnessBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SheenBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["SheenBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SheenBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["SheenBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AmbientOcclusionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["AmbientOcclusionBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AmbientOcclusionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["AmbientOcclusionBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectivityBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ReflectivityBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectivityBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ReflectivityBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnisotropyBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["AnisotropyBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnisotropyBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["AnisotropyBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ReflectionBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReflectionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ReflectionBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClearCoatBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ClearCoatBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClearCoatBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ClearCoatBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefractionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["RefractionBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefractionBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["RefractionBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SubSurfaceBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["SubSurfaceBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SubSurfaceBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["SubSurfaceBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ParticleTextureBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ParticleTextureBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ParticleTextureBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ParticleTextureBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ParticleRampGradientBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ParticleRampGradientBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ParticleRampGradientBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ParticleRampGradientBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ParticleBlendMultiplyBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ParticleBlendMultiplyBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ParticleBlendMultiplyBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ParticleBlendMultiplyBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["ModBlock"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModBlock", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["ModBlock"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialOptimizer", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["NodeMaterialOptimizer"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeMaterialOptimizer", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["NodeMaterialOptimizer"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyTypeForEdition", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["PropertyTypeForEdition"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyTypeForEdition", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["PropertyTypeForEdition"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "editableInPropertyPage", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_18__["editableInPropertyPage"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "editableInPropertyPage", function() { return _Node_index__WEBPACK_IMPORTED_MODULE_19__["editableInPropertyPage"]; }); -/* harmony import */ var _effectRenderer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./effectRenderer */ "./Materials/effectRenderer.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectRenderer", function() { return _effectRenderer__WEBPACK_IMPORTED_MODULE_19__["EffectRenderer"]; }); +/* harmony import */ var _effectRenderer__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./effectRenderer */ "./Materials/effectRenderer.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectRenderer", function() { return _effectRenderer__WEBPACK_IMPORTED_MODULE_20__["EffectRenderer"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectWrapper", function() { return _effectRenderer__WEBPACK_IMPORTED_MODULE_19__["EffectWrapper"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectWrapper", function() { return _effectRenderer__WEBPACK_IMPORTED_MODULE_20__["EffectWrapper"]; }); -/* harmony import */ var _shadowDepthWrapper__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./shadowDepthWrapper */ "./Materials/shadowDepthWrapper.ts"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShadowDepthWrapper", function() { return _shadowDepthWrapper__WEBPACK_IMPORTED_MODULE_20__["ShadowDepthWrapper"]; }); +/* harmony import */ var _shadowDepthWrapper__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./shadowDepthWrapper */ "./Materials/shadowDepthWrapper.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShadowDepthWrapper", function() { return _shadowDepthWrapper__WEBPACK_IMPORTED_MODULE_21__["ShadowDepthWrapper"]; }); @@ -97434,6 +97740,7 @@ __webpack_require__.r(__webpack_exports__); + @@ -99598,6 +99905,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Meshes_buffer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Meshes/buffer */ "./Meshes/buffer.ts"); /* harmony import */ var _Lights_light__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Lights/light */ "./Lights/light.ts"); /* harmony import */ var _Maths_math_color__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Maths/math.color */ "./Maths/math.color.ts"); +/* harmony import */ var _thinMaterialHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./thinMaterialHelper */ "./Materials/thinMaterialHelper.ts"); + @@ -99605,8 +99914,7 @@ __webpack_require__.r(__webpack_exports__); /** - * "Static Class" containing the most commonly used helper while dealing with material for - * rendering purpose. + * "Static Class" containing the most commonly used helper while dealing with material for rendering purpose. * * It contains the basic tools to help defining defines, binding uniform for the common part of the materials. * @@ -100325,30 +100633,7 @@ var MaterialHelper = /** @class */ (function () { * @param effect The effect we are binding the data to */ MaterialHelper.BindClipPlane = function (effect, scene) { - if (scene.clipPlane) { - var clipPlane = scene.clipPlane; - effect.setFloat4("vClipPlane", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); - } - if (scene.clipPlane2) { - var clipPlane = scene.clipPlane2; - effect.setFloat4("vClipPlane2", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); - } - if (scene.clipPlane3) { - var clipPlane = scene.clipPlane3; - effect.setFloat4("vClipPlane3", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); - } - if (scene.clipPlane4) { - var clipPlane = scene.clipPlane4; - effect.setFloat4("vClipPlane4", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); - } - if (scene.clipPlane5) { - var clipPlane = scene.clipPlane5; - effect.setFloat4("vClipPlane5", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); - } - if (scene.clipPlane6) { - var clipPlane = scene.clipPlane6; - effect.setFloat4("vClipPlane6", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); - } + _thinMaterialHelper__WEBPACK_IMPORTED_MODULE_6__["ThinMaterialHelper"].BindClipPlane(effect, scene); }; MaterialHelper._TmpMorphInfluencers = { "NUM_MORPH_INFLUENCERS": 0 }; MaterialHelper._tempFogColor = _Maths_math_color__WEBPACK_IMPORTED_MODULE_5__["Color3"].Black(); @@ -103749,6 +104034,64 @@ _scene__WEBPACK_IMPORTED_MODULE_3__["Scene"].DefaultMaterialFactory = function ( }; +/***/ }), + +/***/ "./Materials/thinMaterialHelper.ts": +/*!*****************************************!*\ + !*** ./Materials/thinMaterialHelper.ts ***! + \*****************************************/ +/*! exports provided: ThinMaterialHelper */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThinMaterialHelper", function() { return ThinMaterialHelper; }); +/** + * "Static Class" containing a few commonly used helper while dealing with material for rendering purpose. + * + * It is complementary with MaterialHelper but provides completely independent functions (for tree shaking sake) + * + * This works by convention in BabylonJS but is meant to be use only with shader following the in place naming rules and conventions. + */ +var ThinMaterialHelper = /** @class */ (function () { + function ThinMaterialHelper() { + } + /** + * Binds the clip plane information from the holder to the effect. + * @param effect The effect we are binding the data to + * @param holder The entity containing the clip plane information + */ + ThinMaterialHelper.BindClipPlane = function (effect, holder) { + if (holder.clipPlane) { + var clipPlane = holder.clipPlane; + effect.setFloat4("vClipPlane", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); + } + if (holder.clipPlane2) { + var clipPlane = holder.clipPlane2; + effect.setFloat4("vClipPlane2", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); + } + if (holder.clipPlane3) { + var clipPlane = holder.clipPlane3; + effect.setFloat4("vClipPlane3", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); + } + if (holder.clipPlane4) { + var clipPlane = holder.clipPlane4; + effect.setFloat4("vClipPlane4", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); + } + if (holder.clipPlane5) { + var clipPlane = holder.clipPlane5; + effect.setFloat4("vClipPlane5", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); + } + if (holder.clipPlane6) { + var clipPlane = holder.clipPlane6; + effect.setFloat4("vClipPlane6", clipPlane.normal.x, clipPlane.normal.y, clipPlane.normal.z, clipPlane.d); + } + }; + return ThinMaterialHelper; +}()); + + + /***/ }), /***/ "./Materials/uniformBuffer.ts": @@ -122917,6 +123260,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Misc_deepCopier__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/deepCopier */ "./Misc/deepCopier.ts"); /* harmony import */ var _transformNode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./transformNode */ "./Meshes/transformNode.ts"); /* harmony import */ var _buffer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./buffer */ "./Meshes/buffer.ts"); +/* harmony import */ var _Culling_boundingInfo__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Culling/boundingInfo */ "./Culling/boundingInfo.ts"); + @@ -123305,6 +123650,18 @@ var InstancedMesh = /** @class */ (function (_super) { InstancedMesh.prototype._generatePointsArray = function () { return this._sourceMesh._generatePointsArray(); }; + /** @hidden */ + InstancedMesh.prototype._updateBoundingInfo = function () { + var effectiveMesh = this; + if (this._boundingInfo) { + this._boundingInfo.update(effectiveMesh.worldMatrixFromCache); + } + else { + this._boundingInfo = new _Culling_boundingInfo__WEBPACK_IMPORTED_MODULE_8__["BoundingInfo"](this.absolutePosition, this.absolutePosition, effectiveMesh.worldMatrixFromCache); + } + this._updateSubMeshesBoundingInfo(effectiveMesh.worldMatrixFromCache); + return this; + }; /** * Creates a new InstancedMesh from the current mesh. * - name (string) : the cloned mesh name @@ -141772,6 +142129,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Particles_particleSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Particles/particleSystem */ "./Particles/particleSystem.ts"); /* harmony import */ var _Morph_morphTargetManager__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Morph/morphTargetManager */ "./Morph/morphTargetManager.ts"); /* harmony import */ var _Lights_Shadows_shadowGenerator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Lights/Shadows/shadowGenerator */ "./Lights/Shadows/shadowGenerator.ts"); +/* harmony import */ var _PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../PostProcesses/postProcess */ "./PostProcesses/postProcess.ts"); + @@ -141849,7 +142208,7 @@ var SceneRecorder = /** @class */ (function () { deltaJSON[key] = []; } newObject.__state = { - id: currentObject.id + id: currentObject.id || currentObject.name }; deltaJSON[key].push(newObject); } @@ -141858,7 +142217,7 @@ var SceneRecorder = /** @class */ (function () { // We need to delete var newObject = { __state: { - deleteId: originalObject.id + deleteId: originalObject.id || originalObject.name } }; deltaJSON[key].push(newObject); @@ -141982,6 +142341,9 @@ var SceneRecorder = /** @class */ (function () { case "morphTargetManagers": this._ApplyDeltaForEntity(source, scene, scene.getMorphTargetById.bind(scene), function (data) { return _Morph_morphTargetManager__WEBPACK_IMPORTED_MODULE_9__["MorphTargetManager"].Parse(data, scene); }); break; + case "postProcesses": + this._ApplyDeltaForEntity(source, scene, scene.getPostProcessByName.bind(scene), function (data) { return _PostProcesses_postProcess__WEBPACK_IMPORTED_MODULE_11__["PostProcess"].Parse(data, scene, ""); }); + break; } } else if (!isNaN(property)) { @@ -142304,6 +142666,11 @@ var SceneSerializer = /** @class */ (function () { for (index = 0; index < scene.particleSystems.length; index++) { serializationObject.particleSystems.push(scene.particleSystems[index].serialize(false)); } + // Post processes + serializationObject.postProcesses = []; + for (index = 0; index < scene.postProcesses.length; index++) { + serializationObject.postProcesses.push(scene.postProcesses[index].serialize()); + } // Action Manager if (scene.actionManager) { serializationObject.actions = scene.actionManager.serialize("scene"); @@ -150526,9 +150893,9 @@ var GPUParticleSystem = /** @class */ (function (_super) { _this.isLocal = false; /** @hidden */ _this._onBeforeDrawParticlesObservable = null; - if (sceneOrEngine.getClassName() === "Scene") { + if (!sceneOrEngine || sceneOrEngine.getClassName() === "Scene") { _this._scene = sceneOrEngine || _Engines_engineStore__WEBPACK_IMPORTED_MODULE_15__["EngineStore"].LastCreatedScene; - _this._engine = _this._engine; + _this._engine = _this._scene.getEngine(); _this.uniqueId = _this._scene.getUniqueId(); _this._scene.particleSystems.push(_this); } @@ -152490,21 +152857,21 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Maths/math.vector */ "./Maths/math.vector.ts"); /* harmony import */ var _Maths_math_scalar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Maths/math.scalar */ "./Maths/math.scalar.ts"); /* harmony import */ var _Meshes_buffer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Meshes/buffer */ "./Meshes/buffer.ts"); -/* harmony import */ var _Materials_materialHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Materials/materialHelper */ "./Materials/materialHelper.ts"); -/* harmony import */ var _Materials_imageProcessingConfiguration__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Materials/imageProcessingConfiguration */ "./Materials/imageProcessingConfiguration.ts"); -/* harmony import */ var _Materials_Textures_rawTexture__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Materials/Textures/rawTexture */ "./Materials/Textures/rawTexture.ts"); -/* harmony import */ var _Engines_engineStore__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Engines/engineStore */ "./Engines/engineStore.ts"); -/* harmony import */ var _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Particles/EmitterTypes/index */ "./Particles/EmitterTypes/index.ts"); -/* harmony import */ var _baseParticleSystem__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./baseParticleSystem */ "./Particles/baseParticleSystem.ts"); -/* harmony import */ var _particle__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./particle */ "./Particles/particle.ts"); -/* harmony import */ var _subEmitter__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./subEmitter */ "./Particles/subEmitter.ts"); -/* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); -/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); -/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); -/* harmony import */ var _Shaders_particles_fragment__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../Shaders/particles.fragment */ "./Shaders/particles.fragment.ts"); -/* harmony import */ var _Shaders_particles_vertex__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../Shaders/particles.vertex */ "./Shaders/particles.vertex.ts"); -/* harmony import */ var _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../Maths/math.color */ "./Maths/math.color.ts"); -/* harmony import */ var _Engines_thinEngine__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../Engines/thinEngine */ "./Engines/thinEngine.ts"); +/* harmony import */ var _Materials_imageProcessingConfiguration__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Materials/imageProcessingConfiguration */ "./Materials/imageProcessingConfiguration.ts"); +/* harmony import */ var _Materials_Textures_rawTexture__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Materials/Textures/rawTexture */ "./Materials/Textures/rawTexture.ts"); +/* harmony import */ var _Engines_engineStore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Engines/engineStore */ "./Engines/engineStore.ts"); +/* harmony import */ var _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Particles/EmitterTypes/index */ "./Particles/EmitterTypes/index.ts"); +/* harmony import */ var _baseParticleSystem__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./baseParticleSystem */ "./Particles/baseParticleSystem.ts"); +/* harmony import */ var _particle__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./particle */ "./Particles/particle.ts"); +/* harmony import */ var _subEmitter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./subEmitter */ "./Particles/subEmitter.ts"); +/* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Shaders_particles_fragment__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../Shaders/particles.fragment */ "./Shaders/particles.fragment.ts"); +/* harmony import */ var _Shaders_particles_vertex__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../Shaders/particles.vertex */ "./Shaders/particles.vertex.ts"); +/* harmony import */ var _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../Maths/math.color */ "./Maths/math.color.ts"); +/* harmony import */ var _Engines_thinEngine__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../Engines/thinEngine */ "./Engines/thinEngine.ts"); +/* harmony import */ var _Materials_thinMaterialHelper__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../Materials/thinMaterialHelper */ "./Materials/thinMaterialHelper.ts"); @@ -152562,8 +152929,8 @@ var ParticleSystem = /** @class */ (function (_super) { _this._stockParticles = new Array(); _this._newPartsExcess = 0; _this._vertexBuffers = {}; - _this._scaledColorStep = new _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"](0, 0, 0, 0); - _this._colorDiff = new _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"](0, 0, 0, 0); + _this._scaledColorStep = new _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"](0, 0, 0, 0); + _this._colorDiff = new _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"](0, 0, 0, 0); _this._scaledDirection = _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__["Vector3"].Zero(); _this._scaledGravity = _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__["Vector3"].Zero(); _this._currentRenderId = -1; @@ -152612,14 +152979,14 @@ var ParticleSystem = /** @class */ (function (_super) { particle._reset(); } else { - particle = new _particle__WEBPACK_IMPORTED_MODULE_12__["Particle"](_this); + particle = new _particle__WEBPACK_IMPORTED_MODULE_11__["Particle"](_this); } // Attach emitters if (_this._subEmitters && _this._subEmitters.length > 0) { var subEmitters = _this._subEmitters[Math.floor(Math.random() * _this._subEmitters.length)]; particle._attachedSubEmitters = []; subEmitters.forEach(function (subEmitter) { - if (subEmitter.type === _subEmitter__WEBPACK_IMPORTED_MODULE_13__["SubEmitterType"].ATTACHED) { + if (subEmitter.type === _subEmitter__WEBPACK_IMPORTED_MODULE_12__["SubEmitterType"].ATTACHED) { var newEmitter = subEmitter.clone(); particle._attachedSubEmitters.push(newEmitter); newEmitter.particleSystem.start(); @@ -152634,7 +153001,7 @@ var ParticleSystem = /** @class */ (function (_super) { } var templateIndex = Math.floor(Math.random() * _this._subEmitters.length); _this._subEmitters[templateIndex].forEach(function (subEmitter) { - if (subEmitter.type === _subEmitter__WEBPACK_IMPORTED_MODULE_13__["SubEmitterType"].END) { + if (subEmitter.type === _subEmitter__WEBPACK_IMPORTED_MODULE_12__["SubEmitterType"].END) { var subSystem = subEmitter.clone(); particle._inheritParticleInfoToSubEmitter(subSystem); subSystem.particleSystem._rootParticleSystem = _this; @@ -152647,7 +153014,7 @@ var ParticleSystem = /** @class */ (function (_super) { _this._epsilon = epsilon; _this._isAnimationSheetEnabled = isAnimationSheetEnabled; if (!sceneOrEngine || sceneOrEngine.getClassName() === "Scene") { - _this._scene = sceneOrEngine || _Engines_engineStore__WEBPACK_IMPORTED_MODULE_9__["EngineStore"].LastCreatedScene; + _this._scene = sceneOrEngine || _Engines_engineStore__WEBPACK_IMPORTED_MODULE_8__["EngineStore"].LastCreatedScene; _this._engine = _this._scene.getEngine(); _this.uniqueId = _this._scene.getUniqueId(); _this._scene.particleSystems.push(_this); @@ -152663,7 +153030,7 @@ var ParticleSystem = /** @class */ (function (_super) { _this._createIndexBuffer(); _this._createVertexBuffers(); // Default emitter type - _this.particleEmitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["BoxParticleEmitter"](); + _this.particleEmitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["BoxParticleEmitter"](); // Update _this.updateFunction = function (particles) { var noiseTextureSize = null; @@ -152693,7 +153060,7 @@ var ParticleSystem = /** @class */ (function (_super) { nextGradient.getColorToRef(particle._currentColor2); particle._currentColorGradient = currentGradient; } - _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].LerpToRef(particle._currentColor1, particle._currentColor2, scale, particle.color); + _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].LerpToRef(particle._currentColor1, particle._currentColor2, scale, particle.color); }); } else { @@ -153199,18 +153566,18 @@ var ParticleSystem = /** @class */ (function (_super) { return; } var data = new Uint8Array(this._rawTextureWidth * 4); - var tmpColor = _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["TmpColors"].Color3[0]; + var tmpColor = _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["TmpColors"].Color3[0]; for (var x = 0; x < this._rawTextureWidth; x++) { var ratio = x / this._rawTextureWidth; _Misc_gradients__WEBPACK_IMPORTED_MODULE_1__["GradientHelper"].GetCurrentGradient(ratio, this._rampGradients, function (currentGradient, nextGradient, scale) { - _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color3"].LerpToRef(currentGradient.color, nextGradient.color, scale, tmpColor); + _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color3"].LerpToRef(currentGradient.color, nextGradient.color, scale, tmpColor); data[x * 4] = tmpColor.r * 255; data[x * 4 + 1] = tmpColor.g * 255; data[x * 4 + 2] = tmpColor.b * 255; data[x * 4 + 3] = 255; }); } - this._rampGradientsTexture = _Materials_Textures_rawTexture__WEBPACK_IMPORTED_MODULE_8__["RawTexture"].CreateRGBATexture(data, this._rawTextureWidth, 1, this._scene, false, false, _Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].TEXTURE_NEAREST_SAMPLINGMODE); + this._rampGradientsTexture = _Materials_Textures_rawTexture__WEBPACK_IMPORTED_MODULE_7__["RawTexture"].CreateRGBATexture(data, this._rawTextureWidth, 1, this._scene, false, false, _Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].TEXTURE_NEAREST_SAMPLINGMODE); }; /** * Gets the current list of ramp gradients. @@ -153435,9 +153802,9 @@ var ParticleSystem = /** @class */ (function (_super) { if (this.subEmitters) { this.subEmitters.forEach(function (subEmitter) { if (subEmitter instanceof ParticleSystem) { - _this._subEmitters.push([new _subEmitter__WEBPACK_IMPORTED_MODULE_13__["SubEmitter"](subEmitter)]); + _this._subEmitters.push([new _subEmitter__WEBPACK_IMPORTED_MODULE_12__["SubEmitter"](subEmitter)]); } - else if (subEmitter instanceof _subEmitter__WEBPACK_IMPORTED_MODULE_13__["SubEmitter"]) { + else if (subEmitter instanceof _subEmitter__WEBPACK_IMPORTED_MODULE_12__["SubEmitter"]) { _this._subEmitters.push([subEmitter]); } else if (subEmitter instanceof Array) { @@ -153787,7 +154154,7 @@ var ParticleSystem = /** @class */ (function (_super) { // Color if (!this_1._colorGradients || this_1._colorGradients.length === 0) { step = _Maths_math_scalar__WEBPACK_IMPORTED_MODULE_4__["Scalar"].RandomRange(0, 1.0); - _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].LerpToRef(this_1.color1, this_1.color2, step, particle.color); + _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].LerpToRef(this_1.color1, this_1.color2, step, particle.color); this_1.colorDead.subtractToRef(particle.color, this_1._colorDiff); this_1._colorDiff.scaleToRef(1.0 / particle.lifeTime, particle.colorStep); } @@ -153927,8 +154294,8 @@ var ParticleSystem = /** @class */ (function (_super) { uniforms.push.apply(uniforms, ParticleSystem._GetEffectCreationOptions(this._isAnimationSheetEnabled)); samplers.push("diffuseSampler", "rampSampler"); if (this._imageProcessingConfiguration) { - _Materials_imageProcessingConfiguration__WEBPACK_IMPORTED_MODULE_7__["ImageProcessingConfiguration"].PrepareUniforms(uniforms, this._imageProcessingConfigurationDefines); - _Materials_imageProcessingConfiguration__WEBPACK_IMPORTED_MODULE_7__["ImageProcessingConfiguration"].PrepareSamplers(samplers, this._imageProcessingConfigurationDefines); + _Materials_imageProcessingConfiguration__WEBPACK_IMPORTED_MODULE_6__["ImageProcessingConfiguration"].PrepareUniforms(uniforms, this._imageProcessingConfigurationDefines); + _Materials_imageProcessingConfiguration__WEBPACK_IMPORTED_MODULE_6__["ImageProcessingConfiguration"].PrepareSamplers(samplers, this._imageProcessingConfigurationDefines); } }; /** @hidden */ @@ -154112,7 +154479,7 @@ var ParticleSystem = /** @class */ (function (_super) { var defines = effect.defines; if (this._scene) { if (this._scene.clipPlane || this._scene.clipPlane2 || this._scene.clipPlane3 || this._scene.clipPlane4 || this._scene.clipPlane5 || this._scene.clipPlane6) { - _Materials_materialHelper__WEBPACK_IMPORTED_MODULE_6__["MaterialHelper"].BindClipPlane(effect, this._scene); + _Materials_thinMaterialHelper__WEBPACK_IMPORTED_MODULE_20__["ThinMaterialHelper"].BindClipPlane(effect, this._scene); } } if (defines.indexOf("#define BILLBOARDMODE_ALL") >= 0) { @@ -154128,26 +154495,26 @@ var ParticleSystem = /** @class */ (function (_super) { // Draw order switch (blendMode) { case ParticleSystem.BLENDMODE_ADD: - engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].ALPHA_ADD); + engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].ALPHA_ADD); break; case ParticleSystem.BLENDMODE_ONEONE: - engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].ALPHA_ONEONE); + engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].ALPHA_ONEONE); break; case ParticleSystem.BLENDMODE_STANDARD: - engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].ALPHA_COMBINE); + engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].ALPHA_COMBINE); break; case ParticleSystem.BLENDMODE_MULTIPLY: - engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].ALPHA_MULTIPLY); + engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].ALPHA_MULTIPLY); break; } if (this._onBeforeDrawParticlesObservable) { this._onBeforeDrawParticlesObservable.notifyObservers(effect); } if (this._useInstancing) { - engine.drawArraysType(_Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].MATERIAL_TriangleFanDrawMode, 0, 4, this._particles.length); + engine.drawArraysType(_Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].MATERIAL_TriangleFanDrawMode, 0, 4, this._particles.length); } else { - engine.drawElementsType(_Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].MATERIAL_TriangleFillMode, 0, this._particles.length * 6); + engine.drawElementsType(_Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].MATERIAL_TriangleFillMode, 0, this._particles.length * 6); } return this._particles.length; }; @@ -154173,7 +154540,7 @@ var ParticleSystem = /** @class */ (function (_super) { } outparticles = this._render(this.blendMode); this._engine.unbindInstanceAttributes(); - this._engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].ALPHA_DISABLE); + this._engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].ALPHA_DISABLE); return outparticles; }; /** @@ -154330,7 +154697,7 @@ var ParticleSystem = /** @class */ (function (_super) { } serializationObject.isLocal = particleSystem.isLocal; // Animations - _Misc_decorators__WEBPACK_IMPORTED_MODULE_15__["SerializationHelper"].AppendSerializedAnimations(particleSystem, serializationObject); + _Misc_decorators__WEBPACK_IMPORTED_MODULE_14__["SerializationHelper"].AppendSerializedAnimations(particleSystem, serializationObject); serializationObject.beginAnimationOnStart = particleSystem.beginAnimationOnStart; serializationObject.beginAnimationFrom = particleSystem.beginAnimationFrom; serializationObject.beginAnimationTo = particleSystem.beginAnimationTo; @@ -154591,13 +154958,13 @@ var ParticleSystem = /** @class */ (function (_super) { /** @hidden */ ParticleSystem._Parse = function (parsedParticleSystem, particleSystem, sceneOrEngine, rootUrl) { var scene; - if (sceneOrEngine instanceof _Engines_thinEngine__WEBPACK_IMPORTED_MODULE_20__["ThinEngine"]) { + if (sceneOrEngine instanceof _Engines_thinEngine__WEBPACK_IMPORTED_MODULE_19__["ThinEngine"]) { scene = null; } else { scene = sceneOrEngine; } - var internalClass = _Misc_typeStore__WEBPACK_IMPORTED_MODULE_16__["_TypeStore"].GetClass("BABYLON.Texture"); + var internalClass = _Misc_typeStore__WEBPACK_IMPORTED_MODULE_15__["_TypeStore"].GetClass("BABYLON.Texture"); if (internalClass && scene) { // Texture if (parsedParticleSystem.texture) { @@ -154633,7 +155000,7 @@ var ParticleSystem = /** @class */ (function (_super) { if (parsedParticleSystem.animations) { for (var animationIndex = 0; animationIndex < parsedParticleSystem.animations.length; animationIndex++) { var parsedAnimation = parsedParticleSystem.animations[animationIndex]; - var internalClass_1 = _Misc_typeStore__WEBPACK_IMPORTED_MODULE_16__["_TypeStore"].GetClass("BABYLON.Animation"); + var internalClass_1 = _Misc_typeStore__WEBPACK_IMPORTED_MODULE_15__["_TypeStore"].GetClass("BABYLON.Animation"); if (internalClass_1) { particleSystem.animations.push(internalClass_1.Parse(parsedAnimation)); } @@ -154675,22 +155042,22 @@ var ParticleSystem = /** @class */ (function (_super) { if (parsedParticleSystem.noiseStrength) { particleSystem.noiseStrength = _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__["Vector3"].FromArray(parsedParticleSystem.noiseStrength); } - particleSystem.color1 = _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].FromArray(parsedParticleSystem.color1); - particleSystem.color2 = _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].FromArray(parsedParticleSystem.color2); - particleSystem.colorDead = _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].FromArray(parsedParticleSystem.colorDead); + particleSystem.color1 = _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].FromArray(parsedParticleSystem.color1); + particleSystem.color2 = _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].FromArray(parsedParticleSystem.color2); + particleSystem.colorDead = _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].FromArray(parsedParticleSystem.colorDead); particleSystem.updateSpeed = parsedParticleSystem.updateSpeed; particleSystem.targetStopDuration = parsedParticleSystem.targetStopDuration; particleSystem.blendMode = parsedParticleSystem.blendMode; if (parsedParticleSystem.colorGradients) { for (var _i = 0, _a = parsedParticleSystem.colorGradients; _i < _a.length; _i++) { var colorGradient = _a[_i]; - particleSystem.addColorGradient(colorGradient.gradient, _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].FromArray(colorGradient.color1), colorGradient.color2 ? _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].FromArray(colorGradient.color2) : undefined); + particleSystem.addColorGradient(colorGradient.gradient, _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].FromArray(colorGradient.color1), colorGradient.color2 ? _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].FromArray(colorGradient.color2) : undefined); } } if (parsedParticleSystem.rampGradients) { for (var _b = 0, _c = parsedParticleSystem.rampGradients; _b < _c.length; _b++) { var rampGradient = _c[_b]; - particleSystem.addRampGradient(rampGradient.gradient, _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color3"].FromArray(rampGradient.color)); + particleSystem.addRampGradient(rampGradient.gradient, _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color3"].FromArray(rampGradient.color)); } particleSystem.useRampGradients = parsedParticleSystem.useRampGradients; } @@ -154756,7 +155123,7 @@ var ParticleSystem = /** @class */ (function (_super) { particleSystem.limitVelocityDamping = parsedParticleSystem.limitVelocityDamping; } if (parsedParticleSystem.noiseTexture && scene) { - var internalClass_2 = _Misc_typeStore__WEBPACK_IMPORTED_MODULE_16__["_TypeStore"].GetClass("BABYLON.ProceduralTexture"); + var internalClass_2 = _Misc_typeStore__WEBPACK_IMPORTED_MODULE_15__["_TypeStore"].GetClass("BABYLON.ProceduralTexture"); particleSystem.noiseTexture = internalClass_2.Parse(parsedParticleSystem.noiseTexture, scene, rootUrl); } // Emitter @@ -154764,40 +155131,40 @@ var ParticleSystem = /** @class */ (function (_super) { if (parsedParticleSystem.particleEmitterType) { switch (parsedParticleSystem.particleEmitterType.type) { case "SphereParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["SphereParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["SphereParticleEmitter"](); break; case "SphereDirectedParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["SphereDirectedParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["SphereDirectedParticleEmitter"](); break; case "ConeEmitter": case "ConeParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["ConeParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["ConeParticleEmitter"](); break; case "CylinderParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["CylinderParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["CylinderParticleEmitter"](); break; case "CylinderDirectedParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["CylinderDirectedParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["CylinderDirectedParticleEmitter"](); break; case "HemisphericParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["HemisphericParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["HemisphericParticleEmitter"](); break; case "PointParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["PointParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["PointParticleEmitter"](); break; case "MeshParticleEmitter": - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["MeshParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["MeshParticleEmitter"](); break; case "BoxEmitter": case "BoxParticleEmitter": default: - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["BoxParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["BoxParticleEmitter"](); break; } emitterType.parse(parsedParticleSystem.particleEmitterType, scene); } else { - emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_10__["BoxParticleEmitter"](); + emitterType = new _Particles_EmitterTypes_index__WEBPACK_IMPORTED_MODULE_9__["BoxParticleEmitter"](); emitterType.parse(parsedParticleSystem, scene); } particleSystem.particleEmitterType = emitterType; @@ -154824,7 +155191,7 @@ var ParticleSystem = /** @class */ (function (_super) { var program = null; var engine; var scene; - if (sceneOrEngine instanceof _Engines_thinEngine__WEBPACK_IMPORTED_MODULE_20__["ThinEngine"]) { + if (sceneOrEngine instanceof _Engines_thinEngine__WEBPACK_IMPORTED_MODULE_19__["ThinEngine"]) { engine = sceneOrEngine; } else { @@ -154849,14 +155216,14 @@ var ParticleSystem = /** @class */ (function (_super) { var cellArray = []; for (var _b = 0, cell_1 = cell; _b < cell_1.length; _b++) { var sub = cell_1[_b]; - cellArray.push(_subEmitter__WEBPACK_IMPORTED_MODULE_13__["SubEmitter"].Parse(sub, sceneOrEngine, rootUrl)); + cellArray.push(_subEmitter__WEBPACK_IMPORTED_MODULE_12__["SubEmitter"].Parse(sub, sceneOrEngine, rootUrl)); } particleSystem.subEmitters.push(cellArray); } } ParticleSystem._Parse(parsedParticleSystem, particleSystem, sceneOrEngine, rootUrl); if (parsedParticleSystem.textureMask) { - particleSystem.textureMask = _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__["Color4"].FromArray(parsedParticleSystem.textureMask); + particleSystem.textureMask = _Maths_math_color__WEBPACK_IMPORTED_MODULE_18__["Color4"].FromArray(parsedParticleSystem.textureMask); } // Auto start if (parsedParticleSystem.preventAutoStart) { @@ -154870,19 +155237,19 @@ var ParticleSystem = /** @class */ (function (_super) { /** * Billboard mode will only apply to Y axis */ - ParticleSystem.BILLBOARDMODE_Y = _Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].PARTICLES_BILLBOARDMODE_Y; + ParticleSystem.BILLBOARDMODE_Y = _Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].PARTICLES_BILLBOARDMODE_Y; /** * Billboard mode will apply to all axes */ - ParticleSystem.BILLBOARDMODE_ALL = _Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].PARTICLES_BILLBOARDMODE_ALL; + ParticleSystem.BILLBOARDMODE_ALL = _Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].PARTICLES_BILLBOARDMODE_ALL; /** * Special billboard mode where the particle will be biilboard to the camera but rotated to align with direction */ - ParticleSystem.BILLBOARDMODE_STRETCHED = _Engines_constants__WEBPACK_IMPORTED_MODULE_14__["Constants"].PARTICLES_BILLBOARDMODE_STRETCHED; + ParticleSystem.BILLBOARDMODE_STRETCHED = _Engines_constants__WEBPACK_IMPORTED_MODULE_13__["Constants"].PARTICLES_BILLBOARDMODE_STRETCHED; return ParticleSystem; -}(_baseParticleSystem__WEBPACK_IMPORTED_MODULE_11__["BaseParticleSystem"])); +}(_baseParticleSystem__WEBPACK_IMPORTED_MODULE_10__["BaseParticleSystem"])); -_subEmitter__WEBPACK_IMPORTED_MODULE_13__["SubEmitter"]._ParseParticleSystem = ParticleSystem.Parse; +_subEmitter__WEBPACK_IMPORTED_MODULE_12__["SubEmitter"]._ParseParticleSystem = ParticleSystem.Parse; /***/ }), @@ -167641,6 +168008,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.js"); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Shaders_anaglyph_fragment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Shaders/anaglyph.fragment */ "./Shaders/anaglyph.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); + @@ -167666,9 +168035,17 @@ var AnaglyphPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "AnaglyphPostProcess" string + */ + AnaglyphPostProcess.prototype.getClassName = function () { + return "AnaglyphPostProcess"; + }; return AnaglyphPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__["_TypeStore"].RegisteredTypes["BABYLON.AnaglyphPostProcess"] = AnaglyphPostProcess; /***/ }), @@ -167686,6 +168063,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.js"); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Shaders_blackAndWhite_fragment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Shaders/blackAndWhite.fragment */ "./Shaders/blackAndWhite.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -167715,9 +168096,26 @@ var BlackAndWhitePostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "BlackAndWhitePostProcess" string + */ + BlackAndWhitePostProcess.prototype.getClassName = function () { + return "BlackAndWhitePostProcess"; + }; + /** @hidden */ + BlackAndWhitePostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__["SerializationHelper"].Parse(function () { + return new BlackAndWhitePostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_4__["serialize"])() + ], BlackAndWhitePostProcess.prototype, "degree", void 0); return BlackAndWhitePostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__["_TypeStore"].RegisteredTypes["BABYLON.BlackAndWhitePostProcess"] = BlackAndWhitePostProcess; /***/ }), @@ -167876,6 +168274,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_bloomMerge_fragment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Shaders/bloomMerge.fragment */ "./Shaders/bloomMerge.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -167905,6 +168307,8 @@ var BloomMergePostProcess = /** @class */ (function (_super) { if (textureType === void 0) { textureType = _Engines_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTURETYPE_UNSIGNED_INT; } if (blockCompilation === void 0) { blockCompilation = false; } var _this = _super.call(this, name, "bloomMerge", ["bloomWeight"], ["circleOfConfusionSampler", "blurStep0", "blurStep1", "blurStep2", "bloomBlur"], options, camera, samplingMode, engine, reusable, null, textureType, undefined, null, true) || this; + /** Weight of the bloom to be added to the original input. */ + _this.weight = 1; _this.weight = weight; _this.onApplyObservable.add(function (effect) { effect.setTextureFromPostProcess("textureSampler", originalFromInput); @@ -167916,9 +168320,20 @@ var BloomMergePostProcess = /** @class */ (function (_super) { } return _this; } + /** + * Gets a string identifying the name of the class + * @returns "BloomMergePostProcess" string + */ + BloomMergePostProcess.prototype.getClassName = function () { + return "BloomMergePostProcess"; + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], BloomMergePostProcess.prototype, "weight", void 0); return BloomMergePostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__["_TypeStore"].RegisteredTypes["BABYLON.BloomMergePostProcess"] = BloomMergePostProcess; /***/ }), @@ -167939,6 +168354,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_kernelBlur_fragment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Shaders/kernelBlur.fragment */ "./Shaders/kernelBlur.fragment.ts"); /* harmony import */ var _Shaders_kernelBlur_vertex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Shaders/kernelBlur.vertex */ "./Shaders/kernelBlur.vertex.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -167964,19 +168383,17 @@ var BlurPostProcess = /** @class */ (function (_super) { * @param textureType Type of textures used when performing the post process. (default: 0) * @param blockCompilation If compilation of the shader should not be done in the constructor. The updateEffect method can be used to compile the shader at a later time. (default: false) */ - function BlurPostProcess(name, - /** The direction in which to blur the image. */ - direction, kernel, options, camera, samplingMode, engine, reusable, textureType, defines, blockCompilation) { + function BlurPostProcess(name, direction, kernel, options, camera, samplingMode, engine, reusable, textureType, defines, blockCompilation) { if (samplingMode === void 0) { samplingMode = _Materials_Textures_texture__WEBPACK_IMPORTED_MODULE_2__["Texture"].BILINEAR_SAMPLINGMODE; } if (textureType === void 0) { textureType = _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTURETYPE_UNSIGNED_INT; } if (defines === void 0) { defines = ""; } if (blockCompilation === void 0) { blockCompilation = false; } var _this = _super.call(this, name, "kernelBlur", ["delta", "direction", "cameraMinMaxZ"], ["circleOfConfusionSampler"], options, camera, samplingMode, engine, reusable, null, textureType, "kernelBlur", { varyingCount: 0, depCount: 0 }, true) || this; - _this.direction = direction; _this.blockCompilation = blockCompilation; _this._packedFloat = false; _this._staticDefines = ""; _this._staticDefines = defines; + _this.direction = direction; _this.onApplyObservable.add(function (effect) { if (_this._outputTexture) { effect.setFloat2('delta', (1 / _this._outputTexture.width) * _this.direction.x, (1 / _this._outputTexture.height) * _this.direction.y); @@ -168034,6 +168451,13 @@ var BlurPostProcess = /** @class */ (function (_super) { enumerable: false, configurable: true }); + /** + * Gets a string identifying the name of the class + * @returns "BlurPostProcess" string + */ + BlurPostProcess.prototype.getClassName = function () { + return "BlurPostProcess"; + }; /** * Updates the effect with the current post process compile time values and recompiles the shader. * @param defines Define statements that should be added at the beginning of the shader. (default: null) @@ -168177,9 +168601,25 @@ var BlurPostProcess = /** @class */ (function (_super) { if (decimalFigures === void 0) { decimalFigures = 8; } return x.toFixed(decimalFigures).replace(/0+$/, ''); }; + /** @hidden */ + BlurPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_7__["SerializationHelper"].Parse(function () { + return new BlurPostProcess(parsedPostProcess.name, parsedPostProcess.direction, parsedPostProcess.kernel, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable, parsedPostProcess.textureType, undefined, false); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_7__["serialize"])("kernel") + ], BlurPostProcess.prototype, "_kernel", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_7__["serialize"])("packedFloat") + ], BlurPostProcess.prototype, "_packedFloat", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_7__["serializeAsVector2"])() + ], BlurPostProcess.prototype, "direction", void 0); return BlurPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__["_TypeStore"].RegisteredTypes["BABYLON.BlurPostProcess"] = BlurPostProcess; /***/ }), @@ -168199,6 +168639,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_chromaticAberration_fragment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Shaders/chromaticAberration.fragment */ "./Shaders/chromaticAberration.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -168242,6 +168686,8 @@ var ChromaticAberrationPostProcess = /** @class */ (function (_super) { * The center position where the radialIntensity should be around. [0.5,0.5 is center of screen, 1,1 is top right corder] (default: Vector2(0.5 ,0.5)) */ _this.centerPosition = new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector2"](0.5, 0.5); + _this.screenWidth = screenWidth; + _this.screenHeight = screenHeight; _this.onApplyObservable.add(function (effect) { effect.setFloat('chromatic_aberration', _this.aberrationAmount); effect.setFloat('screen_width', screenWidth); @@ -168252,9 +168698,41 @@ var ChromaticAberrationPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "ChromaticAberrationPostProcess" string + */ + ChromaticAberrationPostProcess.prototype.getClassName = function () { + return "ChromaticAberrationPostProcess"; + }; + /** @hidden */ + ChromaticAberrationPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["SerializationHelper"].Parse(function () { + return new ChromaticAberrationPostProcess(parsedPostProcess.name, parsedPostProcess.screenWidth, parsedPostProcess.screenHeight, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable, parsedPostProcess.textureType, false); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], ChromaticAberrationPostProcess.prototype, "aberrationAmount", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], ChromaticAberrationPostProcess.prototype, "radialIntensity", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], ChromaticAberrationPostProcess.prototype, "direction", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], ChromaticAberrationPostProcess.prototype, "centerPosition", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], ChromaticAberrationPostProcess.prototype, "screenWidth", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], ChromaticAberrationPostProcess.prototype, "screenHeight", void 0); return ChromaticAberrationPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_5__["_TypeStore"].RegisteredTypes["BABYLON.ChromaticAberrationPostProcess"] = ChromaticAberrationPostProcess; /***/ }), @@ -168274,6 +168752,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Misc_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Misc/logger */ "./Misc/logger.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_circleOfConfusion_fragment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Shaders/circleOfConfusion.fragment */ "./Shaders/circleOfConfusion.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -168333,6 +168815,13 @@ var CircleOfConfusionPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "CircleOfConfusionPostProcess" string + */ + CircleOfConfusionPostProcess.prototype.getClassName = function () { + return "CircleOfConfusionPostProcess"; + }; Object.defineProperty(CircleOfConfusionPostProcess.prototype, "depthTexture", { /** * Depth texture to be used to compute the circle of confusion. This must be set here or in the constructor in order for the post process to function. @@ -168343,9 +168832,22 @@ var CircleOfConfusionPostProcess = /** @class */ (function (_super) { enumerable: false, configurable: true }); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], CircleOfConfusionPostProcess.prototype, "lensSize", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], CircleOfConfusionPostProcess.prototype, "fStop", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], CircleOfConfusionPostProcess.prototype, "focusDistance", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_6__["serialize"])() + ], CircleOfConfusionPostProcess.prototype, "focalLength", void 0); return CircleOfConfusionPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_5__["_TypeStore"].RegisteredTypes["BABYLON.CircleOfConfusionPostProcess"] = CircleOfConfusionPostProcess; /***/ }), @@ -168364,6 +168866,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Materials_Textures_texture__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Materials/Textures/texture */ "./Materials/Textures/texture.ts"); /* harmony import */ var _Shaders_colorCorrection_fragment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Shaders/colorCorrection.fragment */ "./Shaders/colorCorrection.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -168391,14 +168897,32 @@ var ColorCorrectionPostProcess = /** @class */ (function (_super) { _this._colorTableTexture.anisotropicFilteringLevel = 1; _this._colorTableTexture.wrapU = _Materials_Textures_texture__WEBPACK_IMPORTED_MODULE_2__["Texture"].CLAMP_ADDRESSMODE; _this._colorTableTexture.wrapV = _Materials_Textures_texture__WEBPACK_IMPORTED_MODULE_2__["Texture"].CLAMP_ADDRESSMODE; + _this.colorTableUrl = colorTableUrl; _this.onApply = function (effect) { effect.setTexture("colorTable", _this._colorTableTexture); }; return _this; } + /** + * Gets a string identifying the name of the class + * @returns "ColorCorrectionPostProcess" string + */ + ColorCorrectionPostProcess.prototype.getClassName = function () { + return "ColorCorrectionPostProcess"; + }; + /** @hidden */ + ColorCorrectionPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["SerializationHelper"].Parse(function () { + return new ColorCorrectionPostProcess(parsedPostProcess.name, parsedPostProcess.colorTableUrl, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], ColorCorrectionPostProcess.prototype, "colorTableUrl", void 0); return ColorCorrectionPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__["_TypeStore"].RegisteredTypes["BABYLON.ColorCorrectionPostProcess"] = ColorCorrectionPostProcess; /***/ }), @@ -168417,6 +168941,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_convolution_fragment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Shaders/convolution.fragment */ "./Shaders/convolution.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -168439,9 +168967,7 @@ var ConvolutionPostProcess = /** @class */ (function (_super) { * @param reusable If the post process can be reused on the same frame. (default: false) * @param textureType Type of textures used when performing the post process. (default: 0) */ - function ConvolutionPostProcess(name, - /** Array of 9 values corresponding to the 3x3 kernel to be applied */ - kernel, options, camera, samplingMode, engine, reusable, textureType) { + function ConvolutionPostProcess(name, kernel, options, camera, samplingMode, engine, reusable, textureType) { if (textureType === void 0) { textureType = _Engines_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTURETYPE_UNSIGNED_INT; } var _this = _super.call(this, name, "convolution", ["kernel", "screenSize"], null, options, camera, samplingMode, engine, reusable, null, textureType) || this; _this.kernel = kernel; @@ -168451,6 +168977,19 @@ var ConvolutionPostProcess = /** @class */ (function (_super) { }; return _this; } + /** + * Gets a string identifying the name of the class + * @returns "ConvolutionPostProcess" string + */ + ConvolutionPostProcess.prototype.getClassName = function () { + return "ConvolutionPostProcess"; + }; + /** @hidden */ + ConvolutionPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["SerializationHelper"].Parse(function () { + return new ConvolutionPostProcess(parsedPostProcess.name, parsedPostProcess.kernel, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable, parsedPostProcess.textureType); + }, parsedPostProcess, scene, rootUrl); + }; // Statics /** * Edge detection 0 see https://en.wikipedia.org/wiki/Kernel_(image_processing) @@ -168476,9 +169015,13 @@ var ConvolutionPostProcess = /** @class */ (function (_super) { * Kernel to blur an image see https://en.wikipedia.org/wiki/Kernel_(image_processing) */ ConvolutionPostProcess.GaussianKernel = [0, 1, 0, 1, 1, 1, 0, 1, 0]; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], ConvolutionPostProcess.prototype, "kernel", void 0); return ConvolutionPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__["_TypeStore"].RegisteredTypes["BABYLON.ConvolutionPostProcess"] = ConvolutionPostProcess; /***/ }), @@ -168497,6 +169040,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Materials_Textures_texture__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Materials/Textures/texture */ "./Materials/Textures/texture.ts"); /* harmony import */ var _blurPostProcess__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blurPostProcess */ "./PostProcesses/blurPostProcess.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -168543,9 +169090,20 @@ var DepthOfFieldBlurPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "DepthOfFieldBlurPostProcess" string + */ + DepthOfFieldBlurPostProcess.prototype.getClassName = function () { + return "DepthOfFieldBlurPostProcess"; + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], DepthOfFieldBlurPostProcess.prototype, "direction", void 0); return DepthOfFieldBlurPostProcess; }(_blurPostProcess__WEBPACK_IMPORTED_MODULE_2__["BlurPostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__["_TypeStore"].RegisteredTypes["BABYLON.DepthOfFieldBlurPostProcess"] = DepthOfFieldBlurPostProcess; /***/ }), @@ -168835,6 +169393,13 @@ var DepthOfFieldMergePostProcess = /** @class */ (function (_super) { } return _this; } + /** + * Gets a string identifying the name of the class + * @returns "DepthOfFieldMergePostProcess" string + */ + DepthOfFieldMergePostProcess.prototype.getClassName = function () { + return "DepthOfFieldMergePostProcess"; + }; /** * Updates the effect with the current post process compile time values and recompiles the shader. * @param defines Define statements that should be added at the beginning of the shader. (default: null) @@ -168874,6 +169439,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.js"); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Shaders_displayPass_fragment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Shaders/displayPass.fragment */ "./Shaders/displayPass.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -168894,9 +169463,23 @@ var DisplayPassPostProcess = /** @class */ (function (_super) { function DisplayPassPostProcess(name, options, camera, samplingMode, engine, reusable) { return _super.call(this, name, "displayPass", ["passSampler"], ["passSampler"], options, camera, samplingMode, engine, reusable) || this; } + /** + * Gets a string identifying the name of the class + * @returns "DisplayPassPostProcess" string + */ + DisplayPassPostProcess.prototype.getClassName = function () { + return "DisplayPassPostProcess"; + }; + /** @hidden */ + DisplayPassPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__["SerializationHelper"].Parse(function () { + return new DisplayPassPostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; return DisplayPassPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__["_TypeStore"].RegisteredTypes["BABYLON.DisplayPassPostProcess"] = DisplayPassPostProcess; /***/ }), @@ -168916,6 +169499,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Maths_math_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Maths/math.constants */ "./Maths/math.constants.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_extractHighlights_fragment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Shaders/extractHighlights.fragment */ "./Shaders/extractHighlights.fragment.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); + + @@ -168950,9 +169537,20 @@ var ExtractHighlightsPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "ExtractHighlightsPostProcess" string + */ + ExtractHighlightsPostProcess.prototype.getClassName = function () { + return "ExtractHighlightsPostProcess"; + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], ExtractHighlightsPostProcess.prototype, "threshold", void 0); return ExtractHighlightsPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__["_TypeStore"].RegisteredTypes["BABYLON.ExtractHighlightsPostProcess"] = ExtractHighlightsPostProcess; /***/ }), @@ -168970,6 +169568,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.js"); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Shaders_filter_fragment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Shaders/filter.fragment */ "./Shaders/filter.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -168988,9 +169590,7 @@ var FilterPostProcess = /** @class */ (function (_super) { * @param engine The engine which the post process will be applied. (default: current engine) * @param reusable If the post process can be reused on the same frame. (default: false) */ - function FilterPostProcess(name, - /** The matrix to be applied to the image */ - kernelMatrix, options, camera, samplingMode, engine, reusable) { + function FilterPostProcess(name, kernelMatrix, options, camera, samplingMode, engine, reusable) { var _this = _super.call(this, name, "filter", ["kernelMatrix"], null, options, camera, samplingMode, engine, reusable) || this; _this.kernelMatrix = kernelMatrix; _this.onApply = function (effect) { @@ -168998,9 +169598,26 @@ var FilterPostProcess = /** @class */ (function (_super) { }; return _this; } + /** + * Gets a string identifying the name of the class + * @returns "FilterPostProcess" string + */ + FilterPostProcess.prototype.getClassName = function () { + return "FilterPostProcess"; + }; + /** @hidden */ + FilterPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__["SerializationHelper"].Parse(function () { + return new FilterPostProcess(parsedPostProcess.name, parsedPostProcess.kernelMatrix, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_4__["serializeAsMatrix"])() + ], FilterPostProcess.prototype, "kernelMatrix", void 0); return FilterPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_3__["_TypeStore"].RegisteredTypes["BABYLON.FilterPostProcess"] = FilterPostProcess; /***/ }), @@ -169021,6 +169638,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_fxaa_fragment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Shaders/fxaa.fragment */ "./Shaders/fxaa.fragment.ts"); /* harmony import */ var _Shaders_fxaa_vertex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Shaders/fxaa.vertex */ "./Shaders/fxaa.vertex.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -169045,6 +169666,13 @@ var FxaaPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "FxaaPostProcess" string + */ + FxaaPostProcess.prototype.getClassName = function () { + return "FxaaPostProcess"; + }; FxaaPostProcess.prototype._getDefines = function () { var engine = this.getEngine(); if (!engine) { @@ -169056,9 +169684,16 @@ var FxaaPostProcess = /** @class */ (function (_super) { } return null; }; + /** @hidden */ + FxaaPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_7__["SerializationHelper"].Parse(function () { + return new FxaaPostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; return FxaaPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__["_TypeStore"].RegisteredTypes["BABYLON.FxaaPostProcess"] = FxaaPostProcess; /***/ }), @@ -169077,6 +169712,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_grain_fragment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Shaders/grain.fragment */ "./Shaders/grain.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -169115,9 +169754,29 @@ var GrainPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "GrainPostProcess" string + */ + GrainPostProcess.prototype.getClassName = function () { + return "GrainPostProcess"; + }; + /** @hidden */ + GrainPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["SerializationHelper"].Parse(function () { + return new GrainPostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], GrainPostProcess.prototype, "intensity", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], GrainPostProcess.prototype, "animated", void 0); return GrainPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__["_TypeStore"].RegisteredTypes["BABYLON.GrainPostProcess"] = GrainPostProcess; /***/ }), @@ -169161,6 +169820,13 @@ var HighlightsPostProcess = /** @class */ (function (_super) { if (textureType === void 0) { textureType = _Engines_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTURETYPE_UNSIGNED_INT; } return _super.call(this, name, "highlights", null, null, options, camera, samplingMode, engine, reusable, null, textureType) || this; } + /** + * Gets a string identifying the name of the class + * @returns "HighlightsPostProcess" string + */ + HighlightsPostProcess.prototype.getClassName = function () { + return "HighlightsPostProcess"; + }; return HighlightsPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); @@ -169839,6 +170505,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Animations_animatable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Animations/animatable */ "./Animations/animatable.ts"); /* harmony import */ var _Rendering_geometryBufferRendererSceneComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Rendering/geometryBufferRendererSceneComponent */ "./Rendering/geometryBufferRendererSceneComponent.ts"); /* harmony import */ var _Shaders_motionBlur_fragment__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Shaders/motionBlur.fragment */ "./Shaders/motionBlur.fragment.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); + + @@ -169923,6 +170593,13 @@ var MotionBlurPostProcess = /** @class */ (function (_super) { enumerable: false, configurable: true }); + /** + * Gets a string identifying the name of the class + * @returns "MotionBlurPostProcess" string + */ + MotionBlurPostProcess.prototype.getClassName = function () { + return "MotionBlurPostProcess"; + }; /** * Excludes the given skinned mesh from computing bones velocities. * Computing bones velocities can have a cost and that cost. The cost can be saved by calling this function and by passing the skinned mesh reference to ignore. @@ -169959,9 +170636,22 @@ var MotionBlurPostProcess = /** @class */ (function (_super) { } _super.prototype.dispose.call(this, camera); }; + /** @hidden */ + MotionBlurPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_9__["SerializationHelper"].Parse(function () { + return new MotionBlurPostProcess(parsedPostProcess.name, scene, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable, parsedPostProcess.textureType, false); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_9__["serialize"])() + ], MotionBlurPostProcess.prototype, "motionStrength", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_9__["serialize"])("motionBlurSamples") + ], MotionBlurPostProcess.prototype, "_motionBlurSamples", void 0); return MotionBlurPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_3__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_10__["_TypeStore"].RegisteredTypes["BABYLON.MotionBlurPostProcess"] = MotionBlurPostProcess; /***/ }), @@ -169983,6 +170673,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Engines_engine__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/engine */ "./Engines/engine.ts"); /* harmony import */ var _Shaders_pass_fragment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Shaders/pass.fragment */ "./Shaders/pass.fragment.ts"); /* harmony import */ var _Shaders_passCube_fragment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Shaders/passCube.fragment */ "./Shaders/passCube.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -170011,9 +170705,23 @@ var PassPostProcess = /** @class */ (function (_super) { if (blockCompilation === void 0) { blockCompilation = false; } return _super.call(this, name, "pass", null, null, options, camera, samplingMode, engine, reusable, undefined, textureType, undefined, null, blockCompilation) || this; } + /** + * Gets a string identifying the name of the class + * @returns "PassPostProcess" string + */ + PassPostProcess.prototype.getClassName = function () { + return "PassPostProcess"; + }; + /** @hidden */ + PassPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_7__["SerializationHelper"].Parse(function () { + return new PassPostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; return PassPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__["_TypeStore"].RegisteredTypes["BABYLON.PassPostProcess"] = PassPostProcess; /** * PassCubePostProcess which produces an output the same as it's input (which must be a cube texture) */ @@ -170080,6 +170788,19 @@ var PassCubePostProcess = /** @class */ (function (_super) { enumerable: false, configurable: true }); + /** + * Gets a string identifying the name of the class + * @returns "PassCubePostProcess" string + */ + PassCubePostProcess.prototype.getClassName = function () { + return "PassCubePostProcess"; + }; + /** @hidden */ + PassCubePostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_7__["SerializationHelper"].Parse(function () { + return new PassCubePostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; return PassCubePostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); @@ -170100,13 +170821,19 @@ _Engines_engine__WEBPACK_IMPORTED_MODULE_3__["Engine"]._RescalePostProcessFactor "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostProcess", function() { return PostProcess; }); -/* harmony import */ var _Misc_smartArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Misc/smartArray */ "./Misc/smartArray.ts"); -/* harmony import */ var _Misc_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Misc/observable */ "./Misc/observable.ts"); -/* harmony import */ var _Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Maths/math.vector */ "./Maths/math.vector.ts"); -/* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); -/* harmony import */ var _Shaders_postprocess_vertex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Shaders/postprocess.vertex */ "./Shaders/postprocess.vertex.ts"); -/* harmony import */ var _Engines_engine__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Engines/engine */ "./Engines/engine.ts"); -/* harmony import */ var _Engines_Extensions_engine_renderTarget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Engines/Extensions/engine.renderTarget */ "./Engines/Extensions/engine.renderTarget.ts"); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _Misc_smartArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Misc/smartArray */ "./Misc/smartArray.ts"); +/* harmony import */ var _Misc_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Misc/observable */ "./Misc/observable.ts"); +/* harmony import */ var _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Maths/math.vector */ "./Maths/math.vector.ts"); +/* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); +/* harmony import */ var _Shaders_postprocess_vertex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Shaders/postprocess.vertex */ "./Shaders/postprocess.vertex.ts"); +/* harmony import */ var _Engines_engine__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Engines/engine */ "./Engines/engine.ts"); +/* harmony import */ var _Engines_Extensions_engine_renderTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Engines/Extensions/engine.renderTarget */ "./Engines/Extensions/engine.renderTarget.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); + + + @@ -170137,16 +170864,13 @@ var PostProcess = /** @class */ (function () { * @param blockCompilation If the shader should not be compiled imediatly. (default: false) * @param textureFormat Format of textures used when performing the post process. (default: TEXTUREFORMAT_RGBA) */ - function PostProcess( - /** Name of the PostProcess. */ - name, fragmentUrl, parameters, samplers, options, camera, samplingMode, engine, reusable, defines, textureType, vertexUrl, indexParameters, blockCompilation, textureFormat) { - if (samplingMode === void 0) { samplingMode = _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTURE_NEAREST_SAMPLINGMODE; } + function PostProcess(name, fragmentUrl, parameters, samplers, options, camera, samplingMode, engine, reusable, defines, textureType, vertexUrl, indexParameters, blockCompilation, textureFormat) { + if (samplingMode === void 0) { samplingMode = _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].TEXTURE_NEAREST_SAMPLINGMODE; } if (defines === void 0) { defines = null; } - if (textureType === void 0) { textureType = _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTURETYPE_UNSIGNED_INT; } + if (textureType === void 0) { textureType = _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].TEXTURETYPE_UNSIGNED_INT; } if (vertexUrl === void 0) { vertexUrl = "postprocess"; } if (blockCompilation === void 0) { blockCompilation = false; } - if (textureFormat === void 0) { textureFormat = _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTUREFORMAT_RGBA; } - this.name = name; + if (textureFormat === void 0) { textureFormat = _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].TEXTUREFORMAT_RGBA; } /** * Width of the texture to apply the post process on */ @@ -170172,7 +170896,7 @@ var PostProcess = /** @class */ (function () { /** * Type of alpha mode to use when performing the post process (default: Engine.ALPHA_DISABLE) */ - this.alphaMode = _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ALPHA_DISABLE; + this.alphaMode = _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].ALPHA_DISABLE; /** * Animations to be used for the post processing */ @@ -170196,7 +170920,7 @@ var PostProcess = /** @class */ (function () { * | 3 | SCALEMODE_CEILING | [engine.scalemode_ceiling](https://doc.babylonjs.com/api/classes/babylon.engine#scalemode_ceiling) | * */ - this.scaleMode = _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].SCALEMODE_FLOOR; + this.scaleMode = _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].SCALEMODE_FLOOR; /** * Force textures to be a power of two (default: false) */ @@ -170211,35 +170935,36 @@ var PostProcess = /** @class */ (function () { * Smart array of input and output textures for the post process. * @hidden */ - this._textures = new _Misc_smartArray__WEBPACK_IMPORTED_MODULE_0__["SmartArray"](2); + this._textures = new _Misc_smartArray__WEBPACK_IMPORTED_MODULE_1__["SmartArray"](2); /** * The index in _textures that corresponds to the output texture. * @hidden */ this._currentRenderTextureInd = 0; - this._scaleRatio = new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"](1, 1); - this._texelSize = _Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"].Zero(); + this._scaleRatio = new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__["Vector2"](1, 1); + this._texelSize = _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__["Vector2"].Zero(); // Events /** * An event triggered when the postprocess is activated. */ - this.onActivateObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); + this.onActivateObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"](); /** * An event triggered when the postprocess changes its size. */ - this.onSizeChangedObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); + this.onSizeChangedObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"](); /** * An event triggered when the postprocess applies its effect. */ - this.onApplyObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); + this.onApplyObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"](); /** * An event triggered before rendering the postprocess */ - this.onBeforeRenderObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); + this.onBeforeRenderObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"](); /** * An event triggered after rendering the postprocess */ - this.onAfterRenderObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); + this.onAfterRenderObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"](); + this.name = name; if (camera != null) { this._camera = camera; this._scene = camera.getScene(); @@ -170253,7 +170978,7 @@ var PostProcess = /** @class */ (function () { this._engine.postProcesses.push(this); } this._options = options; - this.renderTargetSamplingMode = samplingMode ? samplingMode : _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTURE_NEAREST_SAMPLINGMODE; + this.renderTargetSamplingMode = samplingMode ? samplingMode : _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].TEXTURE_NEAREST_SAMPLINGMODE; this._reusable = reusable || false; this._textureType = textureType; this._textureFormat = textureFormat; @@ -170407,7 +171132,7 @@ var PostProcess = /** @class */ (function () { configurable: true }); /** - * Gets a string idenfifying the name of the class + * Gets a string identifying the name of the class * @returns "PostProcess" string */ PostProcess.prototype.getClassName = function () { @@ -170443,7 +171168,7 @@ var PostProcess = /** @class */ (function () { */ PostProcess.prototype.useOwnOutput = function () { if (this._textures.length == 0) { - this._textures = new _Misc_smartArray__WEBPACK_IMPORTED_MODULE_0__["SmartArray"](2); + this._textures = new _Misc_smartArray__WEBPACK_IMPORTED_MODULE_1__["SmartArray"](2); } this._shareOutputWithPostProcess = null; }; @@ -170499,9 +171224,9 @@ var PostProcess = /** @class */ (function () { } var desiredWidth = (this._options.width || requiredWidth); var desiredHeight = this._options.height || requiredHeight; - var needMipMaps = this.renderTargetSamplingMode !== _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTURE_NEAREST_LINEAR && - this.renderTargetSamplingMode !== _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTURE_NEAREST_NEAREST && - this.renderTargetSamplingMode !== _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].TEXTURE_LINEAR_LINEAR; + var needMipMaps = this.renderTargetSamplingMode !== _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].TEXTURE_NEAREST_LINEAR && + this.renderTargetSamplingMode !== _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].TEXTURE_NEAREST_NEAREST && + this.renderTargetSamplingMode !== _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].TEXTURE_LINEAR_LINEAR; if (!this._shareOutputWithPostProcess && !this._forcedOutputTexture) { if (this.adaptScaleToCurrentViewport) { var currentViewport = engine.currentViewport; @@ -170512,10 +171237,10 @@ var PostProcess = /** @class */ (function () { } if (needMipMaps || this.alwaysForcePOT) { if (!this._options.width) { - desiredWidth = engine.needPOTTextures ? _Engines_engine__WEBPACK_IMPORTED_MODULE_5__["Engine"].GetExponentOfTwo(desiredWidth, maxSize, this.scaleMode) : desiredWidth; + desiredWidth = engine.needPOTTextures ? _Engines_engine__WEBPACK_IMPORTED_MODULE_6__["Engine"].GetExponentOfTwo(desiredWidth, maxSize, this.scaleMode) : desiredWidth; } if (!this._options.height) { - desiredHeight = engine.needPOTTextures ? _Engines_engine__WEBPACK_IMPORTED_MODULE_5__["Engine"].GetExponentOfTwo(desiredHeight, maxSize, this.scaleMode) : desiredHeight; + desiredHeight = engine.needPOTTextures ? _Engines_engine__WEBPACK_IMPORTED_MODULE_6__["Engine"].GetExponentOfTwo(desiredHeight, maxSize, this.scaleMode) : desiredHeight; } } if (this.width !== desiredWidth || this.height !== desiredHeight) { @@ -170572,7 +171297,7 @@ var PostProcess = /** @class */ (function () { } this.onActivateObservable.notifyObservers(camera); // Clear - if (this.autoClear && this.alphaMode === _Engines_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ALPHA_DISABLE) { + if (this.autoClear && this.alphaMode === _Engines_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].ALPHA_DISABLE) { this._engine.clear(this.clearColor ? this.clearColor : scene.clearColor, scene._allowPostProcessClearColor, true, true); } if (this._reusable) { @@ -170695,9 +171420,86 @@ var PostProcess = /** @class */ (function () { this.onBeforeRenderObservable.clear(); this.onSizeChangedObservable.clear(); }; + /** + * Serializes the particle system to a JSON object + * @returns the JSON object + */ + PostProcess.prototype.serialize = function () { + var serializationObject = _Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["SerializationHelper"].Serialize(this); + serializationObject.customType = "BABYLON." + this.getClassName(); + serializationObject.cameraId = this.getCamera().id; + serializationObject.reusable = this._reusable; + serializationObject.options = this._options; + serializationObject.textureType = this._textureType; + return serializationObject; + }; + /** + * Creates a material from parsed material data + * @param parsedPostProcess defines parsed post process data + * @param scene defines the hosting scene + * @param rootUrl defines the root URL to use to load textures + * @returns a new post process + */ + PostProcess.Parse = function (parsedPostProcess, scene, rootUrl) { + var postProcessType = _Misc_typeStore__WEBPACK_IMPORTED_MODULE_9__["_TypeStore"].GetClass(parsedPostProcess.customType); + if (!postProcessType || !postProcessType._Parse) { + return null; + } + var camera = scene.getCameraByID(parsedPostProcess.cameraId); + if (!camera) { + return null; + } + return postProcessType._Parse(parsedPostProcess, camera, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "uniqueId", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "name", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "width", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "height", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "renderTargetSamplingMode", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serializeAsColor4"])() + ], PostProcess.prototype, "clearColor", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "autoClear", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "alphaMode", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "alphaConstants", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "enablePixelPerfectMode", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "forceFullscreenViewport", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "scaleMode", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "alwaysForcePOT", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])("samples") + ], PostProcess.prototype, "_samples", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], PostProcess.prototype, "adaptScaleToCurrentViewport", void 0); return PostProcess; }()); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_9__["_TypeStore"].RegisteredTypes["BABYLON.PostProcess"] = PostProcess; /***/ }), @@ -170923,6 +171725,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Materials_Textures_texture__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Materials/Textures/texture */ "./Materials/Textures/texture.ts"); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Shaders_refraction_fragment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Shaders/refraction.fragment */ "./Shaders/refraction.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -170947,18 +171753,13 @@ var RefractionPostProcess = /** @class */ (function (_super) { * @param engine The engine which the post process will be applied. (default: current engine) * @param reusable If the post process can be reused on the same frame. (default: false) */ - function RefractionPostProcess(name, refractionTextureUrl, - /** the base color of the refraction (used to taint the rendering) */ - color, - /** simulated refraction depth */ - depth, - /** the coefficient of the base color (0 to remove base color tainting) */ - colorLevel, options, camera, samplingMode, engine, reusable) { + function RefractionPostProcess(name, refractionTextureUrl, color, depth, colorLevel, options, camera, samplingMode, engine, reusable) { var _this = _super.call(this, name, "refraction", ["baseColor", "depth", "colorLevel"], ["refractionSampler"], options, camera, samplingMode, engine, reusable) || this; + _this._ownRefractionTexture = true; _this.color = color; _this.depth = depth; _this.colorLevel = colorLevel; - _this._ownRefractionTexture = true; + _this.refractionTextureUrl = refractionTextureUrl; _this.onActivateObservable.add(function (cam) { _this._refTexture = _this._refTexture || new _Materials_Textures_texture__WEBPACK_IMPORTED_MODULE_1__["Texture"](refractionTextureUrl, cam.getScene()); }); @@ -170988,6 +171789,13 @@ var RefractionPostProcess = /** @class */ (function (_super) { enumerable: false, configurable: true }); + /** + * Gets a string identifying the name of the class + * @returns "RefractionPostProcess" string + */ + RefractionPostProcess.prototype.getClassName = function () { + return "RefractionPostProcess"; + }; // Methods /** * Disposes of the post process @@ -171000,9 +171808,28 @@ var RefractionPostProcess = /** @class */ (function (_super) { } _super.prototype.dispose.call(this, camera); }; + /** @hidden */ + RefractionPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["SerializationHelper"].Parse(function () { + return new RefractionPostProcess(parsedPostProcess.name, parsedPostProcess.refractionTextureUrl, parsedPostProcess.color, parsedPostProcess.depth, parsedPostProcess.colorLevel, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], RefractionPostProcess.prototype, "color", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], RefractionPostProcess.prototype, "depth", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], RefractionPostProcess.prototype, "colorLevel", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], RefractionPostProcess.prototype, "refractionTextureUrl", void 0); return RefractionPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__["_TypeStore"].RegisteredTypes["BABYLON.RefractionPostProcess"] = RefractionPostProcess; /***/ }), @@ -171024,6 +171851,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Rendering_geometryBufferRendererSceneComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Rendering/geometryBufferRendererSceneComponent */ "./Rendering/geometryBufferRendererSceneComponent.ts"); /* harmony import */ var _Shaders_screenSpaceCurvature_fragment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Shaders/screenSpaceCurvature.fragment */ "./Shaders/screenSpaceCurvature.fragment.ts"); /* harmony import */ var _Engines_engineStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Engines/engineStore */ "./Engines/engineStore.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -171076,6 +171907,13 @@ var ScreenSpaceCurvaturePostProcess = /** @class */ (function (_super) { } return _this; } + /** + * Gets a string identifying the name of the class + * @returns "ScreenSpaceCurvaturePostProcess" string + */ + ScreenSpaceCurvaturePostProcess.prototype.getClassName = function () { + return "ScreenSpaceCurvaturePostProcess"; + }; Object.defineProperty(ScreenSpaceCurvaturePostProcess, "IsSupported", { /** * Support test. @@ -171090,9 +171928,22 @@ var ScreenSpaceCurvaturePostProcess = /** @class */ (function (_super) { enumerable: false, configurable: true }); + /** @hidden */ + ScreenSpaceCurvaturePostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["SerializationHelper"].Parse(function () { + return new ScreenSpaceCurvaturePostProcess(parsedPostProcess.name, scene, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.textureType, parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], ScreenSpaceCurvaturePostProcess.prototype, "ridge", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_8__["serialize"])() + ], ScreenSpaceCurvaturePostProcess.prototype, "valley", void 0); return ScreenSpaceCurvaturePostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_7__["_TypeStore"].RegisteredTypes["BABYLON.ScreenSpaceCurvaturePostProcess"] = ScreenSpaceCurvaturePostProcess; /***/ }), @@ -171113,6 +171964,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Rendering_geometryBufferRenderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Rendering/geometryBufferRenderer */ "./Rendering/geometryBufferRenderer.ts"); /* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); /* harmony import */ var _Shaders_screenSpaceReflection_fragment__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Shaders/screenSpaceReflection.fragment */ "./Shaders/screenSpaceReflection.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); + @@ -171206,6 +172059,13 @@ var ScreenSpaceReflectionPostProcess = /** @class */ (function (_super) { }; return _this; } + /** + * Gets a string identifying the name of the class + * @returns "ScreenSpaceReflectionPostProcess" string + */ + ScreenSpaceReflectionPostProcess.prototype.getClassName = function () { + return "ScreenSpaceReflectionPostProcess"; + }; Object.defineProperty(ScreenSpaceReflectionPostProcess.prototype, "enableSmoothReflections", { /** * Gets wether or not smoothing reflections is enabled. @@ -171286,6 +172146,12 @@ var ScreenSpaceReflectionPostProcess = /** @class */ (function (_super) { defines.push("#define SMOOTH_STEPS " + (this._smoothSteps >> 0)); this.updateEffect(defines.join("\n")); }; + /** @hidden */ + ScreenSpaceReflectionPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_4__["SerializationHelper"].Parse(function () { + return new ScreenSpaceReflectionPostProcess(parsedPostProcess.name, scene, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.textureType, parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_4__["serialize"])() ], ScreenSpaceReflectionPostProcess.prototype, "threshold", void 0); @@ -171313,6 +172179,7 @@ var ScreenSpaceReflectionPostProcess = /** @class */ (function (_super) { return ScreenSpaceReflectionPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_6__["_TypeStore"].RegisteredTypes["BABYLON.ScreenSpaceReflectionPostProcess"] = ScreenSpaceReflectionPostProcess; /***/ }), @@ -171331,6 +172198,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _postProcess__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./postProcess */ "./PostProcesses/postProcess.ts"); /* harmony import */ var _Engines_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Engines/constants */ "./Engines/constants.ts"); /* harmony import */ var _Shaders_sharpen_fragment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Shaders/sharpen.fragment */ "./Shaders/sharpen.fragment.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); +/* harmony import */ var _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Misc/decorators */ "./Misc/decorators.ts"); + + @@ -171370,9 +172241,29 @@ var SharpenPostProcess = /** @class */ (function (_super) { }; return _this; } + /** + * Gets a string identifying the name of the class + * @returns "SharpenPostProcess" string + */ + SharpenPostProcess.prototype.getClassName = function () { + return "SharpenPostProcess"; + }; + /** @hidden */ + SharpenPostProcess._Parse = function (parsedPostProcess, targetCamera, scene, rootUrl) { + return _Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["SerializationHelper"].Parse(function () { + return new SharpenPostProcess(parsedPostProcess.name, parsedPostProcess.options, targetCamera, parsedPostProcess.renderTargetSamplingMode, scene.getEngine(), parsedPostProcess.textureType, parsedPostProcess.reusable); + }, parsedPostProcess, scene, rootUrl); + }; + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], SharpenPostProcess.prototype, "colorAmount", void 0); + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_Misc_decorators__WEBPACK_IMPORTED_MODULE_5__["serialize"])() + ], SharpenPostProcess.prototype, "edgeAmount", void 0); return SharpenPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_4__["_TypeStore"].RegisteredTypes["BABYLON.SharpenPostProcess"] = SharpenPostProcess; /***/ }), @@ -171424,6 +172315,13 @@ var StereoscopicInterlacePostProcessI = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "StereoscopicInterlacePostProcessI" string + */ + StereoscopicInterlacePostProcessI.prototype.getClassName = function () { + return "StereoscopicInterlacePostProcessI"; + }; return StereoscopicInterlacePostProcessI; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); @@ -171454,6 +172352,13 @@ var StereoscopicInterlacePostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "StereoscopicInterlacePostProcess" string + */ + StereoscopicInterlacePostProcess.prototype.getClassName = function () { + return "StereoscopicInterlacePostProcess"; + }; return StereoscopicInterlacePostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); @@ -171516,6 +172421,13 @@ var SubSurfaceScatteringPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "SubSurfaceScatteringPostProcess" string + */ + SubSurfaceScatteringPostProcess.prototype.getClassName = function () { + return "SubSurfaceScatteringPostProcess"; + }; return SubSurfaceScatteringPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); @@ -171597,6 +172509,13 @@ var TonemapPostProcess = /** @class */ (function (_super) { }; return _this; } + /** + * Gets a string identifying the name of the class + * @returns "TonemapPostProcess" string + */ + TonemapPostProcess.prototype.getClassName = function () { + return "TonemapPostProcess"; + }; return TonemapPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_1__["PostProcess"])); @@ -171635,6 +172554,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Shaders_volumetricLightScatteringPass_fragment__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../Shaders/volumetricLightScatteringPass.fragment */ "./Shaders/volumetricLightScatteringPass.fragment.ts"); /* harmony import */ var _Maths_math_color__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../Maths/math.color */ "./Maths/math.color.ts"); /* harmony import */ var _Maths_math_viewport__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../Maths/math.viewport */ "./Maths/math.viewport.ts"); +/* harmony import */ var _Misc_typeStore__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../Misc/typeStore */ "./Misc/typeStore.ts"); + @@ -172043,6 +172964,7 @@ var VolumetricLightScatteringPostProcess = /** @class */ (function (_super) { return VolumetricLightScatteringPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_12__["PostProcess"])); +_Misc_typeStore__WEBPACK_IMPORTED_MODULE_21__["_TypeStore"].RegisteredTypes["BABYLON.VolumetricLightScatteringPostProcess"] = VolumetricLightScatteringPostProcess; /***/ }), @@ -172104,6 +173026,13 @@ var VRDistortionCorrectionPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "VRDistortionCorrectionPostProcess" string + */ + VRDistortionCorrectionPostProcess.prototype.getClassName = function () { + return "VRDistortionCorrectionPostProcess"; + }; return VRDistortionCorrectionPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_3__["PostProcess"])); @@ -172158,6 +173087,13 @@ var VRMultiviewToSingleviewPostProcess = /** @class */ (function (_super) { }); return _this; } + /** + * Gets a string identifying the name of the class + * @returns "VRMultiviewToSingleviewPostProcess" string + */ + VRMultiviewToSingleviewPostProcess.prototype.getClassName = function () { + return "VRMultiviewToSingleviewPostProcess"; + }; return VRMultiviewToSingleviewPostProcess; }(_postProcess__WEBPACK_IMPORTED_MODULE_2__["PostProcess"])); @@ -180387,7 +181323,7 @@ __webpack_require__.r(__webpack_exports__); var name = 'spritesVertexShader'; -var shader = "\nattribute vec4 position;\nattribute vec4 options;\nattribute vec2 inverts;\nattribute vec4 cellInfo;\nattribute vec4 color;\n\nuniform mat4 view;\nuniform mat4 projection;\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#include\nvoid main(void) {\nvec3 viewPos=(view*vec4(position.xyz,1.0)).xyz;\nvec2 cornerPos;\nfloat angle=position.w;\nvec2 size=vec2(options.x,options.y);\nvec2 offset=options.zw;\ncornerPos=vec2(offset.x-0.5,offset.y-0.5)*size;\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\n\nviewPos+=rotatedCorner;\ngl_Position=projection*vec4(viewPos,1.0);\n\nvColor=color;\n\nvec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));\nvec2 uvPlace=cellInfo.xy;\nvec2 uvSize=cellInfo.zw;\nvUV.x=uvPlace.x+uvSize.x*uvOffset.x;\nvUV.y=uvPlace.y+uvSize.y*uvOffset.y;\n\n#ifdef FOG\nvFogDistance=viewPos;\n#endif\n}"; +var shader = "\nattribute vec4 position;\nattribute vec2 options;\nattribute vec2 offsets;\nattribute vec2 inverts;\nattribute vec4 cellInfo;\nattribute vec4 color;\n\nuniform mat4 view;\nuniform mat4 projection;\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n#include\nvoid main(void) {\nvec3 viewPos=(view*vec4(position.xyz,1.0)).xyz;\nvec2 cornerPos;\nfloat angle=position.w;\nvec2 size=vec2(options.x,options.y);\nvec2 offset=offsets.xy;\ncornerPos=vec2(offset.x-0.5,offset.y-0.5)*size;\n\nvec3 rotatedCorner;\nrotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\nrotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\nrotatedCorner.z=0.;\n\nviewPos+=rotatedCorner;\ngl_Position=projection*vec4(viewPos,1.0);\n\nvColor=color;\n\nvec2 uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));\nvec2 uvPlace=cellInfo.xy;\nvec2 uvSize=cellInfo.zw;\nvUV.x=uvPlace.x+uvSize.x*uvOffset.x;\nvUV.y=uvPlace.y+uvSize.y*uvOffset.y;\n\n#ifdef FOG\nvFogDistance=viewPos;\n#endif\n}"; _Materials_effect__WEBPACK_IMPORTED_MODULE_0__["Effect"].ShadersStore[name] = shader; /** @hidden */ var spritesVertexShader = { name: name, shader: shader }; @@ -181085,6 +182021,7 @@ var SpriteManager = /** @class */ (function () { this.isPickable = false; /** True when packed cell data from JSON file is ready*/ this._packedAndReady = false; + this._useInstancing = false; /** * An event triggered when the manager is disposed. */ @@ -181121,38 +182058,58 @@ var SpriteManager = /** @class */ (function () { return; } this._epsilon = epsilon; - this._scene = scene || _Engines_engine__WEBPACK_IMPORTED_MODULE_14__["Engine"].LastCreatedScene; + this._scene = scene; this._scene.spriteManagers.push(this); this.uniqueId = this.scene.getUniqueId(); - var indices = []; - var index = 0; - for (var count = 0; count < capacity; count++) { - indices.push(index); - indices.push(index + 1); - indices.push(index + 2); - indices.push(index); - indices.push(index + 2); - indices.push(index + 3); - index += 4; + var engine = this._scene.getEngine(); + this._useInstancing = engine.getCaps().instancedArrays; + if (!this._useInstancing) { + var indices = []; + var index = 0; + for (var count = 0; count < capacity; count++) { + indices.push(index); + indices.push(index + 1); + indices.push(index + 2); + indices.push(index); + indices.push(index + 2); + indices.push(index + 3); + index += 4; + } + this._indexBuffer = engine.createIndexBuffer(indices); + } + else { } - this._indexBuffer = scene.getEngine().createIndexBuffer(indices); // VBO // 18 floats per sprite (x, y, z, angle, sizeX, sizeY, offsetX, offsetY, invertU, invertV, cellLeft, cellTop, cellWidth, cellHeight, color r, color g, color b, color a) - this._vertexData = new Float32Array(capacity * 18 * 4); - this._buffer = new _Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["Buffer"](scene.getEngine(), this._vertexData, true, 18); - var positions = this._buffer.createVertexBuffer(_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].PositionKind, 0, 4); - var options = this._buffer.createVertexBuffer("options", 4, 4); - var inverts = this._buffer.createVertexBuffer("inverts", 8, 2); - var cellInfo = this._buffer.createVertexBuffer("cellInfo", 10, 4); - var colors = this._buffer.createVertexBuffer(_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].ColorKind, 14, 4); + // 16 when using instances + this._vertexBufferSize = this._useInstancing ? 16 : 18; + this._vertexData = new Float32Array(capacity * this._vertexBufferSize * (this._useInstancing ? 1 : 4)); + this._buffer = new _Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["Buffer"](engine, this._vertexData, true, this._vertexBufferSize); + var positions = this._buffer.createVertexBuffer(_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].PositionKind, 0, 4, this._vertexBufferSize, this._useInstancing); + var options = this._buffer.createVertexBuffer("options", 4, 2, this._vertexBufferSize, this._useInstancing); + var offset = 6; + var offsets; + if (this._useInstancing) { + var spriteData = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]); + this._spriteBuffer = new _Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["Buffer"](engine, spriteData, false, 2); + offsets = this._spriteBuffer.createVertexBuffer("offsets", 0, 2); + } + else { + offsets = this._buffer.createVertexBuffer("offsets", offset, 2, this._vertexBufferSize, this._useInstancing); + offset += 2; + } + var inverts = this._buffer.createVertexBuffer("inverts", offset, 2, this._vertexBufferSize, this._useInstancing); + var cellInfo = this._buffer.createVertexBuffer("cellInfo", offset + 2, 4, this._vertexBufferSize, this._useInstancing); + var colors = this._buffer.createVertexBuffer(_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].ColorKind, offset + 6, 4, this._vertexBufferSize, this._useInstancing); this._vertexBuffers[_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].PositionKind] = positions; this._vertexBuffers["options"] = options; + this._vertexBuffers["offsets"] = offsets; this._vertexBuffers["inverts"] = inverts; this._vertexBuffers["cellInfo"] = cellInfo; this._vertexBuffers[_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].ColorKind] = colors; // Effects - this._effectBase = this._scene.getEngine().createEffect("sprites", [_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].PositionKind, "options", "inverts", "cellInfo", _Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].ColorKind], ["view", "projection", "textureInfos", "alphaTest"], ["diffuseSampler"], ""); - this._effectFog = this._scene.getEngine().createEffect("sprites", [_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].PositionKind, "options", "inverts", "cellInfo", _Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].ColorKind], ["view", "projection", "textureInfos", "alphaTest", "vFogInfos", "vFogColor"], ["diffuseSampler"], "#define FOG"); + this._effectBase = this._scene.getEngine().createEffect("sprites", [_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].PositionKind, "options", "offsets", "inverts", "cellInfo", _Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].ColorKind], ["view", "projection", "textureInfos", "alphaTest"], ["diffuseSampler"], ""); + this._effectFog = this._scene.getEngine().createEffect("sprites", [_Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].PositionKind, "options", "offsets", "inverts", "cellInfo", _Meshes_buffer__WEBPACK_IMPORTED_MODULE_2__["VertexBuffer"].ColorKind], ["view", "projection", "textureInfos", "alphaTest", "vFogInfos", "vFogColor"], ["diffuseSampler"], "#define FOG"); if (this._fromPacked) { this._makePacked(imgUrl, spriteJSON); } @@ -181304,7 +182261,7 @@ var SpriteManager = /** @class */ (function () { } }; SpriteManager.prototype._appendSpriteVertex = function (index, sprite, offsetX, offsetY, baseSize) { - var arrayOffset = index * 18; + var arrayOffset = index * this._vertexBufferSize; if (offsetX === 0) { offsetX = this._epsilon; } @@ -181325,8 +182282,13 @@ var SpriteManager = /** @class */ (function () { // Options this._vertexData[arrayOffset + 4] = sprite.width; this._vertexData[arrayOffset + 5] = sprite.height; - this._vertexData[arrayOffset + 6] = offsetX; - this._vertexData[arrayOffset + 7] = offsetY; + if (!this._useInstancing) { + this._vertexData[arrayOffset + 6] = offsetX; + this._vertexData[arrayOffset + 7] = offsetY; + } + else { + arrayOffset -= 2; + } // Inverts according to Right Handed if (this._scene.useRightHandedSystem) { this._vertexData[arrayOffset + 8] = sprite.invertU ? 0 : 1; @@ -181544,9 +182506,11 @@ var SpriteManager = /** @class */ (function () { noSprite = false; sprite._animate(deltaTime); this._appendSpriteVertex(offset++, sprite, 0, 0, baseSize); - this._appendSpriteVertex(offset++, sprite, 1, 0, baseSize); - this._appendSpriteVertex(offset++, sprite, 1, 1, baseSize); - this._appendSpriteVertex(offset++, sprite, 0, 1, baseSize); + if (!this._useInstancing) { + this._appendSpriteVertex(offset++, sprite, 1, 0, baseSize); + this._appendSpriteVertex(offset++, sprite, 1, 1, baseSize); + this._appendSpriteVertex(offset++, sprite, 0, 1, baseSize); + } } if (noSprite) { return; @@ -181580,12 +182544,22 @@ var SpriteManager = /** @class */ (function () { if (!this.disableDepthWrite) { effect.setBool("alphaTest", true); engine.setColorWrite(false); - engine.drawElementsType(_Materials_material__WEBPACK_IMPORTED_MODULE_8__["Material"].TriangleFillMode, 0, (offset / 4) * 6); + if (this._useInstancing) { + engine.drawArraysType(_Engines_constants__WEBPACK_IMPORTED_MODULE_10__["Constants"].MATERIAL_TriangleFanDrawMode, 0, 4, offset); + } + else { + engine.drawElementsType(_Materials_material__WEBPACK_IMPORTED_MODULE_8__["Material"].TriangleFillMode, 0, (offset / 4) * 6); + } engine.setColorWrite(true); effect.setBool("alphaTest", false); } engine.setAlphaMode(this._blendMode); - engine.drawElementsType(_Materials_material__WEBPACK_IMPORTED_MODULE_8__["Material"].TriangleFillMode, 0, (offset / 4) * 6); + if (this._useInstancing) { + engine.drawArraysType(_Engines_constants__WEBPACK_IMPORTED_MODULE_10__["Constants"].MATERIAL_TriangleFanDrawMode, 0, 4, offset); + } + else { + engine.drawElementsType(_Materials_material__WEBPACK_IMPORTED_MODULE_8__["Material"].TriangleFillMode, 0, (offset / 4) * 6); + } engine.setAlphaMode(_Engines_constants__WEBPACK_IMPORTED_MODULE_10__["Constants"].ALPHA_DISABLE); // Restore Right Handed if (this._scene.useRightHandedSystem) { @@ -181600,6 +182574,10 @@ var SpriteManager = /** @class */ (function () { this._buffer.dispose(); this._buffer = null; } + if (this._spriteBuffer) { + this._spriteBuffer.dispose(); + this._spriteBuffer = null; + } if (this._indexBuffer) { this._scene.getEngine()._releaseBuffer(this._indexBuffer); this._indexBuffer = null; @@ -185107,6 +186085,170 @@ _webXRFeaturesManager__WEBPACK_IMPORTED_MODULE_1__["WebXRFeaturesManager"].AddWe }, WebXRMotionControllerTeleportation.Version, true); +/***/ }), + +/***/ "./XR/features/WebXRFeaturePointSystem.ts": +/*!************************************************!*\ + !*** ./XR/features/WebXRFeaturePointSystem.ts ***! + \************************************************/ +/*! exports provided: WebXRFeaturePointSystem */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebXRFeaturePointSystem", function() { return WebXRFeaturePointSystem; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _webXRFeaturesManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../webXRFeaturesManager */ "./XR/webXRFeaturesManager.ts"); +/* harmony import */ var _Misc_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Misc/observable */ "./Misc/observable.ts"); +/* harmony import */ var _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Maths/math.vector */ "./Maths/math.vector.ts"); +/* harmony import */ var _WebXRAbstractFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./WebXRAbstractFeature */ "./XR/features/WebXRAbstractFeature.ts"); + + + + + +/** + * The feature point system is used to detect feature points from real world geometry. + * This feature is currently experimental and only supported on BabylonNative, and should not be used in the browser. + * The newly introduced API can be seen in webxr.nativeextensions.d.ts and described in FeaturePoints.md. + */ +var WebXRFeaturePointSystem = /** @class */ (function (_super) { + Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(WebXRFeaturePointSystem, _super); + /** + * construct the feature point system + * @param _xrSessionManager an instance of xr Session manager + */ + function WebXRFeaturePointSystem(_xrSessionManager) { + var _this = _super.call(this, _xrSessionManager) || this; + _this._enabled = false; + _this._featurePointCloud = []; + /** + * Observers registered here will be executed whenever new feature points are added (on XRFrame while the session is tracking). + * Will notify the observers about which feature points have been added. + */ + _this.onFeaturePointsAddedObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"](); + /** + * Observers registered here will be executed whenever a feature point has been updated (on XRFrame while the session is tracking). + * Will notify the observers about which feature points have been updated. + */ + _this.onFeaturePointsUpdatedObservable = new _Misc_observable__WEBPACK_IMPORTED_MODULE_2__["Observable"](); + _this.xrNativeFeatureName = "bjsfeature-points"; + if (_this._xrSessionManager.session) { + _this._init(); + } + else { + _this._xrSessionManager.onXRSessionInit.addOnce(function () { + _this._init(); + }); + } + return _this; + } + Object.defineProperty(WebXRFeaturePointSystem.prototype, "featurePointCloud", { + /** + * The current feature point cloud maintained across frames. + */ + get: function () { + return this._featurePointCloud; + }, + enumerable: false, + configurable: true + }); + /** + * Detach this feature. + * Will usually be called by the features manager + * + * @returns true if successful. + */ + WebXRFeaturePointSystem.prototype.detach = function () { + if (!_super.prototype.detach.call(this)) { + return false; + } + this.featurePointCloud.length = 0; + return true; + }; + /** + * Dispose this feature and all of the resources attached + */ + WebXRFeaturePointSystem.prototype.dispose = function () { + _super.prototype.dispose.call(this); + this._featurePointCloud.length = 0; + this.onFeaturePointsUpdatedObservable.clear(); + this.onFeaturePointsAddedObservable.clear(); + }; + /** + * On receiving a new XR frame if this feature is attached notify observers new feature point data is available. + */ + WebXRFeaturePointSystem.prototype._onXRFrame = function (frame) { + if (!this.attached || !this._enabled || !frame) { + return; + } + var featurePointRawData = frame.featurePointCloud; + if (!featurePointRawData || featurePointRawData.length === 0) { + return; + } + else { + if (featurePointRawData.length % 5 !== 0) { + throw new Error("Received malformed feature point cloud of length: " + featurePointRawData.length); + } + var numberOfFeaturePoints = featurePointRawData.length / 5; + var updatedFeaturePoints = new Array(); + var addedFeaturePoints = new Array(); + for (var i = 0; i < numberOfFeaturePoints; i++) { + var rawIndex = i * 5; + var id = featurePointRawData[rawIndex + 4]; + // IDs should be durable across frames and strictly increasing from 0 up, so use them as indexing into the feature point array. + if (!this._featurePointCloud[id]) { + this._featurePointCloud[id] = { position: new _Maths_math_vector__WEBPACK_IMPORTED_MODULE_3__["Vector3"](), confidenceValue: 0 }; + addedFeaturePoints.push(id); + } + else { + updatedFeaturePoints.push(id); + } + // Set the feature point values. + this._featurePointCloud[id].position.x = featurePointRawData[rawIndex]; + this._featurePointCloud[id].position.y = featurePointRawData[rawIndex + 1]; + this._featurePointCloud[id].position.z = featurePointRawData[rawIndex + 2]; + this._featurePointCloud[id].confidenceValue = featurePointRawData[rawIndex + 3]; + } + // Signal observers that feature points have been added if necessary. + if (addedFeaturePoints.length > 0) { + this.onFeaturePointsAddedObservable.notifyObservers(addedFeaturePoints); + } + // Signal observers that feature points have been updated if necessary. + if (updatedFeaturePoints.length > 0) { + this.onFeaturePointsUpdatedObservable.notifyObservers(updatedFeaturePoints); + } + } + }; + /** + * Initializes the feature. If the feature point feature is not available for this environment do not mark the feature as enabled. + */ + WebXRFeaturePointSystem.prototype._init = function () { + if (!this._xrSessionManager.session.trySetFeaturePointCloudEnabled || !this._xrSessionManager.session.trySetFeaturePointCloudEnabled(true)) { + // fail silently + return; + } + this._enabled = true; + }; + /** + * The module's name + */ + WebXRFeaturePointSystem.Name = _webXRFeaturesManager__WEBPACK_IMPORTED_MODULE_1__["WebXRFeatureName"].FEATURE_POINTS; + /** + * The (Babylon) version of this module. + * This is an integer representing the implementation version. + * This number does not correspond to the WebXR specs version + */ + WebXRFeaturePointSystem.Version = 1; + return WebXRFeaturePointSystem; +}(_WebXRAbstractFeature__WEBPACK_IMPORTED_MODULE_4__["WebXRAbstractFeature"])); + +// register the plugin +_webXRFeaturesManager__WEBPACK_IMPORTED_MODULE_1__["WebXRFeaturesManager"].AddWebXRFeature(WebXRFeaturePointSystem.Name, function (xrSessionManager) { + return function () { return new WebXRFeaturePointSystem(xrSessionManager); }; +}, WebXRFeaturePointSystem.Version); + + /***/ }), /***/ "./XR/features/WebXRHitTest.ts": @@ -185161,15 +186303,18 @@ var WebXRHitTest = /** @class */ (function (_super) { return; } var offsetRay = new XRRay(_this.options.offsetRay || {}); - var options = { + var hitTestOptions = { space: _this.options.useReferenceSpace ? referenceSpace : _this._xrSessionManager.viewerReferenceSpace, offsetRay: offsetRay, }; - if (!options.space) { + if (_this.options.entityTypes) { + hitTestOptions.entityTypes = _this.options.entityTypes; + } + if (!hitTestOptions.space) { _Misc_tools__WEBPACK_IMPORTED_MODULE_5__["Tools"].Warn("waiting for viewer reference space to initialize"); return; } - _this._xrSessionManager.session.requestHitTestSource(options).then(function (hitTestSource) { + _this._xrSessionManager.session.requestHitTestSource(hitTestOptions).then(function (hitTestSource) { if (_this._xrHitTestSource) { _this._xrHitTestSource.cancel(); } @@ -185221,6 +186366,7 @@ var WebXRHitTest = /** @class */ (function (_super) { .requestHitTestSourceForTransientInput({ profile: "generic-touchscreen", offsetRay: offsetRay, + entityTypes: this.options.entityTypes }) .then(function (hitSource) { _this._transientXrHitTestSource = hitSource; @@ -185723,7 +186869,7 @@ _webXRFeaturesManager__WEBPACK_IMPORTED_MODULE_1__["WebXRFeaturesManager"].AddWe /*!******************************!*\ !*** ./XR/features/index.ts ***! \******************************/ -/*! exports provided: WebXRHitTestLegacy, WebXRAnchorSystem, WebXRPlaneDetector, WebXRBackgroundRemover, WebXRMotionControllerTeleportation, WebXRControllerPointerSelection, IWebXRControllerPhysicsOptions, WebXRControllerPhysics, WebXRHitTest */ +/*! exports provided: WebXRHitTestLegacy, WebXRAnchorSystem, WebXRPlaneDetector, WebXRBackgroundRemover, WebXRMotionControllerTeleportation, WebXRControllerPointerSelection, IWebXRControllerPhysicsOptions, WebXRControllerPhysics, WebXRHitTest, WebXRFeaturePointSystem */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -185754,6 +186900,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _WebXRHitTest__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./WebXRHitTest */ "./XR/features/WebXRHitTest.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRHitTest", function() { return _WebXRHitTest__WEBPACK_IMPORTED_MODULE_7__["WebXRHitTest"]; }); +/* harmony import */ var _WebXRFeaturePointSystem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./WebXRFeaturePointSystem */ "./XR/features/WebXRFeaturePointSystem.ts"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRFeaturePointSystem", function() { return _WebXRFeaturePointSystem__WEBPACK_IMPORTED_MODULE_8__["WebXRFeaturePointSystem"]; }); + + @@ -185770,7 +186920,7 @@ __webpack_require__.r(__webpack_exports__); /*!*********************!*\ !*** ./XR/index.ts ***! \*********************/ -/*! exports provided: WebXRCamera, WebXREnterExitUIButton, WebXREnterExitUIOptions, WebXREnterExitUI, WebXRExperienceHelper, WebXRInput, WebXRInputSource, WebXRManagedOutputCanvasOptions, WebXRManagedOutputCanvas, WebXRState, WebXRSessionManager, WebXRDefaultExperienceOptions, WebXRDefaultExperience, WebXRFeatureName, WebXRFeaturesManager, WebXRHitTestLegacy, WebXRAnchorSystem, WebXRPlaneDetector, WebXRBackgroundRemover, WebXRMotionControllerTeleportation, WebXRControllerPointerSelection, IWebXRControllerPhysicsOptions, WebXRControllerPhysics, WebXRHitTest, WebXRAbstractMotionController, WebXRControllerComponent, WebXRGenericTriggerMotionController, WebXRMicrosoftMixedRealityController, WebXRMotionControllerManager, WebXROculusTouchMotionController, WebXRHTCViveMotionController, WebXRProfiledMotionController */ +/*! exports provided: WebXRCamera, WebXREnterExitUIButton, WebXREnterExitUIOptions, WebXREnterExitUI, WebXRExperienceHelper, WebXRInput, WebXRInputSource, WebXRManagedOutputCanvasOptions, WebXRManagedOutputCanvas, WebXRState, WebXRSessionManager, WebXRDefaultExperienceOptions, WebXRDefaultExperience, WebXRFeatureName, WebXRFeaturesManager, WebXRHitTestLegacy, WebXRAnchorSystem, WebXRPlaneDetector, WebXRBackgroundRemover, WebXRMotionControllerTeleportation, WebXRControllerPointerSelection, IWebXRControllerPhysicsOptions, WebXRControllerPhysics, WebXRHitTest, WebXRFeaturePointSystem, WebXRAbstractMotionController, WebXRControllerComponent, WebXRGenericTriggerMotionController, WebXRMicrosoftMixedRealityController, WebXRMotionControllerManager, WebXROculusTouchMotionController, WebXRHTCViveMotionController, WebXRProfiledMotionController */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -185834,6 +186984,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRHitTest", function() { return _features_index__WEBPACK_IMPORTED_MODULE_10__["WebXRHitTest"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRFeaturePointSystem", function() { return _features_index__WEBPACK_IMPORTED_MODULE_10__["WebXRFeaturePointSystem"]; }); + /* harmony import */ var _motionController_index__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./motionController/index */ "./XR/motionController/index.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRAbstractMotionController", function() { return _motionController_index__WEBPACK_IMPORTED_MODULE_11__["WebXRAbstractMotionController"]; }); @@ -188867,6 +190019,10 @@ var WebXRFeatureName = /** @class */ (function () { * The name of the teleportation feature */ WebXRFeatureName.TELEPORTATION = "xr-controller-teleportation"; + /** + * The name of the feature points feature. + */ + WebXRFeatureName.FEATURE_POINTS = "xr-feature-points"; return WebXRFeatureName; }()); @@ -190101,6 +191257,10 @@ var AbstractScene = /** @class */ (function () { * Environment texture for the scene */ this.environmentTexture = null; + /** + * The list of postprocesses added to the scene + */ + this.postProcesses = new Array(); } /** * Adds a parser in the list of available ones @@ -191018,6 +192178,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LightGizmo", function() { return _Gizmos_index__WEBPACK_IMPORTED_MODULE_15__["LightGizmo"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CameraGizmo", function() { return _Gizmos_index__WEBPACK_IMPORTED_MODULE_15__["CameraGizmo"]; }); + /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PlaneDragGizmo", function() { return _Gizmos_index__WEBPACK_IMPORTED_MODULE_15__["PlaneDragGizmo"]; }); /* harmony import */ var _Helpers_index__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Helpers/index */ "./Helpers/index.ts"); @@ -191089,7 +192251,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SceneLoaderFlags", function() { return _Loading_index__WEBPACK_IMPORTED_MODULE_21__["SceneLoaderFlags"]; }); /* harmony import */ var _Materials_index__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Materials/index */ "./Materials/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Materials_index__WEBPACK_IMPORTED_MODULE_22__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Materials_index__WEBPACK_IMPORTED_MODULE_22__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Materials_index__WEBPACK_IMPORTED_MODULE_22__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Materials_index__WEBPACK_IMPORTED_MODULE_22__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _Maths_index__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Maths/index */ "./Maths/index.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scalar", function() { return _Maths_index__WEBPACK_IMPORTED_MODULE_23__["Scalar"]; }); @@ -191254,16 +192416,16 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MorphTargetManager", function() { return _Morph_index__WEBPACK_IMPORTED_MODULE_25__["MorphTargetManager"]; }); /* harmony import */ var _Navigation_index__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Navigation/index */ "./Navigation/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Navigation_index__WEBPACK_IMPORTED_MODULE_26__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Navigation_index__WEBPACK_IMPORTED_MODULE_26__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Navigation_index__WEBPACK_IMPORTED_MODULE_26__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Navigation_index__WEBPACK_IMPORTED_MODULE_26__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./node */ "./node.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Node", function() { return _node__WEBPACK_IMPORTED_MODULE_27__["Node"]; }); /* harmony import */ var _Offline_index__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./Offline/index */ "./Offline/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Offline_index__WEBPACK_IMPORTED_MODULE_28__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Offline_index__WEBPACK_IMPORTED_MODULE_28__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Offline_index__WEBPACK_IMPORTED_MODULE_28__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Offline_index__WEBPACK_IMPORTED_MODULE_28__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _Particles_index__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Particles/index */ "./Particles/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Particles_index__WEBPACK_IMPORTED_MODULE_29__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Particles_index__WEBPACK_IMPORTED_MODULE_29__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Particles_index__WEBPACK_IMPORTED_MODULE_29__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Particles_index__WEBPACK_IMPORTED_MODULE_29__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _Physics_index__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Physics/index */ "./Physics/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Physics_index__WEBPACK_IMPORTED_MODULE_30__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Physics_index__WEBPACK_IMPORTED_MODULE_30__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Physics_index__WEBPACK_IMPORTED_MODULE_30__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Physics_index__WEBPACK_IMPORTED_MODULE_30__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _PostProcesses_index__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./PostProcesses/index */ "./PostProcesses/index.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnaglyphPostProcess", function() { return _PostProcesses_index__WEBPACK_IMPORTED_MODULE_31__["AnaglyphPostProcess"]; }); @@ -191398,7 +192560,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stage", function() { return _sceneComponent__WEBPACK_IMPORTED_MODULE_35__["Stage"]; }); /* harmony import */ var _Sprites_index__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Sprites/index */ "./Sprites/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Sprites_index__WEBPACK_IMPORTED_MODULE_36__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","AnaglyphPostProcess","BlackAndWhitePostProcess","BloomEffect","BloomMergePostProcess","BlurPostProcess","ChromaticAberrationPostProcess","CircleOfConfusionPostProcess","ColorCorrectionPostProcess","ConvolutionPostProcess","DepthOfFieldBlurPostProcess","DepthOfFieldEffectBlurLevel","DepthOfFieldEffect","DepthOfFieldMergePostProcessOptions","DepthOfFieldMergePostProcess","DisplayPassPostProcess","ExtractHighlightsPostProcess","FilterPostProcess","FxaaPostProcess","GrainPostProcess","HighlightsPostProcess","ImageProcessingPostProcess","MotionBlurPostProcess","PassPostProcess","PassCubePostProcess","PostProcess","PostProcessManager","RefractionPostProcess","DefaultRenderingPipeline","LensRenderingPipeline","SSAO2RenderingPipeline","SSAORenderingPipeline","StandardRenderingPipeline","PostProcessRenderEffect","PostProcessRenderPipeline","PostProcessRenderPipelineManager","PostProcessRenderPipelineManagerSceneComponent","SharpenPostProcess","StereoscopicInterlacePostProcessI","StereoscopicInterlacePostProcess","TonemappingOperator","TonemapPostProcess","VolumetricLightScatteringPostProcess","VRDistortionCorrectionPostProcess","VRMultiviewToSingleviewPostProcess","ScreenSpaceReflectionPostProcess","ScreenSpaceCurvaturePostProcess","ReflectionProbe","BoundingBoxRenderer","DepthRenderer","DepthRendererSceneComponent","EdgesRenderer","LineEdgesRenderer","GeometryBufferRenderer","GeometryBufferRendererSceneComponent","PrePassRenderer","PrePassRendererSceneComponent","OutlineRenderer","RenderingGroup","RenderingGroupInfo","RenderingManager","UtilityLayerRenderer","Scene","SceneComponentConstants","Stage","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Sprites_index__WEBPACK_IMPORTED_MODULE_36__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Sprites_index__WEBPACK_IMPORTED_MODULE_36__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","AnaglyphPostProcess","BlackAndWhitePostProcess","BloomEffect","BloomMergePostProcess","BlurPostProcess","ChromaticAberrationPostProcess","CircleOfConfusionPostProcess","ColorCorrectionPostProcess","ConvolutionPostProcess","DepthOfFieldBlurPostProcess","DepthOfFieldEffectBlurLevel","DepthOfFieldEffect","DepthOfFieldMergePostProcessOptions","DepthOfFieldMergePostProcess","DisplayPassPostProcess","ExtractHighlightsPostProcess","FilterPostProcess","FxaaPostProcess","GrainPostProcess","HighlightsPostProcess","ImageProcessingPostProcess","MotionBlurPostProcess","PassPostProcess","PassCubePostProcess","PostProcess","PostProcessManager","RefractionPostProcess","DefaultRenderingPipeline","LensRenderingPipeline","SSAO2RenderingPipeline","SSAORenderingPipeline","StandardRenderingPipeline","PostProcessRenderEffect","PostProcessRenderPipeline","PostProcessRenderPipelineManager","PostProcessRenderPipelineManagerSceneComponent","SharpenPostProcess","StereoscopicInterlacePostProcessI","StereoscopicInterlacePostProcess","TonemappingOperator","TonemapPostProcess","VolumetricLightScatteringPostProcess","VRDistortionCorrectionPostProcess","VRMultiviewToSingleviewPostProcess","ScreenSpaceReflectionPostProcess","ScreenSpaceCurvaturePostProcess","ReflectionProbe","BoundingBoxRenderer","DepthRenderer","DepthRendererSceneComponent","EdgesRenderer","LineEdgesRenderer","GeometryBufferRenderer","GeometryBufferRendererSceneComponent","PrePassRenderer","PrePassRendererSceneComponent","OutlineRenderer","RenderingGroup","RenderingGroupInfo","RenderingManager","UtilityLayerRenderer","Scene","SceneComponentConstants","Stage","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Sprites_index__WEBPACK_IMPORTED_MODULE_36__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _States_index__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./States/index */ "./States/index.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlphaState", function() { return _States_index__WEBPACK_IMPORTED_MODULE_37__["AlphaState"]; }); @@ -191407,7 +192569,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StencilState", function() { return _States_index__WEBPACK_IMPORTED_MODULE_37__["StencilState"]; }); /* harmony import */ var _Misc_index__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./Misc/index */ "./Misc/index.ts"); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Misc_index__WEBPACK_IMPORTED_MODULE_38__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","AnaglyphPostProcess","BlackAndWhitePostProcess","BloomEffect","BloomMergePostProcess","BlurPostProcess","ChromaticAberrationPostProcess","CircleOfConfusionPostProcess","ColorCorrectionPostProcess","ConvolutionPostProcess","DepthOfFieldBlurPostProcess","DepthOfFieldEffectBlurLevel","DepthOfFieldEffect","DepthOfFieldMergePostProcessOptions","DepthOfFieldMergePostProcess","DisplayPassPostProcess","ExtractHighlightsPostProcess","FilterPostProcess","FxaaPostProcess","GrainPostProcess","HighlightsPostProcess","ImageProcessingPostProcess","MotionBlurPostProcess","PassPostProcess","PassCubePostProcess","PostProcess","PostProcessManager","RefractionPostProcess","DefaultRenderingPipeline","LensRenderingPipeline","SSAO2RenderingPipeline","SSAORenderingPipeline","StandardRenderingPipeline","PostProcessRenderEffect","PostProcessRenderPipeline","PostProcessRenderPipelineManager","PostProcessRenderPipelineManagerSceneComponent","SharpenPostProcess","StereoscopicInterlacePostProcessI","StereoscopicInterlacePostProcess","TonemappingOperator","TonemapPostProcess","VolumetricLightScatteringPostProcess","VRDistortionCorrectionPostProcess","VRMultiviewToSingleviewPostProcess","ScreenSpaceReflectionPostProcess","ScreenSpaceCurvaturePostProcess","ReflectionProbe","BoundingBoxRenderer","DepthRenderer","DepthRendererSceneComponent","EdgesRenderer","LineEdgesRenderer","GeometryBufferRenderer","GeometryBufferRendererSceneComponent","PrePassRenderer","PrePassRendererSceneComponent","OutlineRenderer","RenderingGroup","RenderingGroupInfo","RenderingManager","UtilityLayerRenderer","Scene","SceneComponentConstants","Stage","AlphaState","DepthCullingState","StencilState","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Misc_index__WEBPACK_IMPORTED_MODULE_38__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _Misc_index__WEBPACK_IMPORTED_MODULE_38__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","AnaglyphPostProcess","BlackAndWhitePostProcess","BloomEffect","BloomMergePostProcess","BlurPostProcess","ChromaticAberrationPostProcess","CircleOfConfusionPostProcess","ColorCorrectionPostProcess","ConvolutionPostProcess","DepthOfFieldBlurPostProcess","DepthOfFieldEffectBlurLevel","DepthOfFieldEffect","DepthOfFieldMergePostProcessOptions","DepthOfFieldMergePostProcess","DisplayPassPostProcess","ExtractHighlightsPostProcess","FilterPostProcess","FxaaPostProcess","GrainPostProcess","HighlightsPostProcess","ImageProcessingPostProcess","MotionBlurPostProcess","PassPostProcess","PassCubePostProcess","PostProcess","PostProcessManager","RefractionPostProcess","DefaultRenderingPipeline","LensRenderingPipeline","SSAO2RenderingPipeline","SSAORenderingPipeline","StandardRenderingPipeline","PostProcessRenderEffect","PostProcessRenderPipeline","PostProcessRenderPipelineManager","PostProcessRenderPipelineManagerSceneComponent","SharpenPostProcess","StereoscopicInterlacePostProcessI","StereoscopicInterlacePostProcess","TonemappingOperator","TonemapPostProcess","VolumetricLightScatteringPostProcess","VRDistortionCorrectionPostProcess","VRMultiviewToSingleviewPostProcess","ScreenSpaceReflectionPostProcess","ScreenSpaceCurvaturePostProcess","ReflectionProbe","BoundingBoxRenderer","DepthRenderer","DepthRendererSceneComponent","EdgesRenderer","LineEdgesRenderer","GeometryBufferRenderer","GeometryBufferRendererSceneComponent","PrePassRenderer","PrePassRendererSceneComponent","OutlineRenderer","RenderingGroup","RenderingGroupInfo","RenderingManager","UtilityLayerRenderer","Scene","SceneComponentConstants","Stage","AlphaState","DepthCullingState","StencilState","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _Misc_index__WEBPACK_IMPORTED_MODULE_38__[key]; }) }(__WEBPACK_IMPORT_KEY__)); /* harmony import */ var _XR_index__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./XR/index */ "./XR/index.ts"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRCamera", function() { return _XR_index__WEBPACK_IMPORTED_MODULE_39__["WebXRCamera"]; }); @@ -191457,6 +192619,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRHitTest", function() { return _XR_index__WEBPACK_IMPORTED_MODULE_39__["WebXRHitTest"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRFeaturePointSystem", function() { return _XR_index__WEBPACK_IMPORTED_MODULE_39__["WebXRFeaturePointSystem"]; }); + /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRAbstractMotionController", function() { return _XR_index__WEBPACK_IMPORTED_MODULE_39__["WebXRAbstractMotionController"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebXRControllerComponent", function() { return _XR_index__WEBPACK_IMPORTED_MODULE_39__["WebXRControllerComponent"]; }); @@ -191475,7 +192639,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./types */ "./types.ts"); /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(_types__WEBPACK_IMPORTED_MODULE_40__); -/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_40__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","AnaglyphPostProcess","BlackAndWhitePostProcess","BloomEffect","BloomMergePostProcess","BlurPostProcess","ChromaticAberrationPostProcess","CircleOfConfusionPostProcess","ColorCorrectionPostProcess","ConvolutionPostProcess","DepthOfFieldBlurPostProcess","DepthOfFieldEffectBlurLevel","DepthOfFieldEffect","DepthOfFieldMergePostProcessOptions","DepthOfFieldMergePostProcess","DisplayPassPostProcess","ExtractHighlightsPostProcess","FilterPostProcess","FxaaPostProcess","GrainPostProcess","HighlightsPostProcess","ImageProcessingPostProcess","MotionBlurPostProcess","PassPostProcess","PassCubePostProcess","PostProcess","PostProcessManager","RefractionPostProcess","DefaultRenderingPipeline","LensRenderingPipeline","SSAO2RenderingPipeline","SSAORenderingPipeline","StandardRenderingPipeline","PostProcessRenderEffect","PostProcessRenderPipeline","PostProcessRenderPipelineManager","PostProcessRenderPipelineManagerSceneComponent","SharpenPostProcess","StereoscopicInterlacePostProcessI","StereoscopicInterlacePostProcess","TonemappingOperator","TonemapPostProcess","VolumetricLightScatteringPostProcess","VRDistortionCorrectionPostProcess","VRMultiviewToSingleviewPostProcess","ScreenSpaceReflectionPostProcess","ScreenSpaceCurvaturePostProcess","ReflectionProbe","BoundingBoxRenderer","DepthRenderer","DepthRendererSceneComponent","EdgesRenderer","LineEdgesRenderer","GeometryBufferRenderer","GeometryBufferRendererSceneComponent","PrePassRenderer","PrePassRendererSceneComponent","OutlineRenderer","RenderingGroup","RenderingGroupInfo","RenderingManager","UtilityLayerRenderer","Scene","SceneComponentConstants","Stage","AlphaState","DepthCullingState","StencilState","WebXRCamera","WebXREnterExitUIButton","WebXREnterExitUIOptions","WebXREnterExitUI","WebXRExperienceHelper","WebXRInput","WebXRInputSource","WebXRManagedOutputCanvasOptions","WebXRManagedOutputCanvas","WebXRState","WebXRSessionManager","WebXRDefaultExperienceOptions","WebXRDefaultExperience","WebXRFeatureName","WebXRFeaturesManager","WebXRHitTestLegacy","WebXRAnchorSystem","WebXRPlaneDetector","WebXRBackgroundRemover","WebXRMotionControllerTeleportation","WebXRControllerPointerSelection","IWebXRControllerPhysicsOptions","WebXRControllerPhysics","WebXRHitTest","WebXRAbstractMotionController","WebXRControllerComponent","WebXRGenericTriggerMotionController","WebXRMicrosoftMixedRealityController","WebXRMotionControllerManager","WebXROculusTouchMotionController","WebXRHTCViveMotionController","WebXRProfiledMotionController","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _types__WEBPACK_IMPORTED_MODULE_40__[key]; }) }(__WEBPACK_IMPORT_KEY__)); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_40__) if(["AbstractScene","AbstractActionManager","Action","ActionEvent","ActionManager","Condition","ValueCondition","PredicateCondition","StateCondition","SwitchBooleanAction","SetStateAction","SetValueAction","IncrementValueAction","PlayAnimationAction","StopAnimationAction","DoNothingAction","CombineAction","ExecuteCodeAction","SetParentAction","PlaySoundAction","StopSoundAction","InterpolateValueAction","KeepAssets","InstantiatedEntries","AssetContainer","Analyser","AudioEngine","AudioSceneComponent","Sound","SoundTrack","WeightedSound","Bone","BoneIKController","BoneLookController","Skeleton","ArcRotateCameraGamepadInput","ArcRotateCameraKeyboardMoveInput","ArcRotateCameraMouseWheelInput","ArcRotateCameraPointersInput","ArcRotateCameraVRDeviceOrientationInput","FlyCameraKeyboardInput","FlyCameraMouseInput","FollowCameraKeyboardMoveInput","FollowCameraMouseWheelInput","FollowCameraPointersInput","FreeCameraDeviceOrientationInput","FreeCameraGamepadInput","FreeCameraKeyboardMoveInput","FreeCameraMouseInput","FreeCameraTouchInput","FreeCameraVirtualJoystickInput","CameraInputTypes","CameraInputsManager","Camera","TargetCamera","FreeCamera","FreeCameraInputsManager","TouchCamera","ArcRotateCamera","ArcRotateCameraInputsManager","DeviceOrientationCamera","FlyCamera","FlyCameraInputsManager","FollowCamera","ArcFollowCamera","FollowCameraInputsManager","GamepadCamera","AnaglyphArcRotateCamera","AnaglyphFreeCamera","AnaglyphGamepadCamera","AnaglyphUniversalCamera","StereoscopicArcRotateCamera","StereoscopicFreeCamera","StereoscopicGamepadCamera","StereoscopicUniversalCamera","UniversalCamera","VirtualJoysticksCamera","VRCameraMetrics","VRDeviceOrientationArcRotateCamera","VRDeviceOrientationFreeCamera","VRDeviceOrientationGamepadCamera","OnAfterEnteringVRObservableEvent","VRExperienceHelper","WebVRFreeCamera","Collider","DefaultCollisionCoordinator","PickingInfo","IntersectionInfo","_MeshCollisionData","BoundingBox","BoundingInfo","BoundingSphere","Octree","OctreeBlock","OctreeSceneComponent","Ray","KeyboardEventTypes","KeyboardInfo","KeyboardInfoPre","PointerEventTypes","PointerInfoBase","PointerInfoPre","PointerInfo","ClipboardEventTypes","ClipboardInfo","DaydreamController","GearVRController","GenericController","OculusTouchController","PoseEnabledControllerType","PoseEnabledControllerHelper","PoseEnabledController","ViveController","WebVRController","WindowsMotionController","XRWindowsMotionController","StickValues","Gamepad","GenericPad","GamepadManager","GamepadSystemSceneComponent","Xbox360Button","Xbox360Dpad","Xbox360Pad","DualShockButton","DualShockDpad","DualShockPad","AxisDragGizmo","AxisScaleGizmo","BoundingBoxGizmo","Gizmo","GizmoManager","PlaneRotationGizmo","PositionGizmo","RotationGizmo","ScaleGizmo","LightGizmo","CameraGizmo","PlaneDragGizmo","EnvironmentHelper","PhotoDome","_forceSceneHelpersToBundle","VideoDome","EngineInstrumentation","SceneInstrumentation","_TimeToken","EffectLayer","EffectLayerSceneComponent","GlowLayer","HighlightLayer","Layer","LayerSceneComponent","LensFlare","LensFlareSystem","LensFlareSystemSceneComponent","Light","ShadowLight","ShadowGenerator","CascadedShadowGenerator","ShadowGeneratorSceneComponent","DirectionalLight","HemisphericLight","PointLight","SpotLight","DefaultLoadingScreen","_BabylonLoaderRegistered","BabylonFileLoaderConfiguration","SceneLoaderAnimationGroupLoadingMode","SceneLoader","SceneLoaderFlags","Scalar","Space","Axis","Color3","Color4","TmpColors","ToGammaSpace","ToLinearSpace","Epsilon","Frustum","Orientation","BezierCurve","Angle","Arc2","Path2","Path3D","Curve3","Plane","Size","Vector2","Vector3","Vector4","Quaternion","Matrix","TmpVectors","PositionNormalVertex","PositionNormalTextureVertex","Viewport","SphericalHarmonics","SphericalPolynomial","AbstractMesh","Buffer","VertexBuffer","DracoCompression","CSG","Geometry","GroundMesh","TrailMesh","InstancedMesh","LinesMesh","InstancedLinesMesh","_CreationDataStorage","_InstancesBatch","Mesh","VertexData","MeshBuilder","SimplificationSettings","SimplificationQueue","SimplificationType","QuadraticErrorSimplification","SimplicationQueueSceneComponent","Polygon","PolygonMeshBuilder","SubMesh","MeshLODLevel","TransformNode","BoxBuilder","TiledBoxBuilder","DiscBuilder","RibbonBuilder","SphereBuilder","HemisphereBuilder","CylinderBuilder","TorusBuilder","TorusKnotBuilder","LinesBuilder","PolygonBuilder","ShapeBuilder","LatheBuilder","PlaneBuilder","TiledPlaneBuilder","GroundBuilder","TubeBuilder","PolyhedronBuilder","IcoSphereBuilder","DecalBuilder","DataBuffer","WebGLDataBuffer","MorphTarget","MorphTargetManager","Node","AnaglyphPostProcess","BlackAndWhitePostProcess","BloomEffect","BloomMergePostProcess","BlurPostProcess","ChromaticAberrationPostProcess","CircleOfConfusionPostProcess","ColorCorrectionPostProcess","ConvolutionPostProcess","DepthOfFieldBlurPostProcess","DepthOfFieldEffectBlurLevel","DepthOfFieldEffect","DepthOfFieldMergePostProcessOptions","DepthOfFieldMergePostProcess","DisplayPassPostProcess","ExtractHighlightsPostProcess","FilterPostProcess","FxaaPostProcess","GrainPostProcess","HighlightsPostProcess","ImageProcessingPostProcess","MotionBlurPostProcess","PassPostProcess","PassCubePostProcess","PostProcess","PostProcessManager","RefractionPostProcess","DefaultRenderingPipeline","LensRenderingPipeline","SSAO2RenderingPipeline","SSAORenderingPipeline","StandardRenderingPipeline","PostProcessRenderEffect","PostProcessRenderPipeline","PostProcessRenderPipelineManager","PostProcessRenderPipelineManagerSceneComponent","SharpenPostProcess","StereoscopicInterlacePostProcessI","StereoscopicInterlacePostProcess","TonemappingOperator","TonemapPostProcess","VolumetricLightScatteringPostProcess","VRDistortionCorrectionPostProcess","VRMultiviewToSingleviewPostProcess","ScreenSpaceReflectionPostProcess","ScreenSpaceCurvaturePostProcess","ReflectionProbe","BoundingBoxRenderer","DepthRenderer","DepthRendererSceneComponent","EdgesRenderer","LineEdgesRenderer","GeometryBufferRenderer","GeometryBufferRendererSceneComponent","PrePassRenderer","PrePassRendererSceneComponent","OutlineRenderer","RenderingGroup","RenderingGroupInfo","RenderingManager","UtilityLayerRenderer","Scene","SceneComponentConstants","Stage","AlphaState","DepthCullingState","StencilState","WebXRCamera","WebXREnterExitUIButton","WebXREnterExitUIOptions","WebXREnterExitUI","WebXRExperienceHelper","WebXRInput","WebXRInputSource","WebXRManagedOutputCanvasOptions","WebXRManagedOutputCanvas","WebXRState","WebXRSessionManager","WebXRDefaultExperienceOptions","WebXRDefaultExperience","WebXRFeatureName","WebXRFeaturesManager","WebXRHitTestLegacy","WebXRAnchorSystem","WebXRPlaneDetector","WebXRBackgroundRemover","WebXRMotionControllerTeleportation","WebXRControllerPointerSelection","IWebXRControllerPhysicsOptions","WebXRControllerPhysics","WebXRHitTest","WebXRFeaturePointSystem","WebXRAbstractMotionController","WebXRControllerComponent","WebXRGenericTriggerMotionController","WebXRMicrosoftMixedRealityController","WebXRMotionControllerManager","WebXROculusTouchMotionController","WebXRHTCViveMotionController","WebXRProfiledMotionController","default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _types__WEBPACK_IMPORTED_MODULE_40__[key]; }) }(__WEBPACK_IMPORT_KEY__)); @@ -191741,7 +192905,7 @@ var Node = /** @class */ (function () { configurable: true }); /** - * Gets a string idenfifying the name of the class + * Gets a string identifying the name of the class * @returns "Node" string */ Node.prototype.getClassName = function () { @@ -192732,10 +193896,6 @@ var Scene = /** @class */ (function (_super) { * Gets or sets a boolean indicating if postprocesses are enabled on this scene */ _this.postProcessesEnabled = true; - /** - * The list of postprocesses added to the scene - */ - _this.postProcesses = new Array(); // Customs render targets /** * Gets or sets a boolean indicating if render targets are enabled on this scene @@ -193497,7 +194657,7 @@ var Scene = /** @class */ (function (_super) { return null; }; /** - * Gets a string idenfifying the name of the class + * Gets a string identifying the name of the class * @returns "Scene" string */ Scene.prototype.getClassName = function () { @@ -194795,10 +195955,12 @@ var Scene = /** @class */ (function (_super) { } if (index !== this.geometries.length - 1) { var lastGeometry = this.geometries[this.geometries.length - 1]; - this.geometries[index] = lastGeometry; - if (this.geometriesByUniqueId) { - this.geometriesByUniqueId[lastGeometry.uniqueId] = index; - this.geometriesByUniqueId[geometry.uniqueId] = undefined; + if (lastGeometry) { + this.geometries[index] = lastGeometry; + if (this.geometriesByUniqueId) { + this.geometriesByUniqueId[lastGeometry.uniqueId] = index; + this.geometriesByUniqueId[geometry.uniqueId] = undefined; + } } } this.geometries.pop(); @@ -195107,6 +196269,20 @@ var Scene = /** @class */ (function (_super) { } return null; }; + /** + * Gets a post process using a given name (if many are found, this function will pick the first one) + * @param name defines the name to search for + * @return the found post process or null if not found at all. + */ + Scene.prototype.getPostProcessByName = function (name) { + for (var postProcessIndex = 0; postProcessIndex < this.postProcesses.length; ++postProcessIndex) { + var postProcess = this.postProcesses[postProcessIndex]; + if (postProcess.name === name) { + return postProcess; + } + } + return null; + }; /** * Gets a boolean indicating if the given mesh is active * @param mesh defines the mesh to look for diff --git a/Apps/Playground/Scripts/experience.js b/Apps/Playground/Scripts/experience.js index 7aae21ab3..86ba8ab40 100644 --- a/Apps/Playground/Scripts/experience.js +++ b/Apps/Playground/Scripts/experience.js @@ -136,11 +136,13 @@ CreateBoxAsync().then(function () { setTimeout(function () { scene.createDefaultXRExperienceAsync({ disableDefaultUI: true, disableTeleportation: true }).then((xr) => { if (xrHitTest) { + // Create the hit test module. OffsetRay specifies the target direction, and entityTypes can be any combination of "mesh", "plane", and "point". const xrHitTestModule = xr.baseExperience.featuresManager.enableFeature( BABYLON.WebXRFeatureName.HIT_TEST, "latest", - {offsetRay: {origin: {x: 0, y: 0, z: 0}, direction: {x: 0, y: 0, z: -1}}}); + {offsetRay: {origin: {x: 0, y: 0, z: 0}, direction: {x: 0, y: 0, z: -1}}, entityTypes: ["mesh"]}); + // When we receive hit test results, if there were any valid hits move the position of the mesh to the hit test point. xrHitTestModule.onHitTestResultObservable.add((results) => { if (results.length) { scene.meshes[0].position.x = results[0].position.x; diff --git a/Dependencies/xr/Include/XR.h b/Dependencies/xr/Include/XR.h index 80bb3f9a6..c18372faa 100644 --- a/Dependencies/xr/Include/XR.h +++ b/Dependencies/xr/Include/XR.h @@ -30,6 +30,29 @@ namespace xr XYZ }; + enum class HitTestTrackableType { + NONE = 0, + POINT = 1 << 0, + PLANE = 1 << 1, + MESH = 1 << 2, + }; + + constexpr enum HitTestTrackableType operator |(const enum HitTestTrackableType selfValue, const enum HitTestTrackableType inValue) + { + return static_cast(std::underlying_type_t(selfValue) | std::underlying_type_t(inValue)); + } + + constexpr enum HitTestTrackableType operator &(const enum HitTestTrackableType selfValue, const enum HitTestTrackableType inValue) + { + return static_cast(std::underlying_type_t(selfValue) & std::underlying_type_t(inValue)); + } + + constexpr enum HitTestTrackableType& operator |=(enum HitTestTrackableType& selfValue, const enum HitTestTrackableType inValue) + { + selfValue = selfValue | inValue; + return selfValue; + } + struct Size { size_t Width{}; @@ -172,7 +195,7 @@ namespace xr Frame(System::Session::Impl&); ~Frame(); - void GetHitTestResults(std::vector&, Ray) const; + void GetHitTestResults(std::vector&, Ray, HitTestTrackableType) const; Anchor CreateAnchor(Pose, NativeAnchorPtr) const; void UpdateAnchor(Anchor&) const; void DeleteAnchor(Anchor&) const; diff --git a/Dependencies/xr/Source/ARCore/XR.cpp b/Dependencies/xr/Source/ARCore/XR.cpp index a13d0649b..860dd2e43 100644 --- a/Dependencies/xr/Source/ARCore/XR.cpp +++ b/Dependencies/xr/Source/ARCore/XR.cpp @@ -618,7 +618,7 @@ namespace xr } } - void GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay) + void GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay, xr::HitTestTrackableType validHitTestTypes) { if (!IsTracking()) { @@ -667,27 +667,44 @@ namespace xr ArTrackableType trackableType{}; ArTrackable* trackable; + bool hitTestResultValid{false}; ArHitResultList_getItem(session, hitResultList, i, hitResult); ArHitResult_acquireTrackable(session, hitResult, &trackable); ArTrackable_getType(session, trackable, &trackableType); if (trackableType == AR_TRACKABLE_PLANE) { - int32_t isPoseInPolygon{}; - ArHitResult_getHitPose(session, hitResult, tempPose); - ArPlane_isPoseInPolygon(session, (ArPlane*) trackable, tempPose, &isPoseInPolygon); - - if (isPoseInPolygon != 0) + // If we are only hit testing against planes then mark the hit test as valid otherwise check + // if the hit result is inside the plane mesh. + if ((validHitTestTypes & xr::HitTestTrackableType::PLANE) != xr::HitTestTrackableType::NONE) + { + hitTestResultValid = true; + } + else if ((validHitTestTypes & xr::HitTestTrackableType::MESH) != xr::HitTestTrackableType::NONE) { - float rawPose[7]{}; - ArPose_getPoseRaw(session, tempPose, rawPose); - HitResult hitResult{}; - RawToPose(rawPose, hitResult.Pose); - - hitResult.NativeTrackable = reinterpret_cast(trackable); - filteredResults.push_back(hitResult); - frameTrackables.push_back(trackable); + int32_t isPoseInPolygon{}; + ArHitResult_getHitPose(session, hitResult, tempPose); + ArPlane_isPoseInPolygon(session, reinterpret_cast(trackable), tempPose, &isPoseInPolygon); + hitTestResultValid = isPoseInPolygon != 0; } } + else if (trackableType == AR_TRACKABLE_POINT && (validHitTestTypes & xr::HitTestTrackableType::POINT) != xr::HitTestTrackableType::NONE) + { + // Hit a feature point, which is valid for this hit test source. + hitTestResultValid = true; + } + + if (hitTestResultValid) + { + float rawPose[7]{}; + ArHitResult_getHitPose(session, hitResult, tempPose); + ArPose_getPoseRaw(session, tempPose, rawPose); + HitResult hitResult{}; + RawToPose(rawPose, hitResult.Pose); + + hitResult.NativeTrackable = reinterpret_cast(trackable); + filteredResults.push_back(hitResult); + frameTrackables.push_back(trackable); + } } } @@ -1047,9 +1064,9 @@ namespace xr m_impl->sessionImpl.UpdatePlanes(UpdatedPlanes, RemovedPlanes); } - void System::Session::Frame::GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay) const + void System::Session::Frame::GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay, xr::HitTestTrackableType trackableTypes) const { - m_impl->sessionImpl.GetHitTestResults(filteredResults, offsetRay); + m_impl->sessionImpl.GetHitTestResults(filteredResults, offsetRay, trackableTypes); } Anchor System::Session::Frame::CreateAnchor(Pose pose, NativeTrackablePtr trackable) const diff --git a/Dependencies/xr/Source/ARKit/XR.mm b/Dependencies/xr/Source/ARKit/XR.mm index 2f15d867c..49557e6fb 100644 --- a/Dependencies/xr/Source/ARKit/XR.mm +++ b/Dependencies/xr/Source/ARKit/XR.mm @@ -805,53 +805,18 @@ void DrawFrame() { } } - void GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay) const { + void GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay, xr::HitTestTrackableType trackableTypes) const { @autoreleasepool { if (session != nil && session.currentFrame != nil && session.currentFrame.camera != nil && [session.currentFrame.camera trackingState] == ARTrackingStateNormal) { if (@available(iOS 13.0, *)) { - // Push the camera origin into a simd_float3. - auto cameraOrigin = simd_make_float3( - ActiveFrameViews[0].Space.Pose.Position.X, - ActiveFrameViews[0].Space.Pose.Position.Y, - ActiveFrameViews[0].Space.Pose.Position.Z); - - // Push the camera direction into a simd_quaternion. - auto cameraDirection = simd_quaternion( - ActiveFrameViews[0].Space.Pose.Orientation.X, - ActiveFrameViews[0].Space.Pose.Orientation.Y, - ActiveFrameViews[0].Space.Pose.Orientation.Z, - ActiveFrameViews[0].Space.Pose.Orientation.W); - - // Load the offset ray and direction into simd equivalents. - auto offsetOrigin = simd_make_float3(offsetRay.Origin.X, offsetRay.Origin.Y, offsetRay.Origin.Z); - auto offsetDirection = simd_make_float3(offsetRay.Direction.X, offsetRay.Direction.Y, offsetRay.Direction.Z); - - // Construct the ARRaycast query compositing the camera and offset ray origin + direction targetting existing plane geometry. - auto raycastQuery = [[ARRaycastQuery alloc] - initWithOrigin:(cameraOrigin + offsetOrigin) - direction:simd_act(cameraDirection, offsetDirection) - allowingTarget:ARRaycastTargetExistingPlaneGeometry - alignment:ARRaycastTargetAlignmentAny]; - - // Perform the actual raycast. - auto rayCastResults = [session raycast:raycastQuery]; - [raycastQuery release]; - - // Process the results and push them into the results list. - for (ARRaycastResult* result in rayCastResults) { - filteredResults.push_back(transformToHitResult(result.worldTransform)); - } + GetHitTestResultsForiOS13(filteredResults, offsetRay, trackableTypes); } else { - // On iOS versions prior to 13, fall back to doing a raycast from a screen point, for now don't support translating the offset ray. - auto hitTestResults = [session.currentFrame hitTest:CGPointMake(.5, .5) types:(ARHitTestResultTypeExistingPlane)]; - for (ARHitTestResult* result in hitTestResults) { - filteredResults.push_back(transformToHitResult(result.worldTransform)); - } + GetHitTestResultsLegacy(filteredResults, trackableTypes); } } } } - + /** Create an ARKit anchor for the given pose. */ @@ -1070,6 +1035,87 @@ void UpdatePlane(std::vector& updatedPlanes, Frame::Pl plane.PolygonFormat = PolygonFormat::XYZ; updatedPlanes.push_back(plane.ID); } + + // For iOS 13.0 and up make use of the ARRaycastQuery protocol for raycasting against all target trackable types. + API_AVAILABLE(ios(13.0)) + void GetHitTestResultsForiOS13(std::vector& filteredResults, xr::Ray offsetRay, xr::HitTestTrackableType trackableTypes) const{ + // Push the camera origin into a simd_float3. + auto cameraOrigin = simd_make_float3( + ActiveFrameViews[0].Space.Pose.Position.X, + ActiveFrameViews[0].Space.Pose.Position.Y, + ActiveFrameViews[0].Space.Pose.Position.Z); + + // Push the camera direction into a simd_quaternion. + auto cameraDirection = simd_quaternion( + ActiveFrameViews[0].Space.Pose.Orientation.X, + ActiveFrameViews[0].Space.Pose.Orientation.Y, + ActiveFrameViews[0].Space.Pose.Orientation.Z, + ActiveFrameViews[0].Space.Pose.Orientation.W); + + // Load the offset ray and direction into simd equivalents. + auto offsetOrigin = simd_make_float3(offsetRay.Origin.X, offsetRay.Origin.Y, offsetRay.Origin.Z); + auto offsetDirection = simd_make_float3(offsetRay.Direction.X, offsetRay.Direction.Y, offsetRay.Direction.Z); + auto rayOrigin = cameraOrigin + offsetOrigin; + auto rayDirection = simd_act(cameraDirection, offsetDirection); + + // Check which types we are meant to raycast against and perform their respective queries. + if ((trackableTypes & xr::HitTestTrackableType::MESH) != xr::HitTestTrackableType::NONE) { + PerformRaycastQueryAgainstTarget(filteredResults, ARRaycastTargetExistingPlaneGeometry, rayOrigin, rayDirection); + } + + if ((trackableTypes & xr::HitTestTrackableType::POINT) != xr::HitTestTrackableType::NONE) { + PerformRaycastQueryAgainstTarget(filteredResults, ARRaycastTargetEstimatedPlane, rayOrigin, rayDirection); + } + + if ((trackableTypes & xr::HitTestTrackableType::PLANE) != xr::HitTestTrackableType::NONE) { + PerformRaycastQueryAgainstTarget(filteredResults, ARRaycastTargetExistingPlaneInfinite, rayOrigin, rayDirection); + } + } + + API_AVAILABLE(ios(13.0)) + void PerformRaycastQueryAgainstTarget(std::vector& filteredResults, ARRaycastTarget targetType, simd_float3 origin, simd_float3 direction) const { + auto raycastQuery = [[ARRaycastQuery alloc] + initWithOrigin:origin + direction:direction + allowingTarget:targetType + alignment:ARRaycastTargetAlignmentAny]; + + // Perform the actual raycast. + auto rayCastResults = [session raycast:raycastQuery]; + [raycastQuery release]; + + // Process the results and push them into the results list. + for (ARRaycastResult* result in rayCastResults) { + filteredResults.push_back(transformToHitResult(result.worldTransform)); + } + } + + // On iOS versions prior to 13, fall back to doing a raycast from a screen point, for now don't support translating the offset ray. + void GetHitTestResultsLegacy(std::vector& filteredResults, xr::HitTestTrackableType trackableTypes) const { + // First set the type filter based on the requested trackable types. + ARHitTestResultType typeFilter = 0; + if ((trackableTypes & xr::HitTestTrackableType::POINT) != xr::HitTestTrackableType::NONE) { + typeFilter |= ARHitTestResultTypeFeaturePoint; + } + + if ((trackableTypes & xr::HitTestTrackableType::PLANE) != xr::HitTestTrackableType::NONE) { + typeFilter |= ARHitTestResultTypeExistingPlane; + } + + if ((trackableTypes & xr::HitTestTrackableType::POINT) != xr::HitTestTrackableType::NONE) { + if (@available(iOS 11.3, *)) { + typeFilter |= ARHitTestResultTypeExistingPlaneUsingGeometry; + } else { + typeFilter |= ARHitTestResultTypeExistingPlaneUsingExtent; + } + } + + // Now perform the actual hit test and process the results + auto hitTestResults = [session.currentFrame hitTest:CGPointMake(.5, .5) types:(typeFilter)]; + for (ARHitTestResult* result in hitTestResults) { + filteredResults.push_back(transformToHitResult(result.worldTransform)); + } + } }; struct System::Session::Frame::Impl { @@ -1096,8 +1142,8 @@ void UpdatePlane(std::vector& updatedPlanes, Frame::Pl m_impl->sessionImpl.DrawFrame(); } - void System::Session::Frame::GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay) const { - m_impl->sessionImpl.GetHitTestResults(filteredResults, offsetRay); + void System::Session::Frame::GetHitTestResults(std::vector& filteredResults, xr::Ray offsetRay, xr::HitTestTrackableType trackableTypes) const { + m_impl->sessionImpl.GetHitTestResults(filteredResults, offsetRay, trackableTypes); } Anchor System::Session::Frame::CreateAnchor(Pose pose, NativeTrackablePtr) const { diff --git a/Dependencies/xr/Source/OpenXR/XR.cpp b/Dependencies/xr/Source/OpenXR/XR.cpp index afcaacab0..3ae378026 100644 --- a/Dependencies/xr/Source/OpenXR/XR.cpp +++ b/Dependencies/xr/Source/OpenXR/XR.cpp @@ -738,7 +738,7 @@ namespace xr } } - void System::Session::Frame::GetHitTestResults(std::vector&, Ray) const { + void System::Session::Frame::GetHitTestResults(std::vector&, Ray, xr::HitTestTrackableType) const { // Stubbed out for now, should be implemented if we want to support OpenXR based passthrough AR devices. } diff --git a/Plugins/NativeXr/Source/NativeXr.cpp b/Plugins/NativeXr/Source/NativeXr.cpp index addc8f049..b55b2dd63 100644 --- a/Plugins/NativeXr/Source/NativeXr.cpp +++ b/Plugins/NativeXr/Source/NativeXr.cpp @@ -409,6 +409,13 @@ namespace Babylon static constexpr auto UNBOUNDED{"unbounded"}; }; + struct XRHitTestTrackableType + { + static constexpr auto POINT{"point"}; + static constexpr auto PLANE{"plane"}; + static constexpr auto MESH{"mesh"}; + }; + struct XREye { // static constexpr auto NONE{"none"}; @@ -1126,6 +1133,33 @@ namespace Babylon m_offsetRay = Napi::Persistent(options.Get("offsetRay").As()); hasOffsetRay = true; } + + if (options.Has("entityTypes")) + { + const auto entityTypeArray = options.Get("entityTypes").As(); + for (uint32_t i = 0; i < entityTypeArray.Length(); i++) + { + const auto entityType = entityTypeArray.Get(i).As().Utf8Value(); + if (entityType == XRHitTestTrackableType::POINT) + { + m_entityTypes |= xr::HitTestTrackableType::POINT; + } + else if (entityType == XRHitTestTrackableType::PLANE) + { + m_entityTypes |= xr::HitTestTrackableType::PLANE; + } + else if (entityType == XRHitTestTrackableType::MESH) + { + m_entityTypes |= xr::HitTestTrackableType::MESH; + } + } + } + + // Default to MESH if unspecified. + if (m_entityTypes == xr::HitTestTrackableType::NONE) + { + m_entityTypes = xr::HitTestTrackableType::MESH; + } } XRRay* OffsetRay() @@ -1138,6 +1172,11 @@ namespace Babylon return hasSpace ? XRReferenceSpace::Unwrap(m_space.Value()) : nullptr; } + xr::HitTestTrackableType GetEntityTypes() + { + return m_entityTypes; + } + private: void Cancel(const Napi::CallbackInfo& /*info*/) { @@ -1149,6 +1188,8 @@ namespace Babylon bool hasOffsetRay = false; Napi::ObjectReference m_offsetRay; + + xr::HitTestTrackableType m_entityTypes{xr::HitTestTrackableType::NONE}; }; // Implementation of the XRHitTestResult interface: https://immersive-web.github.io/hit-test/#xr-hit-test-result-interface @@ -1457,7 +1498,7 @@ namespace Babylon // Get the native results std::vector nativeHitResults{}; - m_frame->GetHitTestResults(nativeHitResults, nativeRay); + m_frame->GetHitTestResults(nativeHitResults, nativeRay, hitTestSource->GetEntityTypes()); // Translate those results into a napi array. auto results = Napi::Array::New(info.Env(), nativeHitResults.size());