David Catuhe 5 years ago
parent
commit
be62b572cd

+ 13 - 2
Playground/js/monacoCreator.js

@@ -54,10 +54,21 @@ class MonacoCreator {
      */
      */
     async loadMonaco(typings) {
     async loadMonaco(typings) {
         let response = await fetch(typings || "https://preview.babylonjs.com/babylon.d.ts");
         let response = await fetch(typings || "https://preview.babylonjs.com/babylon.d.ts");
-        if (!response.ok)
+        if (!response.ok) {
             return;
             return;
+        }
+
+        let libContent = await response.text();
+
+        if (!typings) {
+            response = await fetch(typings || "https://preview.babylonjs.com/gui/babylon.gui.d.ts");
+            if (!response.ok) {
+                return;
+            }
+
+            libContent += await response.text();
+        }
 
 
-        const libContent = await response.text();
         this.setupDefinitionWorker(libContent);
         this.setupDefinitionWorker(libContent);
 
 
         require.config({ paths: { 'vs': 'node_modules/monaco-editor/dev/vs' } });
         require.config({ paths: { 'vs': 'node_modules/monaco-editor/dev/vs' } });

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/babylon.js


File diff suppressed because it is too large
+ 22 - 22
dist/preview release/babylon.max.js


+ 5 - 1
dist/preview release/documentation.d.ts

@@ -67360,6 +67360,8 @@ declare module BABYLON.GUI {
         autoScale: boolean;
         autoScale: boolean;
         /** Gets or sets the streching mode used by the image */
         /** Gets or sets the streching mode used by the image */
         stretch: number;
         stretch: number;
+        /** @hidden */
+        _rotate90(n: number): Image;
         /**
         /**
          * Gets or sets the internal DOM image used to render the control
          * Gets or sets the internal DOM image used to render the control
          */
          */
@@ -68609,14 +68611,16 @@ declare module BABYLON.GUI {
      */
      */
     export class ImageScrollBar extends BaseSlider {
     export class ImageScrollBar extends BaseSlider {
         name?: string | undefined;
         name?: string | undefined;
+        private _backgroundBaseImage;
         private _backgroundImage;
         private _backgroundImage;
         private _thumbImage;
         private _thumbImage;
+        private _thumbBaseImage;
         private _thumbLength;
         private _thumbLength;
         private _thumbHeight;
         private _thumbHeight;
         private _barImageHeight;
         private _barImageHeight;
         private _tempMeasure;
         private _tempMeasure;
         /**
         /**
-         * Gets or sets the image used to render the background
+         * Gets or sets the image used to render the background for horizontal bar
          */
          */
         backgroundImage: Image;
         backgroundImage: Image;
         /**
         /**

+ 5 - 1
dist/preview release/gui/babylon.gui.d.ts

@@ -1501,6 +1501,8 @@ declare module BABYLON.GUI {
         autoScale: boolean;
         autoScale: boolean;
         /** Gets or sets the streching mode used by the image */
         /** Gets or sets the streching mode used by the image */
         stretch: number;
         stretch: number;
+        /** @hidden */
+        _rotate90(n: number): Image;
         /**
         /**
          * Gets or sets the internal DOM image used to render the control
          * Gets or sets the internal DOM image used to render the control
          */
          */
@@ -2750,14 +2752,16 @@ declare module BABYLON.GUI {
      */
      */
     export class ImageScrollBar extends BaseSlider {
     export class ImageScrollBar extends BaseSlider {
         name?: string | undefined;
         name?: string | undefined;
+        private _backgroundBaseImage;
         private _backgroundImage;
         private _backgroundImage;
         private _thumbImage;
         private _thumbImage;
+        private _thumbBaseImage;
         private _thumbLength;
         private _thumbLength;
         private _thumbHeight;
         private _thumbHeight;
         private _barImageHeight;
         private _barImageHeight;
         private _tempMeasure;
         private _tempMeasure;
         /**
         /**
-         * Gets or sets the image used to render the background
+         * Gets or sets the image used to render the background for horizontal bar
          */
          */
         backgroundImage: Image;
         backgroundImage: Image;
         /**
         /**

+ 70 - 13
dist/preview release/gui/babylon.gui.js

@@ -6565,6 +6565,21 @@ var Image = /** @class */ (function (_super) {
         enumerable: true,
         enumerable: true,
         configurable: true
         configurable: true
     });
     });
+    /** @hidden */
+    Image.prototype._rotate90 = function (n) {
+        var canvas = document.createElement('canvas');
+        var context = canvas.getContext('2d');
+        var width = this._domImage.width;
+        var height = this._domImage.height;
+        canvas.width = height;
+        canvas.height = width;
+        context.translate(canvas.width / 2, canvas.height / 2);
+        context.rotate(n * Math.PI / 2);
+        context.drawImage(this._domImage, 0, 0, width, height, -width / 2, -height / 2, width, height);
+        var dataUrl = canvas.toDataURL("image/jpg");
+        var rotatedImage = new Image(this.name + "rotated", dataUrl);
+        return rotatedImage;
+    };
     Object.defineProperty(Image.prototype, "domImage", {
     Object.defineProperty(Image.prototype, "domImage", {
         get: function () {
         get: function () {
             return this._domImage;
             return this._domImage;
@@ -10837,21 +10852,42 @@ var ImageScrollBar = /** @class */ (function (_super) {
     }
     }
     Object.defineProperty(ImageScrollBar.prototype, "backgroundImage", {
     Object.defineProperty(ImageScrollBar.prototype, "backgroundImage", {
         /**
         /**
-         * Gets or sets the image used to render the background
+         * Gets or sets the image used to render the background for horizontal bar
          */
          */
         get: function () {
         get: function () {
-            return this._backgroundImage;
+            return this._backgroundBaseImage;
         },
         },
         set: function (value) {
         set: function (value) {
             var _this = this;
             var _this = this;
-            if (this._backgroundImage === value) {
+            if (this._backgroundBaseImage === value) {
                 return;
                 return;
             }
             }
-            this._backgroundImage = value;
-            if (value && !value.isLoaded) {
-                value.onImageLoadedObservable.addOnce(function () { return _this._markAsDirty(); });
+            this._backgroundBaseImage = value;
+            if (this.isVertical) {
+                if (value && !value.isLoaded) {
+                    value.onImageLoadedObservable.addOnce(function () {
+                        var rotatedValue = value._rotate90(1);
+                        _this._backgroundImage = rotatedValue;
+                        if (!rotatedValue.isLoaded) {
+                            rotatedValue.onImageLoadedObservable.addOnce(function () {
+                                _this._markAsDirty();
+                            });
+                        }
+                        _this._markAsDirty();
+                    });
+                }
+                this._backgroundImage = value._rotate90(1);
+                this._markAsDirty();
+            }
+            else {
+                this._backgroundImage = value;
+                if (value && !value.isLoaded) {
+                    value.onImageLoadedObservable.addOnce(function () {
+                        _this._markAsDirty();
+                    });
+                }
+                this._markAsDirty();
             }
             }
-            this._markAsDirty();
         },
         },
         enumerable: true,
         enumerable: true,
         configurable: true
         configurable: true
@@ -10861,18 +10897,39 @@ var ImageScrollBar = /** @class */ (function (_super) {
          * Gets or sets the image used to render the thumb
          * Gets or sets the image used to render the thumb
          */
          */
         get: function () {
         get: function () {
-            return this._thumbImage;
+            return this._thumbBaseImage;
         },
         },
         set: function (value) {
         set: function (value) {
             var _this = this;
             var _this = this;
-            if (this._thumbImage === value) {
+            if (this._thumbBaseImage === value) {
                 return;
                 return;
             }
             }
-            this._thumbImage = value;
-            if (value && !value.isLoaded) {
-                value.onImageLoadedObservable.addOnce(function () { return _this._markAsDirty(); });
+            this._thumbBaseImage = value;
+            if (this.isVertical) {
+                if (value && !value.isLoaded) {
+                    value.onImageLoadedObservable.addOnce(function () {
+                        var rotatedValue = value._rotate90(-1);
+                        _this._thumbImage = rotatedValue;
+                        if (!rotatedValue.isLoaded) {
+                            rotatedValue.onImageLoadedObservable.addOnce(function () {
+                                _this._markAsDirty();
+                            });
+                        }
+                        _this._markAsDirty();
+                    });
+                }
+                this._thumbImage = value._rotate90(-1);
+                this._markAsDirty();
+            }
+            else {
+                this._thumbImage = value;
+                if (value && !value.isLoaded) {
+                    value.onImageLoadedObservable.addOnce(function () {
+                        _this._markAsDirty();
+                    });
+                }
+                this._markAsDirty();
             }
             }
-            this._markAsDirty();
         },
         },
         enumerable: true,
         enumerable: true,
         configurable: true
         configurable: true

File diff suppressed because it is too large
+ 1 - 1
dist/preview release/gui/babylon.gui.js.map


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/gui/babylon.gui.min.js


+ 10 - 2
dist/preview release/gui/babylon.gui.module.d.ts

@@ -1545,6 +1545,8 @@ declare module "babylonjs-gui/2D/controls/image" {
         autoScale: boolean;
         autoScale: boolean;
         /** Gets or sets the streching mode used by the image */
         /** Gets or sets the streching mode used by the image */
         stretch: number;
         stretch: number;
+        /** @hidden */
+        _rotate90(n: number): Image;
         /**
         /**
          * Gets or sets the internal DOM image used to render the control
          * Gets or sets the internal DOM image used to render the control
          */
          */
@@ -2868,14 +2870,16 @@ declare module "babylonjs-gui/2D/controls/sliders/imageScrollBar" {
      */
      */
     export class ImageScrollBar extends BaseSlider {
     export class ImageScrollBar extends BaseSlider {
         name?: string | undefined;
         name?: string | undefined;
+        private _backgroundBaseImage;
         private _backgroundImage;
         private _backgroundImage;
         private _thumbImage;
         private _thumbImage;
+        private _thumbBaseImage;
         private _thumbLength;
         private _thumbLength;
         private _thumbHeight;
         private _thumbHeight;
         private _barImageHeight;
         private _barImageHeight;
         private _tempMeasure;
         private _tempMeasure;
         /**
         /**
-         * Gets or sets the image used to render the background
+         * Gets or sets the image used to render the background for horizontal bar
          */
          */
         backgroundImage: Image;
         backgroundImage: Image;
         /**
         /**
@@ -5528,6 +5532,8 @@ declare module BABYLON.GUI {
         autoScale: boolean;
         autoScale: boolean;
         /** Gets or sets the streching mode used by the image */
         /** Gets or sets the streching mode used by the image */
         stretch: number;
         stretch: number;
+        /** @hidden */
+        _rotate90(n: number): Image;
         /**
         /**
          * Gets or sets the internal DOM image used to render the control
          * Gets or sets the internal DOM image used to render the control
          */
          */
@@ -6777,14 +6783,16 @@ declare module BABYLON.GUI {
      */
      */
     export class ImageScrollBar extends BaseSlider {
     export class ImageScrollBar extends BaseSlider {
         name?: string | undefined;
         name?: string | undefined;
+        private _backgroundBaseImage;
         private _backgroundImage;
         private _backgroundImage;
         private _thumbImage;
         private _thumbImage;
+        private _thumbBaseImage;
         private _thumbLength;
         private _thumbLength;
         private _thumbHeight;
         private _thumbHeight;
         private _barImageHeight;
         private _barImageHeight;
         private _tempMeasure;
         private _tempMeasure;
         /**
         /**
-         * Gets or sets the image used to render the background
+         * Gets or sets the image used to render the background for horizontal bar
          */
          */
         backgroundImage: Image;
         backgroundImage: Image;
         /**
         /**

File diff suppressed because it is too large
+ 4 - 4
dist/preview release/viewer/babylon.viewer.js


File diff suppressed because it is too large
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js