David Catuhe 7 年之前
父節點
當前提交
3ab1dcdac2

文件差異過大導致無法顯示
+ 6893 - 6722
Playground/babylon.d.txt


文件差異過大導致無法顯示
+ 18155 - 19617
dist/preview release/babylon.d.ts


+ 163 - 7
dist/preview release/babylon.max.js

@@ -6678,17 +6678,25 @@ var BABYLON;
         return Frustum;
     }());
     BABYLON.Frustum = Frustum;
+    /** Defines supported spaces */
     var Space;
     (function (Space) {
+        /** Local (object) space */
         Space[Space["LOCAL"] = 0] = "LOCAL";
+        /** World space */
         Space[Space["WORLD"] = 1] = "WORLD";
+        /** Bone space */
         Space[Space["BONE"] = 2] = "BONE";
     })(Space = BABYLON.Space || (BABYLON.Space = {}));
+    /** Defines the 3 main axes */
     var Axis = /** @class */ (function () {
         function Axis() {
         }
+        /** X axis */
         Axis.X = new Vector3(1.0, 0.0, 0.0);
+        /** Y axis */
         Axis.Y = new Vector3(0.0, 1.0, 0.0);
+        /** Z axis */
         Axis.Z = new Vector3(0.0, 0.0, 1.0);
         return Axis;
     }());
@@ -6722,9 +6730,16 @@ var BABYLON;
         return BezierCurve;
     }());
     BABYLON.BezierCurve = BezierCurve;
+    /**
+     * Defines potential orientation for back face culling
+     */
     var Orientation;
     (function (Orientation) {
+        /**
+         * Clockwise
+         */
         Orientation[Orientation["CW"] = 0] = "CW";
+        /** Counter clockwise */
         Orientation[Orientation["CCW"] = 1] = "CCW";
     })(Orientation = BABYLON.Orientation || (BABYLON.Orientation = {}));
     var Angle = /** @class */ (function () {
@@ -54942,15 +54957,22 @@ var BABYLON;
 (function (BABYLON) {
     //WebWorker code will be inserted to this variable.
     BABYLON.CollisionWorker = "";
+    /** Defines supported task for worker process */
     var WorkerTaskType;
     (function (WorkerTaskType) {
+        /** Initialization */
         WorkerTaskType[WorkerTaskType["INIT"] = 0] = "INIT";
+        /** Update of geometry */
         WorkerTaskType[WorkerTaskType["UPDATE"] = 1] = "UPDATE";
+        /** Evaluate collision */
         WorkerTaskType[WorkerTaskType["COLLIDE"] = 2] = "COLLIDE";
     })(WorkerTaskType = BABYLON.WorkerTaskType || (BABYLON.WorkerTaskType = {}));
+    /** Defines kind of replies returned by worker */
     var WorkerReplyType;
     (function (WorkerReplyType) {
+        /** Success */
         WorkerReplyType[WorkerReplyType["SUCCESS"] = 0] = "SUCCESS";
+        /** Unkown error */
         WorkerReplyType[WorkerReplyType["UNKNOWN_ERROR"] = 1] = "UNKNOWN_ERROR";
     })(WorkerReplyType = BABYLON.WorkerReplyType || (BABYLON.WorkerReplyType = {}));
     var CollisionCoordinatorWorker = /** @class */ (function () {
@@ -70197,36 +70219,68 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines supported buttons for XBox360 compatible gamepads
+     */
     var Xbox360Button;
     (function (Xbox360Button) {
+        /** A */
         Xbox360Button[Xbox360Button["A"] = 0] = "A";
+        /** B */
         Xbox360Button[Xbox360Button["B"] = 1] = "B";
+        /** X */
         Xbox360Button[Xbox360Button["X"] = 2] = "X";
+        /** Y */
         Xbox360Button[Xbox360Button["Y"] = 3] = "Y";
+        /** Start */
         Xbox360Button[Xbox360Button["Start"] = 4] = "Start";
+        /** Back */
         Xbox360Button[Xbox360Button["Back"] = 5] = "Back";
+        /** Left button */
         Xbox360Button[Xbox360Button["LB"] = 6] = "LB";
+        /** Right button */
         Xbox360Button[Xbox360Button["RB"] = 7] = "RB";
+        /** Left stick */
         Xbox360Button[Xbox360Button["LeftStick"] = 8] = "LeftStick";
+        /** Right stick */
         Xbox360Button[Xbox360Button["RightStick"] = 9] = "RightStick";
     })(Xbox360Button = BABYLON.Xbox360Button || (BABYLON.Xbox360Button = {}));
+    /** Defines values for XBox360 DPad  */
     var Xbox360Dpad;
     (function (Xbox360Dpad) {
+        /** Up */
         Xbox360Dpad[Xbox360Dpad["Up"] = 0] = "Up";
+        /** Down */
         Xbox360Dpad[Xbox360Dpad["Down"] = 1] = "Down";
+        /** Left */
         Xbox360Dpad[Xbox360Dpad["Left"] = 2] = "Left";
+        /** Right */
         Xbox360Dpad[Xbox360Dpad["Right"] = 3] = "Right";
     })(Xbox360Dpad = BABYLON.Xbox360Dpad || (BABYLON.Xbox360Dpad = {}));
+    /**
+     * Defines a XBox360 gamepad
+     */
     var Xbox360Pad = /** @class */ (function (_super) {
         __extends(Xbox360Pad, _super);
+        /**
+         * Creates a new XBox360 gamepad object
+         * @param id defines the id of this gamepad
+         * @param index defines its index
+         * @param gamepad defines the internal HTML gamepad object
+         * @param xboxOne defines if it is a XBox One gamepad
+         */
         function Xbox360Pad(id, index, gamepad, xboxOne) {
             if (xboxOne === void 0) { xboxOne = false; }
             var _this = _super.call(this, id, index, gamepad, 0, 1, 2, 3) || this;
             _this._leftTrigger = 0;
             _this._rightTrigger = 0;
+            /** Observable raised when a button is pressed */
             _this.onButtonDownObservable = new BABYLON.Observable();
+            /** Observable raised when a button is released */
             _this.onButtonUpObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is pressed */
             _this.onPadDownObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is released */
             _this.onPadUpObservable = new BABYLON.Observable();
             _this._buttonA = 0;
             _this._buttonB = 0;
@@ -70247,13 +70301,24 @@ var BABYLON;
             _this._isXboxOnePad = xboxOne;
             return _this;
         }
+        /**
+         * Defines the callback to call when left trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onlefttriggerchanged = function (callback) {
             this._onlefttriggerchanged = callback;
         };
+        /**
+         * Defines the callback to call when right trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onrighttriggerchanged = function (callback) {
             this._onrighttriggerchanged = callback;
         };
         Object.defineProperty(Xbox360Pad.prototype, "leftTrigger", {
+            /**
+             * Gets or sets left trigger value
+             */
             get: function () {
                 return this._leftTrigger;
             },
@@ -70267,6 +70332,9 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "rightTrigger", {
+            /**
+             * Gets or sets right trigger value
+             */
             get: function () {
                 return this._rightTrigger;
             },
@@ -70279,15 +70347,31 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Defines the callback to call when a button is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttondown = function (callback) {
             this._onbuttondown = callback;
         };
+        /**
+         * Defines the callback to call when a button is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttonup = function (callback) {
             this._onbuttonup = callback;
         };
+        /**
+         * Defines the callback to call when a pad is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpaddown = function (callback) {
             this._ondpaddown = callback;
         };
+        /**
+         * Defines the callback to call when a pad is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpadup = function (callback) {
             this._ondpadup = callback;
         };
@@ -70326,6 +70410,7 @@ var BABYLON;
             return newValue;
         };
         Object.defineProperty(Xbox360Pad.prototype, "buttonA", {
+            /** Gets or sets value of A button */
             get: function () {
                 return this._buttonA;
             },
@@ -70336,6 +70421,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonB", {
+            /** Gets or sets value of B button */
             get: function () {
                 return this._buttonB;
             },
@@ -70346,6 +70432,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonX", {
+            /** Gets or sets value of X button */
             get: function () {
                 return this._buttonX;
             },
@@ -70356,6 +70443,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonY", {
+            /** Gets or sets value of Y button */
             get: function () {
                 return this._buttonY;
             },
@@ -70366,6 +70454,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonStart", {
+            /** Gets or sets value of Start button  */
             get: function () {
                 return this._buttonStart;
             },
@@ -70376,6 +70465,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonBack", {
+            /** Gets or sets value of Back button  */
             get: function () {
                 return this._buttonBack;
             },
@@ -70386,6 +70476,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLB", {
+            /** Gets or sets value of Left button  */
             get: function () {
                 return this._buttonLB;
             },
@@ -70396,6 +70487,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRB", {
+            /** Gets or sets value of Right button  */
             get: function () {
                 return this._buttonRB;
             },
@@ -70406,6 +70498,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLeftStick", {
+            /** Gets or sets value of left stick */
             get: function () {
                 return this._buttonLeftStick;
             },
@@ -70416,6 +70509,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRightStick", {
+            /** Gets or sets value of right stick */
             get: function () {
                 return this._buttonRightStick;
             },
@@ -70426,6 +70520,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadUp", {
+            /** Gets or sets value of DPad up */
             get: function () {
                 return this._dPadUp;
             },
@@ -70436,6 +70531,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadDown", {
+            /** Gets or sets value of DPad down */
             get: function () {
                 return this._dPadDown;
             },
@@ -70446,6 +70542,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadLeft", {
+            /** Gets or sets value of DPad left */
             get: function () {
                 return this._dPadLeft;
             },
@@ -70456,6 +70553,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadRight", {
+            /** Gets or sets value of DPad right */
             get: function () {
                 return this._dPadRight;
             },
@@ -70465,6 +70563,9 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Force the gamepad to synchronize with device values
+         */
         Xbox360Pad.prototype.update = function () {
             _super.prototype.update.call(this);
             if (this._isXboxOnePad) {
@@ -76581,17 +76682,37 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /** Defines operator used for tonemapping */
     var TonemappingOperator;
     (function (TonemappingOperator) {
+        /** Hable */
         TonemappingOperator[TonemappingOperator["Hable"] = 0] = "Hable";
+        /** Reinhard */
         TonemappingOperator[TonemappingOperator["Reinhard"] = 1] = "Reinhard";
+        /** HejiDawson */
         TonemappingOperator[TonemappingOperator["HejiDawson"] = 2] = "HejiDawson";
+        /** Photographic */
         TonemappingOperator[TonemappingOperator["Photographic"] = 3] = "Photographic";
     })(TonemappingOperator = BABYLON.TonemappingOperator || (BABYLON.TonemappingOperator = {}));
     ;
+    /**
+     * Defines a post process to apply tone mapping
+     */
     var TonemapPostProcess = /** @class */ (function (_super) {
         __extends(TonemapPostProcess, _super);
-        function TonemapPostProcess(name, _operator, exposureAdjustment, camera, samplingMode, engine, textureFormat) {
+        /**
+         * Creates a new TonemapPostProcess
+         * @param name defines the name of the postprocess
+         * @param _operator defines the operator to use
+         * @param exposureAdjustment defines the required exposure adjustement
+         * @param camera defines the camera to use (can be null)
+         * @param samplingMode defines the required sampling mode (BABYLON.Texture.BILINEAR_SAMPLINGMODE by default)
+         * @param engine defines the hosting engine (can be ignore if camera is set)
+         * @param textureFormat defines the texture format to use (BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT by default)
+         */
+        function TonemapPostProcess(name, _operator, 
+        /** Defines the required exposure adjustement */
+        exposureAdjustment, camera, samplingMode, engine, textureFormat) {
             if (samplingMode === void 0) { samplingMode = BABYLON.Texture.BILINEAR_SAMPLINGMODE; }
             if (textureFormat === void 0) { textureFormat = BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT; }
             var _this = _super.call(this, name, "tonemap", ["_ExposureAdjustment"], null, 1.0, camera, samplingMode, engine, true, null, textureFormat) || this;
@@ -82919,16 +83040,20 @@ var BABYLON;
     */
     var PhysicsRadialImpulseFalloff;
     (function (PhysicsRadialImpulseFalloff) {
+        /** Defines that impulse is constant in strength across it's whole radius */
         PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Constant"] = 0] = "Constant";
-        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear"; // impulse gets weaker if it's further from the origin
+        /** DEfines that impulse gets weaker if it's further from the origin */
+        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear";
     })(PhysicsRadialImpulseFalloff = BABYLON.PhysicsRadialImpulseFalloff || (BABYLON.PhysicsRadialImpulseFalloff = {}));
     /**
      * The strenght of the force in correspondence to the distance of the affected object
      */
     var PhysicsUpdraftMode;
     (function (PhysicsUpdraftMode) {
+        /** Defines that the upstream forces will pull towards the top center of the cylinder */
         PhysicsUpdraftMode[PhysicsUpdraftMode["Center"] = 0] = "Center";
-        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular"; // once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder
+        /** Defines that once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder */
+        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular";
     })(PhysicsUpdraftMode = BABYLON.PhysicsUpdraftMode || (BABYLON.PhysicsUpdraftMode = {}));
 })(BABYLON || (BABYLON = {}));
 
@@ -88757,13 +88882,26 @@ var BABYLON;
 // & on Seb Lee-Delisle original work: http://seb.ly/2011/04/multi-touch-game-controller-in-javascripthtml5-for-ipad/ 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines the potential axis of a Joystick
+     */
     var JoystickAxis;
     (function (JoystickAxis) {
+        /** X axis */
         JoystickAxis[JoystickAxis["X"] = 0] = "X";
+        /** Y axis */
         JoystickAxis[JoystickAxis["Y"] = 1] = "Y";
+        /** Z axis */
         JoystickAxis[JoystickAxis["Z"] = 2] = "Z";
     })(JoystickAxis = BABYLON.JoystickAxis || (BABYLON.JoystickAxis = {}));
+    /**
+     * Class used to define virtual joystick (used in touch mode)
+     */
     var VirtualJoystick = /** @class */ (function () {
+        /**
+         * Creates a new virtual joystick
+         * @param leftJoystick defines that the joystick is for left hand (false by default)
+         */
         function VirtualJoystick(leftJoystick) {
             var _this = this;
             if (leftJoystick) {
@@ -88849,6 +88987,10 @@ var BABYLON;
             }, false);
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         }
+        /**
+         * Defines joystick sensibility (ie. the ratio beteen a physical move and virtual joystick position change)
+         * @param newJoystickSensibility defines the new sensibility
+         */
         VirtualJoystick.prototype.setJoystickSensibility = function (newJoystickSensibility) {
             this._joystickSensibility = newJoystickSensibility;
             this._inversedSensibility = 1 / (this._joystickSensibility / 1000);
@@ -88948,10 +89090,17 @@ var BABYLON;
         VirtualJoystick.prototype.setJoystickColor = function (newColor) {
             this._joystickColor = newColor;
         };
+        /**
+         * Defines a callback to call when the joystick is touched
+         * @param action defines the callback
+         */
         VirtualJoystick.prototype.setActionOnTouch = function (action) {
             this._action = action;
         };
-        // Define which axis you'd like to control for left & right 
+        /**
+         * Defines which axis you'd like to control for left & right
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForLeftRight = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -88964,7 +89113,10 @@ var BABYLON;
                     break;
             }
         };
-        // Define which axis you'd like to control for up & down 
+        /**
+         * Defines which axis you'd like to control for up & down
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForUpDown = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -89021,6 +89173,9 @@ var BABYLON;
             }
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         };
+        /**
+         * Release internal HTML canvas
+         */
         VirtualJoystick.prototype.releaseCanvas = function () {
             if (VirtualJoystick.vjCanvas) {
                 VirtualJoystick.vjCanvas.removeEventListener('pointerdown', this._onPointerDownHandlerRef);
@@ -89201,11 +89356,12 @@ var BABYLON;
     }());
     BABYLON.SimplificationQueue = SimplificationQueue;
     /**
-     * The implemented types of simplification.
-     * At the moment only Quadratic Error Decimation is implemented.
+     * The implemented types of simplification
+     * At the moment only Quadratic Error Decimation is implemented
      */
     var SimplificationType;
     (function (SimplificationType) {
+        /** Quadratic error decimation */
         SimplificationType[SimplificationType["QUADRATIC"] = 0] = "QUADRATIC";
     })(SimplificationType = BABYLON.SimplificationType || (BABYLON.SimplificationType = {}));
     var DecimationTriangle = /** @class */ (function () {

+ 163 - 7
dist/preview release/babylon.no-module.max.js

@@ -6645,17 +6645,25 @@ var BABYLON;
         return Frustum;
     }());
     BABYLON.Frustum = Frustum;
+    /** Defines supported spaces */
     var Space;
     (function (Space) {
+        /** Local (object) space */
         Space[Space["LOCAL"] = 0] = "LOCAL";
+        /** World space */
         Space[Space["WORLD"] = 1] = "WORLD";
+        /** Bone space */
         Space[Space["BONE"] = 2] = "BONE";
     })(Space = BABYLON.Space || (BABYLON.Space = {}));
+    /** Defines the 3 main axes */
     var Axis = /** @class */ (function () {
         function Axis() {
         }
+        /** X axis */
         Axis.X = new Vector3(1.0, 0.0, 0.0);
+        /** Y axis */
         Axis.Y = new Vector3(0.0, 1.0, 0.0);
+        /** Z axis */
         Axis.Z = new Vector3(0.0, 0.0, 1.0);
         return Axis;
     }());
@@ -6689,9 +6697,16 @@ var BABYLON;
         return BezierCurve;
     }());
     BABYLON.BezierCurve = BezierCurve;
+    /**
+     * Defines potential orientation for back face culling
+     */
     var Orientation;
     (function (Orientation) {
+        /**
+         * Clockwise
+         */
         Orientation[Orientation["CW"] = 0] = "CW";
+        /** Counter clockwise */
         Orientation[Orientation["CCW"] = 1] = "CCW";
     })(Orientation = BABYLON.Orientation || (BABYLON.Orientation = {}));
     var Angle = /** @class */ (function () {
@@ -54909,15 +54924,22 @@ var BABYLON;
 (function (BABYLON) {
     //WebWorker code will be inserted to this variable.
     BABYLON.CollisionWorker = "";
+    /** Defines supported task for worker process */
     var WorkerTaskType;
     (function (WorkerTaskType) {
+        /** Initialization */
         WorkerTaskType[WorkerTaskType["INIT"] = 0] = "INIT";
+        /** Update of geometry */
         WorkerTaskType[WorkerTaskType["UPDATE"] = 1] = "UPDATE";
+        /** Evaluate collision */
         WorkerTaskType[WorkerTaskType["COLLIDE"] = 2] = "COLLIDE";
     })(WorkerTaskType = BABYLON.WorkerTaskType || (BABYLON.WorkerTaskType = {}));
+    /** Defines kind of replies returned by worker */
     var WorkerReplyType;
     (function (WorkerReplyType) {
+        /** Success */
         WorkerReplyType[WorkerReplyType["SUCCESS"] = 0] = "SUCCESS";
+        /** Unkown error */
         WorkerReplyType[WorkerReplyType["UNKNOWN_ERROR"] = 1] = "UNKNOWN_ERROR";
     })(WorkerReplyType = BABYLON.WorkerReplyType || (BABYLON.WorkerReplyType = {}));
     var CollisionCoordinatorWorker = /** @class */ (function () {
@@ -70164,36 +70186,68 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines supported buttons for XBox360 compatible gamepads
+     */
     var Xbox360Button;
     (function (Xbox360Button) {
+        /** A */
         Xbox360Button[Xbox360Button["A"] = 0] = "A";
+        /** B */
         Xbox360Button[Xbox360Button["B"] = 1] = "B";
+        /** X */
         Xbox360Button[Xbox360Button["X"] = 2] = "X";
+        /** Y */
         Xbox360Button[Xbox360Button["Y"] = 3] = "Y";
+        /** Start */
         Xbox360Button[Xbox360Button["Start"] = 4] = "Start";
+        /** Back */
         Xbox360Button[Xbox360Button["Back"] = 5] = "Back";
+        /** Left button */
         Xbox360Button[Xbox360Button["LB"] = 6] = "LB";
+        /** Right button */
         Xbox360Button[Xbox360Button["RB"] = 7] = "RB";
+        /** Left stick */
         Xbox360Button[Xbox360Button["LeftStick"] = 8] = "LeftStick";
+        /** Right stick */
         Xbox360Button[Xbox360Button["RightStick"] = 9] = "RightStick";
     })(Xbox360Button = BABYLON.Xbox360Button || (BABYLON.Xbox360Button = {}));
+    /** Defines values for XBox360 DPad  */
     var Xbox360Dpad;
     (function (Xbox360Dpad) {
+        /** Up */
         Xbox360Dpad[Xbox360Dpad["Up"] = 0] = "Up";
+        /** Down */
         Xbox360Dpad[Xbox360Dpad["Down"] = 1] = "Down";
+        /** Left */
         Xbox360Dpad[Xbox360Dpad["Left"] = 2] = "Left";
+        /** Right */
         Xbox360Dpad[Xbox360Dpad["Right"] = 3] = "Right";
     })(Xbox360Dpad = BABYLON.Xbox360Dpad || (BABYLON.Xbox360Dpad = {}));
+    /**
+     * Defines a XBox360 gamepad
+     */
     var Xbox360Pad = /** @class */ (function (_super) {
         __extends(Xbox360Pad, _super);
+        /**
+         * Creates a new XBox360 gamepad object
+         * @param id defines the id of this gamepad
+         * @param index defines its index
+         * @param gamepad defines the internal HTML gamepad object
+         * @param xboxOne defines if it is a XBox One gamepad
+         */
         function Xbox360Pad(id, index, gamepad, xboxOne) {
             if (xboxOne === void 0) { xboxOne = false; }
             var _this = _super.call(this, id, index, gamepad, 0, 1, 2, 3) || this;
             _this._leftTrigger = 0;
             _this._rightTrigger = 0;
+            /** Observable raised when a button is pressed */
             _this.onButtonDownObservable = new BABYLON.Observable();
+            /** Observable raised when a button is released */
             _this.onButtonUpObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is pressed */
             _this.onPadDownObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is released */
             _this.onPadUpObservable = new BABYLON.Observable();
             _this._buttonA = 0;
             _this._buttonB = 0;
@@ -70214,13 +70268,24 @@ var BABYLON;
             _this._isXboxOnePad = xboxOne;
             return _this;
         }
+        /**
+         * Defines the callback to call when left trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onlefttriggerchanged = function (callback) {
             this._onlefttriggerchanged = callback;
         };
+        /**
+         * Defines the callback to call when right trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onrighttriggerchanged = function (callback) {
             this._onrighttriggerchanged = callback;
         };
         Object.defineProperty(Xbox360Pad.prototype, "leftTrigger", {
+            /**
+             * Gets or sets left trigger value
+             */
             get: function () {
                 return this._leftTrigger;
             },
@@ -70234,6 +70299,9 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "rightTrigger", {
+            /**
+             * Gets or sets right trigger value
+             */
             get: function () {
                 return this._rightTrigger;
             },
@@ -70246,15 +70314,31 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Defines the callback to call when a button is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttondown = function (callback) {
             this._onbuttondown = callback;
         };
+        /**
+         * Defines the callback to call when a button is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttonup = function (callback) {
             this._onbuttonup = callback;
         };
+        /**
+         * Defines the callback to call when a pad is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpaddown = function (callback) {
             this._ondpaddown = callback;
         };
+        /**
+         * Defines the callback to call when a pad is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpadup = function (callback) {
             this._ondpadup = callback;
         };
@@ -70293,6 +70377,7 @@ var BABYLON;
             return newValue;
         };
         Object.defineProperty(Xbox360Pad.prototype, "buttonA", {
+            /** Gets or sets value of A button */
             get: function () {
                 return this._buttonA;
             },
@@ -70303,6 +70388,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonB", {
+            /** Gets or sets value of B button */
             get: function () {
                 return this._buttonB;
             },
@@ -70313,6 +70399,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonX", {
+            /** Gets or sets value of X button */
             get: function () {
                 return this._buttonX;
             },
@@ -70323,6 +70410,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonY", {
+            /** Gets or sets value of Y button */
             get: function () {
                 return this._buttonY;
             },
@@ -70333,6 +70421,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonStart", {
+            /** Gets or sets value of Start button  */
             get: function () {
                 return this._buttonStart;
             },
@@ -70343,6 +70432,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonBack", {
+            /** Gets or sets value of Back button  */
             get: function () {
                 return this._buttonBack;
             },
@@ -70353,6 +70443,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLB", {
+            /** Gets or sets value of Left button  */
             get: function () {
                 return this._buttonLB;
             },
@@ -70363,6 +70454,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRB", {
+            /** Gets or sets value of Right button  */
             get: function () {
                 return this._buttonRB;
             },
@@ -70373,6 +70465,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLeftStick", {
+            /** Gets or sets value of left stick */
             get: function () {
                 return this._buttonLeftStick;
             },
@@ -70383,6 +70476,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRightStick", {
+            /** Gets or sets value of right stick */
             get: function () {
                 return this._buttonRightStick;
             },
@@ -70393,6 +70487,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadUp", {
+            /** Gets or sets value of DPad up */
             get: function () {
                 return this._dPadUp;
             },
@@ -70403,6 +70498,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadDown", {
+            /** Gets or sets value of DPad down */
             get: function () {
                 return this._dPadDown;
             },
@@ -70413,6 +70509,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadLeft", {
+            /** Gets or sets value of DPad left */
             get: function () {
                 return this._dPadLeft;
             },
@@ -70423,6 +70520,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadRight", {
+            /** Gets or sets value of DPad right */
             get: function () {
                 return this._dPadRight;
             },
@@ -70432,6 +70530,9 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Force the gamepad to synchronize with device values
+         */
         Xbox360Pad.prototype.update = function () {
             _super.prototype.update.call(this);
             if (this._isXboxOnePad) {
@@ -76548,17 +76649,37 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /** Defines operator used for tonemapping */
     var TonemappingOperator;
     (function (TonemappingOperator) {
+        /** Hable */
         TonemappingOperator[TonemappingOperator["Hable"] = 0] = "Hable";
+        /** Reinhard */
         TonemappingOperator[TonemappingOperator["Reinhard"] = 1] = "Reinhard";
+        /** HejiDawson */
         TonemappingOperator[TonemappingOperator["HejiDawson"] = 2] = "HejiDawson";
+        /** Photographic */
         TonemappingOperator[TonemappingOperator["Photographic"] = 3] = "Photographic";
     })(TonemappingOperator = BABYLON.TonemappingOperator || (BABYLON.TonemappingOperator = {}));
     ;
+    /**
+     * Defines a post process to apply tone mapping
+     */
     var TonemapPostProcess = /** @class */ (function (_super) {
         __extends(TonemapPostProcess, _super);
-        function TonemapPostProcess(name, _operator, exposureAdjustment, camera, samplingMode, engine, textureFormat) {
+        /**
+         * Creates a new TonemapPostProcess
+         * @param name defines the name of the postprocess
+         * @param _operator defines the operator to use
+         * @param exposureAdjustment defines the required exposure adjustement
+         * @param camera defines the camera to use (can be null)
+         * @param samplingMode defines the required sampling mode (BABYLON.Texture.BILINEAR_SAMPLINGMODE by default)
+         * @param engine defines the hosting engine (can be ignore if camera is set)
+         * @param textureFormat defines the texture format to use (BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT by default)
+         */
+        function TonemapPostProcess(name, _operator, 
+        /** Defines the required exposure adjustement */
+        exposureAdjustment, camera, samplingMode, engine, textureFormat) {
             if (samplingMode === void 0) { samplingMode = BABYLON.Texture.BILINEAR_SAMPLINGMODE; }
             if (textureFormat === void 0) { textureFormat = BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT; }
             var _this = _super.call(this, name, "tonemap", ["_ExposureAdjustment"], null, 1.0, camera, samplingMode, engine, true, null, textureFormat) || this;
@@ -82886,16 +83007,20 @@ var BABYLON;
     */
     var PhysicsRadialImpulseFalloff;
     (function (PhysicsRadialImpulseFalloff) {
+        /** Defines that impulse is constant in strength across it's whole radius */
         PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Constant"] = 0] = "Constant";
-        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear"; // impulse gets weaker if it's further from the origin
+        /** DEfines that impulse gets weaker if it's further from the origin */
+        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear";
     })(PhysicsRadialImpulseFalloff = BABYLON.PhysicsRadialImpulseFalloff || (BABYLON.PhysicsRadialImpulseFalloff = {}));
     /**
      * The strenght of the force in correspondence to the distance of the affected object
      */
     var PhysicsUpdraftMode;
     (function (PhysicsUpdraftMode) {
+        /** Defines that the upstream forces will pull towards the top center of the cylinder */
         PhysicsUpdraftMode[PhysicsUpdraftMode["Center"] = 0] = "Center";
-        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular"; // once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder
+        /** Defines that once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder */
+        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular";
     })(PhysicsUpdraftMode = BABYLON.PhysicsUpdraftMode || (BABYLON.PhysicsUpdraftMode = {}));
 })(BABYLON || (BABYLON = {}));
 
@@ -88724,13 +88849,26 @@ var BABYLON;
 // & on Seb Lee-Delisle original work: http://seb.ly/2011/04/multi-touch-game-controller-in-javascripthtml5-for-ipad/ 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines the potential axis of a Joystick
+     */
     var JoystickAxis;
     (function (JoystickAxis) {
+        /** X axis */
         JoystickAxis[JoystickAxis["X"] = 0] = "X";
+        /** Y axis */
         JoystickAxis[JoystickAxis["Y"] = 1] = "Y";
+        /** Z axis */
         JoystickAxis[JoystickAxis["Z"] = 2] = "Z";
     })(JoystickAxis = BABYLON.JoystickAxis || (BABYLON.JoystickAxis = {}));
+    /**
+     * Class used to define virtual joystick (used in touch mode)
+     */
     var VirtualJoystick = /** @class */ (function () {
+        /**
+         * Creates a new virtual joystick
+         * @param leftJoystick defines that the joystick is for left hand (false by default)
+         */
         function VirtualJoystick(leftJoystick) {
             var _this = this;
             if (leftJoystick) {
@@ -88816,6 +88954,10 @@ var BABYLON;
             }, false);
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         }
+        /**
+         * Defines joystick sensibility (ie. the ratio beteen a physical move and virtual joystick position change)
+         * @param newJoystickSensibility defines the new sensibility
+         */
         VirtualJoystick.prototype.setJoystickSensibility = function (newJoystickSensibility) {
             this._joystickSensibility = newJoystickSensibility;
             this._inversedSensibility = 1 / (this._joystickSensibility / 1000);
@@ -88915,10 +89057,17 @@ var BABYLON;
         VirtualJoystick.prototype.setJoystickColor = function (newColor) {
             this._joystickColor = newColor;
         };
+        /**
+         * Defines a callback to call when the joystick is touched
+         * @param action defines the callback
+         */
         VirtualJoystick.prototype.setActionOnTouch = function (action) {
             this._action = action;
         };
-        // Define which axis you'd like to control for left & right 
+        /**
+         * Defines which axis you'd like to control for left & right
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForLeftRight = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -88931,7 +89080,10 @@ var BABYLON;
                     break;
             }
         };
-        // Define which axis you'd like to control for up & down 
+        /**
+         * Defines which axis you'd like to control for up & down
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForUpDown = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -88988,6 +89140,9 @@ var BABYLON;
             }
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         };
+        /**
+         * Release internal HTML canvas
+         */
         VirtualJoystick.prototype.releaseCanvas = function () {
             if (VirtualJoystick.vjCanvas) {
                 VirtualJoystick.vjCanvas.removeEventListener('pointerdown', this._onPointerDownHandlerRef);
@@ -89168,11 +89323,12 @@ var BABYLON;
     }());
     BABYLON.SimplificationQueue = SimplificationQueue;
     /**
-     * The implemented types of simplification.
-     * At the moment only Quadratic Error Decimation is implemented.
+     * The implemented types of simplification
+     * At the moment only Quadratic Error Decimation is implemented
      */
     var SimplificationType;
     (function (SimplificationType) {
+        /** Quadratic error decimation */
         SimplificationType[SimplificationType["QUADRATIC"] = 0] = "QUADRATIC";
     })(SimplificationType = BABYLON.SimplificationType || (BABYLON.SimplificationType = {}));
     var DecimationTriangle = /** @class */ (function () {

+ 163 - 7
dist/preview release/es6.js

@@ -6645,17 +6645,25 @@ var BABYLON;
         return Frustum;
     }());
     BABYLON.Frustum = Frustum;
+    /** Defines supported spaces */
     var Space;
     (function (Space) {
+        /** Local (object) space */
         Space[Space["LOCAL"] = 0] = "LOCAL";
+        /** World space */
         Space[Space["WORLD"] = 1] = "WORLD";
+        /** Bone space */
         Space[Space["BONE"] = 2] = "BONE";
     })(Space = BABYLON.Space || (BABYLON.Space = {}));
+    /** Defines the 3 main axes */
     var Axis = /** @class */ (function () {
         function Axis() {
         }
+        /** X axis */
         Axis.X = new Vector3(1.0, 0.0, 0.0);
+        /** Y axis */
         Axis.Y = new Vector3(0.0, 1.0, 0.0);
+        /** Z axis */
         Axis.Z = new Vector3(0.0, 0.0, 1.0);
         return Axis;
     }());
@@ -6689,9 +6697,16 @@ var BABYLON;
         return BezierCurve;
     }());
     BABYLON.BezierCurve = BezierCurve;
+    /**
+     * Defines potential orientation for back face culling
+     */
     var Orientation;
     (function (Orientation) {
+        /**
+         * Clockwise
+         */
         Orientation[Orientation["CW"] = 0] = "CW";
+        /** Counter clockwise */
         Orientation[Orientation["CCW"] = 1] = "CCW";
     })(Orientation = BABYLON.Orientation || (BABYLON.Orientation = {}));
     var Angle = /** @class */ (function () {
@@ -54909,15 +54924,22 @@ var BABYLON;
 (function (BABYLON) {
     //WebWorker code will be inserted to this variable.
     BABYLON.CollisionWorker = "";
+    /** Defines supported task for worker process */
     var WorkerTaskType;
     (function (WorkerTaskType) {
+        /** Initialization */
         WorkerTaskType[WorkerTaskType["INIT"] = 0] = "INIT";
+        /** Update of geometry */
         WorkerTaskType[WorkerTaskType["UPDATE"] = 1] = "UPDATE";
+        /** Evaluate collision */
         WorkerTaskType[WorkerTaskType["COLLIDE"] = 2] = "COLLIDE";
     })(WorkerTaskType = BABYLON.WorkerTaskType || (BABYLON.WorkerTaskType = {}));
+    /** Defines kind of replies returned by worker */
     var WorkerReplyType;
     (function (WorkerReplyType) {
+        /** Success */
         WorkerReplyType[WorkerReplyType["SUCCESS"] = 0] = "SUCCESS";
+        /** Unkown error */
         WorkerReplyType[WorkerReplyType["UNKNOWN_ERROR"] = 1] = "UNKNOWN_ERROR";
     })(WorkerReplyType = BABYLON.WorkerReplyType || (BABYLON.WorkerReplyType = {}));
     var CollisionCoordinatorWorker = /** @class */ (function () {
@@ -70164,36 +70186,68 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines supported buttons for XBox360 compatible gamepads
+     */
     var Xbox360Button;
     (function (Xbox360Button) {
+        /** A */
         Xbox360Button[Xbox360Button["A"] = 0] = "A";
+        /** B */
         Xbox360Button[Xbox360Button["B"] = 1] = "B";
+        /** X */
         Xbox360Button[Xbox360Button["X"] = 2] = "X";
+        /** Y */
         Xbox360Button[Xbox360Button["Y"] = 3] = "Y";
+        /** Start */
         Xbox360Button[Xbox360Button["Start"] = 4] = "Start";
+        /** Back */
         Xbox360Button[Xbox360Button["Back"] = 5] = "Back";
+        /** Left button */
         Xbox360Button[Xbox360Button["LB"] = 6] = "LB";
+        /** Right button */
         Xbox360Button[Xbox360Button["RB"] = 7] = "RB";
+        /** Left stick */
         Xbox360Button[Xbox360Button["LeftStick"] = 8] = "LeftStick";
+        /** Right stick */
         Xbox360Button[Xbox360Button["RightStick"] = 9] = "RightStick";
     })(Xbox360Button = BABYLON.Xbox360Button || (BABYLON.Xbox360Button = {}));
+    /** Defines values for XBox360 DPad  */
     var Xbox360Dpad;
     (function (Xbox360Dpad) {
+        /** Up */
         Xbox360Dpad[Xbox360Dpad["Up"] = 0] = "Up";
+        /** Down */
         Xbox360Dpad[Xbox360Dpad["Down"] = 1] = "Down";
+        /** Left */
         Xbox360Dpad[Xbox360Dpad["Left"] = 2] = "Left";
+        /** Right */
         Xbox360Dpad[Xbox360Dpad["Right"] = 3] = "Right";
     })(Xbox360Dpad = BABYLON.Xbox360Dpad || (BABYLON.Xbox360Dpad = {}));
+    /**
+     * Defines a XBox360 gamepad
+     */
     var Xbox360Pad = /** @class */ (function (_super) {
         __extends(Xbox360Pad, _super);
+        /**
+         * Creates a new XBox360 gamepad object
+         * @param id defines the id of this gamepad
+         * @param index defines its index
+         * @param gamepad defines the internal HTML gamepad object
+         * @param xboxOne defines if it is a XBox One gamepad
+         */
         function Xbox360Pad(id, index, gamepad, xboxOne) {
             if (xboxOne === void 0) { xboxOne = false; }
             var _this = _super.call(this, id, index, gamepad, 0, 1, 2, 3) || this;
             _this._leftTrigger = 0;
             _this._rightTrigger = 0;
+            /** Observable raised when a button is pressed */
             _this.onButtonDownObservable = new BABYLON.Observable();
+            /** Observable raised when a button is released */
             _this.onButtonUpObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is pressed */
             _this.onPadDownObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is released */
             _this.onPadUpObservable = new BABYLON.Observable();
             _this._buttonA = 0;
             _this._buttonB = 0;
@@ -70214,13 +70268,24 @@ var BABYLON;
             _this._isXboxOnePad = xboxOne;
             return _this;
         }
+        /**
+         * Defines the callback to call when left trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onlefttriggerchanged = function (callback) {
             this._onlefttriggerchanged = callback;
         };
+        /**
+         * Defines the callback to call when right trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onrighttriggerchanged = function (callback) {
             this._onrighttriggerchanged = callback;
         };
         Object.defineProperty(Xbox360Pad.prototype, "leftTrigger", {
+            /**
+             * Gets or sets left trigger value
+             */
             get: function () {
                 return this._leftTrigger;
             },
@@ -70234,6 +70299,9 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "rightTrigger", {
+            /**
+             * Gets or sets right trigger value
+             */
             get: function () {
                 return this._rightTrigger;
             },
@@ -70246,15 +70314,31 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Defines the callback to call when a button is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttondown = function (callback) {
             this._onbuttondown = callback;
         };
+        /**
+         * Defines the callback to call when a button is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttonup = function (callback) {
             this._onbuttonup = callback;
         };
+        /**
+         * Defines the callback to call when a pad is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpaddown = function (callback) {
             this._ondpaddown = callback;
         };
+        /**
+         * Defines the callback to call when a pad is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpadup = function (callback) {
             this._ondpadup = callback;
         };
@@ -70293,6 +70377,7 @@ var BABYLON;
             return newValue;
         };
         Object.defineProperty(Xbox360Pad.prototype, "buttonA", {
+            /** Gets or sets value of A button */
             get: function () {
                 return this._buttonA;
             },
@@ -70303,6 +70388,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonB", {
+            /** Gets or sets value of B button */
             get: function () {
                 return this._buttonB;
             },
@@ -70313,6 +70399,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonX", {
+            /** Gets or sets value of X button */
             get: function () {
                 return this._buttonX;
             },
@@ -70323,6 +70410,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonY", {
+            /** Gets or sets value of Y button */
             get: function () {
                 return this._buttonY;
             },
@@ -70333,6 +70421,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonStart", {
+            /** Gets or sets value of Start button  */
             get: function () {
                 return this._buttonStart;
             },
@@ -70343,6 +70432,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonBack", {
+            /** Gets or sets value of Back button  */
             get: function () {
                 return this._buttonBack;
             },
@@ -70353,6 +70443,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLB", {
+            /** Gets or sets value of Left button  */
             get: function () {
                 return this._buttonLB;
             },
@@ -70363,6 +70454,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRB", {
+            /** Gets or sets value of Right button  */
             get: function () {
                 return this._buttonRB;
             },
@@ -70373,6 +70465,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLeftStick", {
+            /** Gets or sets value of left stick */
             get: function () {
                 return this._buttonLeftStick;
             },
@@ -70383,6 +70476,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRightStick", {
+            /** Gets or sets value of right stick */
             get: function () {
                 return this._buttonRightStick;
             },
@@ -70393,6 +70487,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadUp", {
+            /** Gets or sets value of DPad up */
             get: function () {
                 return this._dPadUp;
             },
@@ -70403,6 +70498,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadDown", {
+            /** Gets or sets value of DPad down */
             get: function () {
                 return this._dPadDown;
             },
@@ -70413,6 +70509,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadLeft", {
+            /** Gets or sets value of DPad left */
             get: function () {
                 return this._dPadLeft;
             },
@@ -70423,6 +70520,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadRight", {
+            /** Gets or sets value of DPad right */
             get: function () {
                 return this._dPadRight;
             },
@@ -70432,6 +70530,9 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Force the gamepad to synchronize with device values
+         */
         Xbox360Pad.prototype.update = function () {
             _super.prototype.update.call(this);
             if (this._isXboxOnePad) {
@@ -76548,17 +76649,37 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /** Defines operator used for tonemapping */
     var TonemappingOperator;
     (function (TonemappingOperator) {
+        /** Hable */
         TonemappingOperator[TonemappingOperator["Hable"] = 0] = "Hable";
+        /** Reinhard */
         TonemappingOperator[TonemappingOperator["Reinhard"] = 1] = "Reinhard";
+        /** HejiDawson */
         TonemappingOperator[TonemappingOperator["HejiDawson"] = 2] = "HejiDawson";
+        /** Photographic */
         TonemappingOperator[TonemappingOperator["Photographic"] = 3] = "Photographic";
     })(TonemappingOperator = BABYLON.TonemappingOperator || (BABYLON.TonemappingOperator = {}));
     ;
+    /**
+     * Defines a post process to apply tone mapping
+     */
     var TonemapPostProcess = /** @class */ (function (_super) {
         __extends(TonemapPostProcess, _super);
-        function TonemapPostProcess(name, _operator, exposureAdjustment, camera, samplingMode, engine, textureFormat) {
+        /**
+         * Creates a new TonemapPostProcess
+         * @param name defines the name of the postprocess
+         * @param _operator defines the operator to use
+         * @param exposureAdjustment defines the required exposure adjustement
+         * @param camera defines the camera to use (can be null)
+         * @param samplingMode defines the required sampling mode (BABYLON.Texture.BILINEAR_SAMPLINGMODE by default)
+         * @param engine defines the hosting engine (can be ignore if camera is set)
+         * @param textureFormat defines the texture format to use (BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT by default)
+         */
+        function TonemapPostProcess(name, _operator, 
+        /** Defines the required exposure adjustement */
+        exposureAdjustment, camera, samplingMode, engine, textureFormat) {
             if (samplingMode === void 0) { samplingMode = BABYLON.Texture.BILINEAR_SAMPLINGMODE; }
             if (textureFormat === void 0) { textureFormat = BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT; }
             var _this = _super.call(this, name, "tonemap", ["_ExposureAdjustment"], null, 1.0, camera, samplingMode, engine, true, null, textureFormat) || this;
@@ -82886,16 +83007,20 @@ var BABYLON;
     */
     var PhysicsRadialImpulseFalloff;
     (function (PhysicsRadialImpulseFalloff) {
+        /** Defines that impulse is constant in strength across it's whole radius */
         PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Constant"] = 0] = "Constant";
-        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear"; // impulse gets weaker if it's further from the origin
+        /** DEfines that impulse gets weaker if it's further from the origin */
+        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear";
     })(PhysicsRadialImpulseFalloff = BABYLON.PhysicsRadialImpulseFalloff || (BABYLON.PhysicsRadialImpulseFalloff = {}));
     /**
      * The strenght of the force in correspondence to the distance of the affected object
      */
     var PhysicsUpdraftMode;
     (function (PhysicsUpdraftMode) {
+        /** Defines that the upstream forces will pull towards the top center of the cylinder */
         PhysicsUpdraftMode[PhysicsUpdraftMode["Center"] = 0] = "Center";
-        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular"; // once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder
+        /** Defines that once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder */
+        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular";
     })(PhysicsUpdraftMode = BABYLON.PhysicsUpdraftMode || (BABYLON.PhysicsUpdraftMode = {}));
 })(BABYLON || (BABYLON = {}));
 
@@ -88724,13 +88849,26 @@ var BABYLON;
 // & on Seb Lee-Delisle original work: http://seb.ly/2011/04/multi-touch-game-controller-in-javascripthtml5-for-ipad/ 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines the potential axis of a Joystick
+     */
     var JoystickAxis;
     (function (JoystickAxis) {
+        /** X axis */
         JoystickAxis[JoystickAxis["X"] = 0] = "X";
+        /** Y axis */
         JoystickAxis[JoystickAxis["Y"] = 1] = "Y";
+        /** Z axis */
         JoystickAxis[JoystickAxis["Z"] = 2] = "Z";
     })(JoystickAxis = BABYLON.JoystickAxis || (BABYLON.JoystickAxis = {}));
+    /**
+     * Class used to define virtual joystick (used in touch mode)
+     */
     var VirtualJoystick = /** @class */ (function () {
+        /**
+         * Creates a new virtual joystick
+         * @param leftJoystick defines that the joystick is for left hand (false by default)
+         */
         function VirtualJoystick(leftJoystick) {
             var _this = this;
             if (leftJoystick) {
@@ -88816,6 +88954,10 @@ var BABYLON;
             }, false);
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         }
+        /**
+         * Defines joystick sensibility (ie. the ratio beteen a physical move and virtual joystick position change)
+         * @param newJoystickSensibility defines the new sensibility
+         */
         VirtualJoystick.prototype.setJoystickSensibility = function (newJoystickSensibility) {
             this._joystickSensibility = newJoystickSensibility;
             this._inversedSensibility = 1 / (this._joystickSensibility / 1000);
@@ -88915,10 +89057,17 @@ var BABYLON;
         VirtualJoystick.prototype.setJoystickColor = function (newColor) {
             this._joystickColor = newColor;
         };
+        /**
+         * Defines a callback to call when the joystick is touched
+         * @param action defines the callback
+         */
         VirtualJoystick.prototype.setActionOnTouch = function (action) {
             this._action = action;
         };
-        // Define which axis you'd like to control for left & right 
+        /**
+         * Defines which axis you'd like to control for left & right
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForLeftRight = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -88931,7 +89080,10 @@ var BABYLON;
                     break;
             }
         };
-        // Define which axis you'd like to control for up & down 
+        /**
+         * Defines which axis you'd like to control for up & down
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForUpDown = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -88988,6 +89140,9 @@ var BABYLON;
             }
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         };
+        /**
+         * Release internal HTML canvas
+         */
         VirtualJoystick.prototype.releaseCanvas = function () {
             if (VirtualJoystick.vjCanvas) {
                 VirtualJoystick.vjCanvas.removeEventListener('pointerdown', this._onPointerDownHandlerRef);
@@ -89168,11 +89323,12 @@ var BABYLON;
     }());
     BABYLON.SimplificationQueue = SimplificationQueue;
     /**
-     * The implemented types of simplification.
-     * At the moment only Quadratic Error Decimation is implemented.
+     * The implemented types of simplification
+     * At the moment only Quadratic Error Decimation is implemented
      */
     var SimplificationType;
     (function (SimplificationType) {
+        /** Quadratic error decimation */
         SimplificationType[SimplificationType["QUADRATIC"] = 0] = "QUADRATIC";
     })(SimplificationType = BABYLON.SimplificationType || (BABYLON.SimplificationType = {}));
     var DecimationTriangle = /** @class */ (function () {

+ 2 - 26
dist/preview release/typedocValidationBaseline.json

@@ -1,7 +1,7 @@
 {
-  "errors": 4947,
+  "errors": 4848,
   "babylon.typedoc.json": {
-    "errors": 4947,
+    "errors": 4848,
     "AbstractMesh": {
       "Class": {
         "Comments": {
@@ -2971,30 +2971,6 @@
         }
       }
     },
-    "Axis": {
-      "Class": {
-        "Comments": {
-          "MissingText": true
-        }
-      },
-      "Property": {
-        "X": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "Y": {
-          "Comments": {
-            "MissingText": true
-          }
-        },
-        "Z": {
-          "Comments": {
-            "MissingText": true
-          }
-        }
-      }
-    },
     "BackEase": {
       "Class": {
         "Comments": {

+ 163 - 7
dist/preview release/viewer/babylon.viewer.max.js

@@ -6766,17 +6766,25 @@ var BABYLON;
         return Frustum;
     }());
     BABYLON.Frustum = Frustum;
+    /** Defines supported spaces */
     var Space;
     (function (Space) {
+        /** Local (object) space */
         Space[Space["LOCAL"] = 0] = "LOCAL";
+        /** World space */
         Space[Space["WORLD"] = 1] = "WORLD";
+        /** Bone space */
         Space[Space["BONE"] = 2] = "BONE";
     })(Space = BABYLON.Space || (BABYLON.Space = {}));
+    /** Defines the 3 main axes */
     var Axis = /** @class */ (function () {
         function Axis() {
         }
+        /** X axis */
         Axis.X = new Vector3(1.0, 0.0, 0.0);
+        /** Y axis */
         Axis.Y = new Vector3(0.0, 1.0, 0.0);
+        /** Z axis */
         Axis.Z = new Vector3(0.0, 0.0, 1.0);
         return Axis;
     }());
@@ -6810,9 +6818,16 @@ var BABYLON;
         return BezierCurve;
     }());
     BABYLON.BezierCurve = BezierCurve;
+    /**
+     * Defines potential orientation for back face culling
+     */
     var Orientation;
     (function (Orientation) {
+        /**
+         * Clockwise
+         */
         Orientation[Orientation["CW"] = 0] = "CW";
+        /** Counter clockwise */
         Orientation[Orientation["CCW"] = 1] = "CCW";
     })(Orientation = BABYLON.Orientation || (BABYLON.Orientation = {}));
     var Angle = /** @class */ (function () {
@@ -55030,15 +55045,22 @@ var BABYLON;
 (function (BABYLON) {
     //WebWorker code will be inserted to this variable.
     BABYLON.CollisionWorker = "";
+    /** Defines supported task for worker process */
     var WorkerTaskType;
     (function (WorkerTaskType) {
+        /** Initialization */
         WorkerTaskType[WorkerTaskType["INIT"] = 0] = "INIT";
+        /** Update of geometry */
         WorkerTaskType[WorkerTaskType["UPDATE"] = 1] = "UPDATE";
+        /** Evaluate collision */
         WorkerTaskType[WorkerTaskType["COLLIDE"] = 2] = "COLLIDE";
     })(WorkerTaskType = BABYLON.WorkerTaskType || (BABYLON.WorkerTaskType = {}));
+    /** Defines kind of replies returned by worker */
     var WorkerReplyType;
     (function (WorkerReplyType) {
+        /** Success */
         WorkerReplyType[WorkerReplyType["SUCCESS"] = 0] = "SUCCESS";
+        /** Unkown error */
         WorkerReplyType[WorkerReplyType["UNKNOWN_ERROR"] = 1] = "UNKNOWN_ERROR";
     })(WorkerReplyType = BABYLON.WorkerReplyType || (BABYLON.WorkerReplyType = {}));
     var CollisionCoordinatorWorker = /** @class */ (function () {
@@ -70285,36 +70307,68 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines supported buttons for XBox360 compatible gamepads
+     */
     var Xbox360Button;
     (function (Xbox360Button) {
+        /** A */
         Xbox360Button[Xbox360Button["A"] = 0] = "A";
+        /** B */
         Xbox360Button[Xbox360Button["B"] = 1] = "B";
+        /** X */
         Xbox360Button[Xbox360Button["X"] = 2] = "X";
+        /** Y */
         Xbox360Button[Xbox360Button["Y"] = 3] = "Y";
+        /** Start */
         Xbox360Button[Xbox360Button["Start"] = 4] = "Start";
+        /** Back */
         Xbox360Button[Xbox360Button["Back"] = 5] = "Back";
+        /** Left button */
         Xbox360Button[Xbox360Button["LB"] = 6] = "LB";
+        /** Right button */
         Xbox360Button[Xbox360Button["RB"] = 7] = "RB";
+        /** Left stick */
         Xbox360Button[Xbox360Button["LeftStick"] = 8] = "LeftStick";
+        /** Right stick */
         Xbox360Button[Xbox360Button["RightStick"] = 9] = "RightStick";
     })(Xbox360Button = BABYLON.Xbox360Button || (BABYLON.Xbox360Button = {}));
+    /** Defines values for XBox360 DPad  */
     var Xbox360Dpad;
     (function (Xbox360Dpad) {
+        /** Up */
         Xbox360Dpad[Xbox360Dpad["Up"] = 0] = "Up";
+        /** Down */
         Xbox360Dpad[Xbox360Dpad["Down"] = 1] = "Down";
+        /** Left */
         Xbox360Dpad[Xbox360Dpad["Left"] = 2] = "Left";
+        /** Right */
         Xbox360Dpad[Xbox360Dpad["Right"] = 3] = "Right";
     })(Xbox360Dpad = BABYLON.Xbox360Dpad || (BABYLON.Xbox360Dpad = {}));
+    /**
+     * Defines a XBox360 gamepad
+     */
     var Xbox360Pad = /** @class */ (function (_super) {
         __extends(Xbox360Pad, _super);
+        /**
+         * Creates a new XBox360 gamepad object
+         * @param id defines the id of this gamepad
+         * @param index defines its index
+         * @param gamepad defines the internal HTML gamepad object
+         * @param xboxOne defines if it is a XBox One gamepad
+         */
         function Xbox360Pad(id, index, gamepad, xboxOne) {
             if (xboxOne === void 0) { xboxOne = false; }
             var _this = _super.call(this, id, index, gamepad, 0, 1, 2, 3) || this;
             _this._leftTrigger = 0;
             _this._rightTrigger = 0;
+            /** Observable raised when a button is pressed */
             _this.onButtonDownObservable = new BABYLON.Observable();
+            /** Observable raised when a button is released */
             _this.onButtonUpObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is pressed */
             _this.onPadDownObservable = new BABYLON.Observable();
+            /** Observable raised when a pad is released */
             _this.onPadUpObservable = new BABYLON.Observable();
             _this._buttonA = 0;
             _this._buttonB = 0;
@@ -70335,13 +70389,24 @@ var BABYLON;
             _this._isXboxOnePad = xboxOne;
             return _this;
         }
+        /**
+         * Defines the callback to call when left trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onlefttriggerchanged = function (callback) {
             this._onlefttriggerchanged = callback;
         };
+        /**
+         * Defines the callback to call when right trigger is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onrighttriggerchanged = function (callback) {
             this._onrighttriggerchanged = callback;
         };
         Object.defineProperty(Xbox360Pad.prototype, "leftTrigger", {
+            /**
+             * Gets or sets left trigger value
+             */
             get: function () {
                 return this._leftTrigger;
             },
@@ -70355,6 +70420,9 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "rightTrigger", {
+            /**
+             * Gets or sets right trigger value
+             */
             get: function () {
                 return this._rightTrigger;
             },
@@ -70367,15 +70435,31 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Defines the callback to call when a button is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttondown = function (callback) {
             this._onbuttondown = callback;
         };
+        /**
+         * Defines the callback to call when a button is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.onbuttonup = function (callback) {
             this._onbuttonup = callback;
         };
+        /**
+         * Defines the callback to call when a pad is pressed
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpaddown = function (callback) {
             this._ondpaddown = callback;
         };
+        /**
+         * Defines the callback to call when a pad is released
+         * @param callback defines the callback to use
+         */
         Xbox360Pad.prototype.ondpadup = function (callback) {
             this._ondpadup = callback;
         };
@@ -70414,6 +70498,7 @@ var BABYLON;
             return newValue;
         };
         Object.defineProperty(Xbox360Pad.prototype, "buttonA", {
+            /** Gets or sets value of A button */
             get: function () {
                 return this._buttonA;
             },
@@ -70424,6 +70509,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonB", {
+            /** Gets or sets value of B button */
             get: function () {
                 return this._buttonB;
             },
@@ -70434,6 +70520,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonX", {
+            /** Gets or sets value of X button */
             get: function () {
                 return this._buttonX;
             },
@@ -70444,6 +70531,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonY", {
+            /** Gets or sets value of Y button */
             get: function () {
                 return this._buttonY;
             },
@@ -70454,6 +70542,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonStart", {
+            /** Gets or sets value of Start button  */
             get: function () {
                 return this._buttonStart;
             },
@@ -70464,6 +70553,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonBack", {
+            /** Gets or sets value of Back button  */
             get: function () {
                 return this._buttonBack;
             },
@@ -70474,6 +70564,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLB", {
+            /** Gets or sets value of Left button  */
             get: function () {
                 return this._buttonLB;
             },
@@ -70484,6 +70575,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRB", {
+            /** Gets or sets value of Right button  */
             get: function () {
                 return this._buttonRB;
             },
@@ -70494,6 +70586,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonLeftStick", {
+            /** Gets or sets value of left stick */
             get: function () {
                 return this._buttonLeftStick;
             },
@@ -70504,6 +70597,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "buttonRightStick", {
+            /** Gets or sets value of right stick */
             get: function () {
                 return this._buttonRightStick;
             },
@@ -70514,6 +70608,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadUp", {
+            /** Gets or sets value of DPad up */
             get: function () {
                 return this._dPadUp;
             },
@@ -70524,6 +70619,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadDown", {
+            /** Gets or sets value of DPad down */
             get: function () {
                 return this._dPadDown;
             },
@@ -70534,6 +70630,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadLeft", {
+            /** Gets or sets value of DPad left */
             get: function () {
                 return this._dPadLeft;
             },
@@ -70544,6 +70641,7 @@ var BABYLON;
             configurable: true
         });
         Object.defineProperty(Xbox360Pad.prototype, "dPadRight", {
+            /** Gets or sets value of DPad right */
             get: function () {
                 return this._dPadRight;
             },
@@ -70553,6 +70651,9 @@ var BABYLON;
             enumerable: true,
             configurable: true
         });
+        /**
+         * Force the gamepad to synchronize with device values
+         */
         Xbox360Pad.prototype.update = function () {
             _super.prototype.update.call(this);
             if (this._isXboxOnePad) {
@@ -76669,17 +76770,37 @@ var BABYLON;
 
 var BABYLON;
 (function (BABYLON) {
+    /** Defines operator used for tonemapping */
     var TonemappingOperator;
     (function (TonemappingOperator) {
+        /** Hable */
         TonemappingOperator[TonemappingOperator["Hable"] = 0] = "Hable";
+        /** Reinhard */
         TonemappingOperator[TonemappingOperator["Reinhard"] = 1] = "Reinhard";
+        /** HejiDawson */
         TonemappingOperator[TonemappingOperator["HejiDawson"] = 2] = "HejiDawson";
+        /** Photographic */
         TonemappingOperator[TonemappingOperator["Photographic"] = 3] = "Photographic";
     })(TonemappingOperator = BABYLON.TonemappingOperator || (BABYLON.TonemappingOperator = {}));
     ;
+    /**
+     * Defines a post process to apply tone mapping
+     */
     var TonemapPostProcess = /** @class */ (function (_super) {
         __extends(TonemapPostProcess, _super);
-        function TonemapPostProcess(name, _operator, exposureAdjustment, camera, samplingMode, engine, textureFormat) {
+        /**
+         * Creates a new TonemapPostProcess
+         * @param name defines the name of the postprocess
+         * @param _operator defines the operator to use
+         * @param exposureAdjustment defines the required exposure adjustement
+         * @param camera defines the camera to use (can be null)
+         * @param samplingMode defines the required sampling mode (BABYLON.Texture.BILINEAR_SAMPLINGMODE by default)
+         * @param engine defines the hosting engine (can be ignore if camera is set)
+         * @param textureFormat defines the texture format to use (BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT by default)
+         */
+        function TonemapPostProcess(name, _operator, 
+        /** Defines the required exposure adjustement */
+        exposureAdjustment, camera, samplingMode, engine, textureFormat) {
             if (samplingMode === void 0) { samplingMode = BABYLON.Texture.BILINEAR_SAMPLINGMODE; }
             if (textureFormat === void 0) { textureFormat = BABYLON.Engine.TEXTURETYPE_UNSIGNED_INT; }
             var _this = _super.call(this, name, "tonemap", ["_ExposureAdjustment"], null, 1.0, camera, samplingMode, engine, true, null, textureFormat) || this;
@@ -83007,16 +83128,20 @@ var BABYLON;
     */
     var PhysicsRadialImpulseFalloff;
     (function (PhysicsRadialImpulseFalloff) {
+        /** Defines that impulse is constant in strength across it's whole radius */
         PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Constant"] = 0] = "Constant";
-        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear"; // impulse gets weaker if it's further from the origin
+        /** DEfines that impulse gets weaker if it's further from the origin */
+        PhysicsRadialImpulseFalloff[PhysicsRadialImpulseFalloff["Linear"] = 1] = "Linear";
     })(PhysicsRadialImpulseFalloff = BABYLON.PhysicsRadialImpulseFalloff || (BABYLON.PhysicsRadialImpulseFalloff = {}));
     /**
      * The strenght of the force in correspondence to the distance of the affected object
      */
     var PhysicsUpdraftMode;
     (function (PhysicsUpdraftMode) {
+        /** Defines that the upstream forces will pull towards the top center of the cylinder */
         PhysicsUpdraftMode[PhysicsUpdraftMode["Center"] = 0] = "Center";
-        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular"; // once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder
+        /** Defines that once a impostor is inside the cylinder, it will shoot out perpendicular from the ground of the cylinder */
+        PhysicsUpdraftMode[PhysicsUpdraftMode["Perpendicular"] = 1] = "Perpendicular";
     })(PhysicsUpdraftMode = BABYLON.PhysicsUpdraftMode || (BABYLON.PhysicsUpdraftMode = {}));
 })(BABYLON || (BABYLON = {}));
 
@@ -88845,13 +88970,26 @@ var BABYLON;
 // & on Seb Lee-Delisle original work: http://seb.ly/2011/04/multi-touch-game-controller-in-javascripthtml5-for-ipad/ 
 var BABYLON;
 (function (BABYLON) {
+    /**
+     * Defines the potential axis of a Joystick
+     */
     var JoystickAxis;
     (function (JoystickAxis) {
+        /** X axis */
         JoystickAxis[JoystickAxis["X"] = 0] = "X";
+        /** Y axis */
         JoystickAxis[JoystickAxis["Y"] = 1] = "Y";
+        /** Z axis */
         JoystickAxis[JoystickAxis["Z"] = 2] = "Z";
     })(JoystickAxis = BABYLON.JoystickAxis || (BABYLON.JoystickAxis = {}));
+    /**
+     * Class used to define virtual joystick (used in touch mode)
+     */
     var VirtualJoystick = /** @class */ (function () {
+        /**
+         * Creates a new virtual joystick
+         * @param leftJoystick defines that the joystick is for left hand (false by default)
+         */
         function VirtualJoystick(leftJoystick) {
             var _this = this;
             if (leftJoystick) {
@@ -88937,6 +89075,10 @@ var BABYLON;
             }, false);
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         }
+        /**
+         * Defines joystick sensibility (ie. the ratio beteen a physical move and virtual joystick position change)
+         * @param newJoystickSensibility defines the new sensibility
+         */
         VirtualJoystick.prototype.setJoystickSensibility = function (newJoystickSensibility) {
             this._joystickSensibility = newJoystickSensibility;
             this._inversedSensibility = 1 / (this._joystickSensibility / 1000);
@@ -89036,10 +89178,17 @@ var BABYLON;
         VirtualJoystick.prototype.setJoystickColor = function (newColor) {
             this._joystickColor = newColor;
         };
+        /**
+         * Defines a callback to call when the joystick is touched
+         * @param action defines the callback
+         */
         VirtualJoystick.prototype.setActionOnTouch = function (action) {
             this._action = action;
         };
-        // Define which axis you'd like to control for left & right 
+        /**
+         * Defines which axis you'd like to control for left & right
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForLeftRight = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -89052,7 +89201,10 @@ var BABYLON;
                     break;
             }
         };
-        // Define which axis you'd like to control for up & down 
+        /**
+         * Defines which axis you'd like to control for up & down
+         * @param axis defines the axis to use
+         */
         VirtualJoystick.prototype.setAxisForUpDown = function (axis) {
             switch (axis) {
                 case JoystickAxis.X:
@@ -89109,6 +89261,9 @@ var BABYLON;
             }
             requestAnimationFrame(function () { _this._drawVirtualJoystick(); });
         };
+        /**
+         * Release internal HTML canvas
+         */
         VirtualJoystick.prototype.releaseCanvas = function () {
             if (VirtualJoystick.vjCanvas) {
                 VirtualJoystick.vjCanvas.removeEventListener('pointerdown', this._onPointerDownHandlerRef);
@@ -89289,11 +89444,12 @@ var BABYLON;
     }());
     BABYLON.SimplificationQueue = SimplificationQueue;
     /**
-     * The implemented types of simplification.
-     * At the moment only Quadratic Error Decimation is implemented.
+     * The implemented types of simplification
+     * At the moment only Quadratic Error Decimation is implemented
      */
     var SimplificationType;
     (function (SimplificationType) {
+        /** Quadratic error decimation */
         SimplificationType[SimplificationType["QUADRATIC"] = 0] = "QUADRATIC";
     })(SimplificationType = BABYLON.SimplificationType || (BABYLON.SimplificationType = {}));
     var DecimationTriangle = /** @class */ (function () {