@babylonjs/gui 5.19.0 → 5.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/2D/adtInstrumentation.js +70 -90
  2. package/2D/adtInstrumentation.js.map +1 -1
  3. package/2D/advancedDynamicTexture.d.ts +8 -0
  4. package/2D/advancedDynamicTexture.js +559 -620
  5. package/2D/advancedDynamicTexture.js.map +1 -1
  6. package/2D/controls/button.js +76 -90
  7. package/2D/controls/button.js.map +1 -1
  8. package/2D/controls/checkbox.js +86 -106
  9. package/2D/controls/checkbox.js.map +1 -1
  10. package/2D/controls/colorpicker.js +395 -415
  11. package/2D/controls/colorpicker.js.map +1 -1
  12. package/2D/controls/container.js +187 -230
  13. package/2D/controls/container.js.map +1 -1
  14. package/2D/controls/control.js +1073 -1353
  15. package/2D/controls/control.js.map +1 -1
  16. package/2D/controls/displayGrid.js +152 -196
  17. package/2D/controls/displayGrid.js.map +1 -1
  18. package/2D/controls/ellipse.js +32 -40
  19. package/2D/controls/ellipse.js.map +1 -1
  20. package/2D/controls/focusableButton.js +30 -35
  21. package/2D/controls/focusableButton.js.map +1 -1
  22. package/2D/controls/grid.js +172 -212
  23. package/2D/controls/grid.js.map +1 -1
  24. package/2D/controls/image.js +489 -592
  25. package/2D/controls/image.js.map +1 -1
  26. package/2D/controls/inputPassword.js +9 -16
  27. package/2D/controls/inputPassword.js.map +1 -1
  28. package/2D/controls/inputText.js +380 -467
  29. package/2D/controls/inputText.js.map +1 -1
  30. package/2D/controls/inputTextArea.js +234 -273
  31. package/2D/controls/inputTextArea.js.map +1 -1
  32. package/2D/controls/line.js +147 -198
  33. package/2D/controls/line.js.map +1 -1
  34. package/2D/controls/multiLine.js +87 -113
  35. package/2D/controls/multiLine.js.map +1 -1
  36. package/2D/controls/radioButton.js +106 -127
  37. package/2D/controls/radioButton.js.map +1 -1
  38. package/2D/controls/rectangle.js +64 -76
  39. package/2D/controls/rectangle.js.map +1 -1
  40. package/2D/controls/scrollViewers/scrollViewer.js +439 -543
  41. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  42. package/2D/controls/scrollViewers/scrollViewerWindow.js +99 -118
  43. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  44. package/2D/controls/selector.js +241 -329
  45. package/2D/controls/selector.js.map +1 -1
  46. package/2D/controls/sliders/baseSlider.js +182 -230
  47. package/2D/controls/sliders/baseSlider.js.map +1 -1
  48. package/2D/controls/sliders/imageBasedSlider.js +86 -109
  49. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  50. package/2D/controls/sliders/imageScrollBar.d.ts +4 -0
  51. package/2D/controls/sliders/imageScrollBar.js +149 -163
  52. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  53. package/2D/controls/sliders/scrollBar.d.ts +4 -0
  54. package/2D/controls/sliders/scrollBar.js +65 -65
  55. package/2D/controls/sliders/scrollBar.js.map +1 -1
  56. package/2D/controls/sliders/slider.js +91 -115
  57. package/2D/controls/sliders/slider.js.map +1 -1
  58. package/2D/controls/stackPanel.js +114 -135
  59. package/2D/controls/stackPanel.js.map +1 -1
  60. package/2D/controls/statics.js +5 -5
  61. package/2D/controls/statics.js.map +1 -1
  62. package/2D/controls/textBlock.js +322 -384
  63. package/2D/controls/textBlock.js.map +1 -1
  64. package/2D/controls/textWrapper.js +27 -41
  65. package/2D/controls/textWrapper.js.map +1 -1
  66. package/2D/controls/toggleButton.js +105 -121
  67. package/2D/controls/toggleButton.js.map +1 -1
  68. package/2D/controls/virtualKeyboard.js +101 -123
  69. package/2D/controls/virtualKeyboard.js.map +1 -1
  70. package/2D/math2D.js +62 -70
  71. package/2D/math2D.js.map +1 -1
  72. package/2D/measure.js +30 -32
  73. package/2D/measure.js.map +1 -1
  74. package/2D/multiLinePoint.js +71 -89
  75. package/2D/multiLinePoint.js.map +1 -1
  76. package/2D/style.js +55 -73
  77. package/2D/style.js.map +1 -1
  78. package/2D/valueAndUnit.js +71 -104
  79. package/2D/valueAndUnit.js.map +1 -1
  80. package/2D/xmlLoader.js +70 -84
  81. package/2D/xmlLoader.js.map +1 -1
  82. package/3D/behaviors/defaultBehavior.js +40 -59
  83. package/3D/behaviors/defaultBehavior.js.map +1 -1
  84. package/3D/controls/abstractButton3D.js +8 -12
  85. package/3D/controls/abstractButton3D.js.map +1 -1
  86. package/3D/controls/button3D.js +30 -35
  87. package/3D/controls/button3D.js.map +1 -1
  88. package/3D/controls/container3D.js +57 -71
  89. package/3D/controls/container3D.js.map +1 -1
  90. package/3D/controls/contentDisplay3D.js +47 -60
  91. package/3D/controls/contentDisplay3D.js.map +1 -1
  92. package/3D/controls/control3D.js +123 -158
  93. package/3D/controls/control3D.js.map +1 -1
  94. package/3D/controls/cylinderPanel.js +28 -38
  95. package/3D/controls/cylinderPanel.js.map +1 -1
  96. package/3D/controls/handMenu.js +20 -29
  97. package/3D/controls/handMenu.js.map +1 -1
  98. package/3D/controls/holographicBackplate.js +52 -72
  99. package/3D/controls/holographicBackplate.js.map +1 -1
  100. package/3D/controls/holographicButton.js +160 -200
  101. package/3D/controls/holographicButton.js.map +1 -1
  102. package/3D/controls/holographicSlate.js +176 -206
  103. package/3D/controls/holographicSlate.js.map +1 -1
  104. package/3D/controls/meshButton3D.js +24 -30
  105. package/3D/controls/meshButton3D.js.map +1 -1
  106. package/3D/controls/nearMenu.js +57 -71
  107. package/3D/controls/nearMenu.js.map +1 -1
  108. package/3D/controls/planePanel.js +6 -13
  109. package/3D/controls/planePanel.js.map +1 -1
  110. package/3D/controls/scatterPanel.js +43 -54
  111. package/3D/controls/scatterPanel.js.map +1 -1
  112. package/3D/controls/slider3D.js +168 -222
  113. package/3D/controls/slider3D.js.map +1 -1
  114. package/3D/controls/spherePanel.js +29 -39
  115. package/3D/controls/spherePanel.js.map +1 -1
  116. package/3D/controls/stackPanel3D.js +36 -49
  117. package/3D/controls/stackPanel3D.js.map +1 -1
  118. package/3D/controls/touchButton3D.js +126 -154
  119. package/3D/controls/touchButton3D.js.map +1 -1
  120. package/3D/controls/touchHolographicButton.js +223 -272
  121. package/3D/controls/touchHolographicButton.js.map +1 -1
  122. package/3D/controls/touchHolographicMenu.js +55 -66
  123. package/3D/controls/touchHolographicMenu.js.map +1 -1
  124. package/3D/controls/touchMeshButton3D.js +24 -30
  125. package/3D/controls/touchMeshButton3D.js.map +1 -1
  126. package/3D/controls/volumeBasedPanel.js +85 -107
  127. package/3D/controls/volumeBasedPanel.js.map +1 -1
  128. package/3D/gizmos/gizmoHandle.js +68 -103
  129. package/3D/gizmos/gizmoHandle.js.map +1 -1
  130. package/3D/gizmos/slateGizmo.js +165 -182
  131. package/3D/gizmos/slateGizmo.js.map +1 -1
  132. package/3D/gui3DManager.js +76 -101
  133. package/3D/gui3DManager.js.map +1 -1
  134. package/3D/materials/fluent/fluentMaterial.js +110 -119
  135. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  136. package/3D/materials/fluent/shaders/fluent.fragment.js +20 -3
  137. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
  138. package/3D/materials/fluent/shaders/fluent.vertex.js +11 -3
  139. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
  140. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +168 -177
  141. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  142. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +9 -3
  143. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
  144. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +15 -3
  145. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
  146. package/3D/materials/fluentButton/fluentButtonMaterial.js +205 -213
  147. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  148. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +6 -3
  149. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
  150. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +6 -3
  151. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
  152. package/3D/materials/handle/handleMaterial.js +56 -69
  153. package/3D/materials/handle/handleMaterial.js.map +1 -1
  154. package/3D/materials/handle/shaders/handle.fragment.js +3 -3
  155. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
  156. package/3D/materials/handle/shaders/handle.vertex.js +3 -3
  157. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
  158. package/3D/materials/mrdl/mrdlBackplateMaterial.js +158 -166
  159. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  160. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +322 -330
  161. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  162. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +322 -330
  163. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  164. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +9 -3
  165. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
  166. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +6 -3
  167. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
  168. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +24 -3
  169. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
  170. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +12 -3
  171. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
  172. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +24 -3
  173. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
  174. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +12 -3
  175. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
  176. package/3D/vector3WithInfo.js +6 -12
  177. package/3D/vector3WithInfo.js.map +1 -1
  178. package/legacy/legacy.js +1 -1
  179. package/legacy/legacy.js.map +1 -1
  180. package/package.json +2 -5
@@ -1,4 +1,3 @@
1
- import { __extends } from "tslib";
2
1
  import { Gizmo } from "@babylonjs/core/Gizmos/gizmo.js";
3
2
  import { Epsilon } from "@babylonjs/core/Maths/math.constants.js";
4
3
  import { Matrix, Quaternion, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
@@ -8,86 +7,78 @@ import { CornerHandle, SideHandle } from "./gizmoHandle.js";
8
7
  /**
9
8
  * Gizmo to resize 2D slates
10
9
  */
11
- var SlateGizmo = /** @class */ (function (_super) {
12
- __extends(SlateGizmo, _super);
13
- function SlateGizmo(utilityLayer) {
14
- var _this = _super.call(this, utilityLayer) || this;
15
- _this._boundingDimensions = new Vector3(0, 0, 0);
16
- _this._renderObserver = null;
17
- _this._tmpQuaternion = new Quaternion();
18
- _this._tmpVector = new Vector3(0, 0, 0);
10
+ export class SlateGizmo extends Gizmo {
11
+ constructor(utilityLayer) {
12
+ super(utilityLayer);
13
+ this._boundingDimensions = new Vector3(0, 0, 0);
14
+ this._renderObserver = null;
15
+ this._tmpQuaternion = new Quaternion();
16
+ this._tmpVector = new Vector3(0, 0, 0);
19
17
  // Ordered bl, br, tr, tl
20
- _this._corners = [];
18
+ this._corners = [];
21
19
  // Ordered left, bottom, right, top
22
- _this._sides = [];
23
- _this._boundingBoxGizmo = {
20
+ this._sides = [];
21
+ this._boundingBoxGizmo = {
24
22
  min: new Vector3(),
25
23
  max: new Vector3(),
26
24
  };
27
25
  /**
28
26
  * Value we use to offset handles from mesh
29
27
  */
30
- _this._margin = 0.35;
31
- _this._handleSize = 0.075;
32
- _this._attachedSlate = null;
33
- _this._existingSlateScale = new Vector3();
28
+ this._margin = 0.35;
29
+ this._handleSize = 0.075;
30
+ this._attachedSlate = null;
31
+ this._existingSlateScale = new Vector3();
34
32
  /**
35
33
  * If set, the handles will increase in size based on the distance away from the camera to have a consistent screen size (Default: true)
36
34
  */
37
- _this.fixedScreenSize = false;
35
+ this.fixedScreenSize = false;
38
36
  /**
39
37
  * The distance away from the object which the draggable meshes should appear world sized when fixedScreenSize is set to true (default: 10)
40
38
  */
41
- _this.fixedScreenSizeDistanceFactor = 10;
42
- _this._createNode();
43
- _this.updateScale = false;
44
- _this._renderObserver = _this.gizmoLayer.originalScene.onBeforeRenderObservable.add(function () {
39
+ this.fixedScreenSizeDistanceFactor = 10;
40
+ this._createNode();
41
+ this.updateScale = false;
42
+ this._renderObserver = this.gizmoLayer.originalScene.onBeforeRenderObservable.add(() => {
45
43
  // Only update the bounding box if scaling has changed
46
- if (_this.attachedMesh && !_this._existingSlateScale.equals(_this.attachedMesh.scaling)) {
47
- _this.updateBoundingBox();
44
+ if (this.attachedMesh && !this._existingSlateScale.equals(this.attachedMesh.scaling)) {
45
+ this.updateBoundingBox();
48
46
  }
49
47
  });
50
- return _this;
51
48
  }
52
- Object.defineProperty(SlateGizmo.prototype, "attachedSlate", {
53
- get: function () {
54
- return this._attachedSlate;
55
- },
56
- /**
57
- * The slate attached to this gizmo
58
- */
59
- set: function (control) {
60
- var _this = this;
61
- if (control) {
62
- this.attachedMesh = control.mesh;
63
- this.updateBoundingBox();
64
- this._pickedPointObserver = control._host.onPickingObservable.add(function (pickedMesh) {
65
- if (_this._handleHovered && (!pickedMesh || pickedMesh.parent !== _this._handleHovered.node)) {
66
- _this._handleHovered.hover = false;
67
- _this._handleHovered = null;
68
- }
69
- if (pickedMesh && pickedMesh.parent && pickedMesh.parent.reservedDataStore && pickedMesh.parent.reservedDataStore.handle) {
70
- var handle = pickedMesh.parent.reservedDataStore.handle;
71
- if (handle.gizmo === _this) {
72
- _this._handleHovered = handle;
73
- _this._handleHovered.hover = true;
74
- }
49
+ /**
50
+ * The slate attached to this gizmo
51
+ */
52
+ set attachedSlate(control) {
53
+ if (control) {
54
+ this.attachedMesh = control.mesh;
55
+ this.updateBoundingBox();
56
+ this._pickedPointObserver = control._host.onPickingObservable.add((pickedMesh) => {
57
+ if (this._handleHovered && (!pickedMesh || pickedMesh.parent !== this._handleHovered.node)) {
58
+ this._handleHovered.hover = false;
59
+ this._handleHovered = null;
60
+ }
61
+ if (pickedMesh && pickedMesh.parent && pickedMesh.parent.reservedDataStore && pickedMesh.parent.reservedDataStore.handle) {
62
+ const handle = pickedMesh.parent.reservedDataStore.handle;
63
+ if (handle.gizmo === this) {
64
+ this._handleHovered = handle;
65
+ this._handleHovered.hover = true;
75
66
  }
76
- });
77
- }
78
- else if (this._attachedSlate) {
79
- this._attachedSlate._host.onPickingObservable.remove(this._pickedPointObserver);
80
- }
81
- this._attachedSlate = control;
82
- },
83
- enumerable: false,
84
- configurable: true
85
- });
86
- SlateGizmo.prototype._createNode = function () {
87
- var _this = this;
67
+ }
68
+ });
69
+ }
70
+ else if (this._attachedSlate) {
71
+ this._attachedSlate._host.onPickingObservable.remove(this._pickedPointObserver);
72
+ }
73
+ this._attachedSlate = control;
74
+ }
75
+ get attachedSlate() {
76
+ return this._attachedSlate;
77
+ }
78
+ _createNode() {
88
79
  this._handlesParent = new TransformNode("handlesParent", this.gizmoLayer.utilityLayerScene);
89
80
  this._handlesParent.rotationQuaternion = Quaternion.Identity();
90
- var masksCorners = [
81
+ const masksCorners = [
91
82
  {
92
83
  dimensions: new Vector3(-1, -1, 0),
93
84
  origin: new Vector3(1, 0, 0),
@@ -105,41 +96,39 @@ var SlateGizmo = /** @class */ (function (_super) {
105
96
  origin: new Vector3(1, 1, 0),
106
97
  },
107
98
  ];
108
- for (var i = 0; i < 4; i++) {
109
- var corner = new CornerHandle(this, this.gizmoLayer.utilityLayerScene);
99
+ for (let i = 0; i < 4; i++) {
100
+ const corner = new CornerHandle(this, this.gizmoLayer.utilityLayerScene);
110
101
  this._corners.push(corner);
111
102
  corner.node.rotation.z = (Math.PI / 2) * i;
112
103
  corner.node.parent = this._handlesParent;
113
- this._assignDragBehaviorCorners(corner, function (originStart, dimensionsStart, offset, masks) { return _this._moveHandle(originStart, dimensionsStart, offset, masks, true); }, masksCorners[i]);
104
+ this._assignDragBehaviorCorners(corner, (originStart, dimensionsStart, offset, masks) => this._moveHandle(originStart, dimensionsStart, offset, masks, true), masksCorners[i]);
114
105
  }
115
- for (var i = 0; i < 4; i++) {
116
- var side = new SideHandle(this, this.gizmoLayer.utilityLayerScene);
106
+ for (let i = 0; i < 4; i++) {
107
+ const side = new SideHandle(this, this.gizmoLayer.utilityLayerScene);
117
108
  this._sides.push(side);
118
109
  side.node.rotation.z = (Math.PI / 2) * i;
119
110
  side.node.parent = this._handlesParent;
120
111
  this._assignDragBehaviorSides(side, i % 2 === 0 ? new Vector3(0, 1, 0) : new Vector3(1, 0, 0));
121
112
  }
122
113
  this._handlesParent.parent = this._rootMesh;
123
- };
124
- SlateGizmo.prototype._keepAspectRatio = function (vector, aspectRatio, invertDiagonal) {
125
- if (invertDiagonal === void 0) { invertDiagonal = false; }
126
- var axis = TmpVectors.Vector3[0];
114
+ }
115
+ _keepAspectRatio(vector, aspectRatio, invertDiagonal = false) {
116
+ const axis = TmpVectors.Vector3[0];
127
117
  axis.copyFromFloats(aspectRatio, 1, 0).normalize();
128
118
  if (invertDiagonal) {
129
119
  axis.y *= -1;
130
120
  }
131
- var dot = Vector3.Dot(vector, axis);
121
+ const dot = Vector3.Dot(vector, axis);
132
122
  vector.copyFrom(axis).scaleInPlace(dot);
133
- };
134
- SlateGizmo.prototype._clampDimensions = function (vector, dimensions, mask, keepAspectRatio) {
135
- if (keepAspectRatio === void 0) { keepAspectRatio = false; }
136
- var impact = TmpVectors.Vector3[0];
123
+ }
124
+ _clampDimensions(vector, dimensions, mask, keepAspectRatio = false) {
125
+ const impact = TmpVectors.Vector3[0];
137
126
  impact.copyFrom(vector).multiplyInPlace(mask);
138
- var clampedDimensions = TmpVectors.Vector3[1];
127
+ const clampedDimensions = TmpVectors.Vector3[1];
139
128
  clampedDimensions.copyFromFloats(Math.max(this._attachedSlate.minDimensions.x, impact.x + dimensions.x), Math.max(this._attachedSlate.minDimensions.y, impact.y + dimensions.y), 0);
140
129
  if (keepAspectRatio) {
141
130
  // Extra logic to ensure the ratio is maintained when the vector has been clamped
142
- var ratio = dimensions.x / dimensions.y;
131
+ const ratio = dimensions.x / dimensions.y;
143
132
  clampedDimensions.x = Math.max(clampedDimensions.x, clampedDimensions.y * ratio);
144
133
  clampedDimensions.y = Math.max(clampedDimensions.y, clampedDimensions.x / ratio);
145
134
  }
@@ -147,131 +136,129 @@ var SlateGizmo = /** @class */ (function (_super) {
147
136
  impact.copyFrom(clampedDimensions).subtractInPlace(dimensions);
148
137
  vector.x = Math.sign(vector.x) * Math.abs(impact.x);
149
138
  vector.y = Math.sign(vector.y) * Math.abs(impact.y);
150
- };
151
- SlateGizmo.prototype._moveHandle = function (originStart, dimensionsStart, offset, masks, isCorner) {
139
+ }
140
+ _moveHandle(originStart, dimensionsStart, offset, masks, isCorner) {
152
141
  if (!this._attachedSlate) {
153
142
  return;
154
143
  }
155
144
  if (isCorner) {
156
- var aspectRatio = dimensionsStart.x / dimensionsStart.y;
145
+ const aspectRatio = dimensionsStart.x / dimensionsStart.y;
157
146
  this._keepAspectRatio(offset, aspectRatio, masks.dimensions.x * masks.dimensions.y < 0);
158
147
  }
159
148
  this._clampDimensions(offset, dimensionsStart, masks.dimensions, isCorner);
160
- var offsetOriginMasked = TmpVectors.Vector3[0];
161
- var offsetDimensionsMasked = TmpVectors.Vector3[1];
149
+ const offsetOriginMasked = TmpVectors.Vector3[0];
150
+ const offsetDimensionsMasked = TmpVectors.Vector3[1];
162
151
  offsetOriginMasked.copyFrom(offset).multiplyInPlace(masks.origin);
163
152
  offsetDimensionsMasked.copyFrom(offset).multiplyInPlace(masks.dimensions);
164
153
  this._attachedSlate.origin.copyFrom(originStart).addInPlace(offsetOriginMasked);
165
154
  this._attachedSlate.dimensions.set(dimensionsStart.x + offsetDimensionsMasked.x, dimensionsStart.y + offsetDimensionsMasked.y);
166
- };
167
- SlateGizmo.prototype._assignDragBehaviorCorners = function (handle, moveFn, masks) {
168
- var _this = this;
169
- var dimensionsStart = new Vector3();
170
- var originStart = new Vector3();
171
- var dragOrigin = new Vector3();
172
- var toObjectFrame = new Matrix();
173
- var dragPlaneNormal = new Vector3();
174
- var projectToRef = function (position, normal, origin, ref) {
155
+ }
156
+ _assignDragBehaviorCorners(handle, moveFn, masks) {
157
+ const dimensionsStart = new Vector3();
158
+ const originStart = new Vector3();
159
+ const dragOrigin = new Vector3();
160
+ const toObjectFrame = new Matrix();
161
+ const dragPlaneNormal = new Vector3();
162
+ const projectToRef = (position, normal, origin, ref) => {
175
163
  // Projects on the plane with its normal and origin
176
164
  position.subtractToRef(origin, TmpVectors.Vector3[0]);
177
- var dot = Vector3.Dot(TmpVectors.Vector3[0], normal);
165
+ const dot = Vector3.Dot(TmpVectors.Vector3[0], normal);
178
166
  TmpVectors.Vector3[1].copyFrom(normal).scaleInPlace(dot);
179
167
  TmpVectors.Vector3[0].subtractInPlace(TmpVectors.Vector3[1]);
180
168
  TmpVectors.Vector3[0].addToRef(origin, ref);
181
169
  };
182
- var dragStart = function (event) {
183
- if (_this.attachedSlate && _this.attachedMesh) {
184
- dimensionsStart.set(_this.attachedSlate.dimensions.x, _this.attachedSlate.dimensions.y, Epsilon);
185
- originStart.copyFrom(_this.attachedSlate.origin);
170
+ const dragStart = (event) => {
171
+ if (this.attachedSlate && this.attachedMesh) {
172
+ dimensionsStart.set(this.attachedSlate.dimensions.x, this.attachedSlate.dimensions.y, Epsilon);
173
+ originStart.copyFrom(this.attachedSlate.origin);
186
174
  dragOrigin.copyFrom(event.position);
187
- toObjectFrame.copyFrom(_this.attachedMesh.computeWorldMatrix(true));
175
+ toObjectFrame.copyFrom(this.attachedMesh.computeWorldMatrix(true));
188
176
  toObjectFrame.invert();
189
- _this.attachedSlate._followButton.isToggled = false;
190
- Vector3.TransformNormalToRef(Vector3.Forward(), _this.attachedMesh.getWorldMatrix(), dragPlaneNormal);
177
+ this.attachedSlate._followButton.isToggled = false;
178
+ Vector3.TransformNormalToRef(Vector3.Forward(), this.attachedMesh.getWorldMatrix(), dragPlaneNormal);
191
179
  dragPlaneNormal.normalize();
192
- if (_this._handleHovered) {
193
- _this._handleDragged = _this._handleHovered;
194
- _this._handleDragged.drag = true;
180
+ if (this._handleHovered) {
181
+ this._handleDragged = this._handleHovered;
182
+ this._handleDragged.drag = true;
195
183
  }
196
184
  }
197
185
  };
198
- var dragging = function (event) {
199
- if (_this.attachedSlate && _this.attachedMesh) {
200
- projectToRef(event.position, dragPlaneNormal, dragOrigin, _this._tmpVector);
201
- _this._tmpVector.subtractInPlace(dragOrigin);
202
- Vector3.TransformNormalToRef(_this._tmpVector, toObjectFrame, _this._tmpVector);
203
- moveFn(originStart, dimensionsStart, _this._tmpVector, masks);
204
- _this.attachedSlate._positionElements();
205
- _this.updateBoundingBox();
186
+ const dragging = (event) => {
187
+ if (this.attachedSlate && this.attachedMesh) {
188
+ projectToRef(event.position, dragPlaneNormal, dragOrigin, this._tmpVector);
189
+ this._tmpVector.subtractInPlace(dragOrigin);
190
+ Vector3.TransformNormalToRef(this._tmpVector, toObjectFrame, this._tmpVector);
191
+ moveFn(originStart, dimensionsStart, this._tmpVector, masks);
192
+ this.attachedSlate._positionElements();
193
+ this.updateBoundingBox();
206
194
  }
207
195
  };
208
- var dragEnd = function () {
209
- if (_this.attachedSlate && _this.attachedNode) {
210
- _this.attachedSlate._updatePivot();
211
- if (_this._handleDragged) {
212
- _this._handleDragged.drag = false;
213
- _this._handleDragged = null;
196
+ const dragEnd = () => {
197
+ if (this.attachedSlate && this.attachedNode) {
198
+ this.attachedSlate._updatePivot();
199
+ if (this._handleDragged) {
200
+ this._handleDragged.drag = false;
201
+ this._handleDragged = null;
214
202
  }
215
203
  }
216
204
  };
217
205
  handle.setDragBehavior(dragStart, dragging, dragEnd);
218
- };
219
- SlateGizmo.prototype._assignDragBehaviorSides = function (handle, dragPlaneNormal) {
220
- var _this = this;
221
- var quaternionOrigin = new Quaternion();
222
- var dragOrigin = new Vector3();
223
- var directionOrigin = new Vector3();
224
- var worldPivot = new Vector3();
225
- var worldPlaneNormal = new Vector3();
226
- var dragStart = function (event) {
227
- if (_this.attachedSlate && _this.attachedMesh) {
228
- quaternionOrigin.copyFrom(_this.attachedMesh.rotationQuaternion);
206
+ }
207
+ _assignDragBehaviorSides(handle, dragPlaneNormal) {
208
+ const quaternionOrigin = new Quaternion();
209
+ const dragOrigin = new Vector3();
210
+ const directionOrigin = new Vector3();
211
+ const worldPivot = new Vector3();
212
+ const worldPlaneNormal = new Vector3();
213
+ const dragStart = (event) => {
214
+ if (this.attachedSlate && this.attachedMesh) {
215
+ quaternionOrigin.copyFrom(this.attachedMesh.rotationQuaternion);
229
216
  dragOrigin.copyFrom(event.position);
230
- worldPivot.copyFrom(_this.attachedMesh.getAbsolutePivotPoint());
217
+ worldPivot.copyFrom(this.attachedMesh.getAbsolutePivotPoint());
231
218
  directionOrigin.copyFrom(dragOrigin).subtractInPlace(worldPivot).normalize();
232
- _this.attachedSlate._followButton.isToggled = false;
233
- Vector3.TransformNormalToRef(dragPlaneNormal, _this.attachedMesh.getWorldMatrix(), worldPlaneNormal);
219
+ this.attachedSlate._followButton.isToggled = false;
220
+ Vector3.TransformNormalToRef(dragPlaneNormal, this.attachedMesh.getWorldMatrix(), worldPlaneNormal);
234
221
  worldPlaneNormal.normalize();
235
- if (_this._handleHovered) {
236
- _this._handleDragged = _this._handleHovered;
237
- _this._handleDragged.drag = true;
222
+ if (this._handleHovered) {
223
+ this._handleDragged = this._handleHovered;
224
+ this._handleDragged.drag = true;
238
225
  }
239
226
  }
240
227
  };
241
- var dragging = function (event) {
242
- if (_this.attachedSlate && _this.attachedMesh) {
243
- _this._tmpVector.copyFrom(event.position);
244
- _this._tmpVector.subtractInPlace(worldPivot);
245
- _this._tmpVector.normalize();
246
- var angle = -Vector3.GetAngleBetweenVectorsOnPlane(_this._tmpVector, directionOrigin, worldPlaneNormal);
247
- Quaternion.RotationAxisToRef(dragPlaneNormal, angle, _this._tmpQuaternion);
248
- quaternionOrigin.multiplyToRef(_this._tmpQuaternion, _this.attachedMesh.rotationQuaternion);
228
+ const dragging = (event) => {
229
+ if (this.attachedSlate && this.attachedMesh) {
230
+ this._tmpVector.copyFrom(event.position);
231
+ this._tmpVector.subtractInPlace(worldPivot);
232
+ this._tmpVector.normalize();
233
+ const angle = -Vector3.GetAngleBetweenVectorsOnPlane(this._tmpVector, directionOrigin, worldPlaneNormal);
234
+ Quaternion.RotationAxisToRef(dragPlaneNormal, angle, this._tmpQuaternion);
235
+ quaternionOrigin.multiplyToRef(this._tmpQuaternion, this.attachedMesh.rotationQuaternion);
249
236
  }
250
237
  };
251
- var dragEnd = function () {
252
- if (_this.attachedSlate && _this.attachedNode) {
253
- _this.attachedSlate._updatePivot();
254
- if (_this._handleDragged) {
255
- _this._handleDragged.drag = false;
256
- _this._handleDragged = null;
238
+ const dragEnd = () => {
239
+ if (this.attachedSlate && this.attachedNode) {
240
+ this.attachedSlate._updatePivot();
241
+ if (this._handleDragged) {
242
+ this._handleDragged.drag = false;
243
+ this._handleDragged = null;
257
244
  }
258
245
  }
259
246
  };
260
247
  handle.setDragBehavior(dragStart, dragging, dragEnd);
261
- };
262
- SlateGizmo.prototype._attachedNodeChanged = function (value) {
248
+ }
249
+ _attachedNodeChanged(value) {
263
250
  if (value) {
264
251
  this.updateBoundingBox();
265
252
  }
266
- };
253
+ }
267
254
  /**
268
255
  * Updates the bounding box information for the gizmo
269
256
  */
270
- SlateGizmo.prototype.updateBoundingBox = function () {
257
+ updateBoundingBox() {
271
258
  if (this.attachedMesh) {
272
259
  PivotTools._RemoveAndStorePivotPoint(this.attachedMesh);
273
260
  // Store original parent
274
- var originalParent = this.attachedMesh.parent;
261
+ const originalParent = this.attachedMesh.parent;
275
262
  this.attachedMesh.setParent(null);
276
263
  this._update();
277
264
  // Rotate based on axis
@@ -284,7 +271,7 @@ var SlateGizmo = /** @class */ (function (_super) {
284
271
  this.attachedMesh.rotationQuaternion.set(0, 0, 0, 1);
285
272
  this.attachedMesh.position.set(0, 0, 0);
286
273
  // Update bounding dimensions/positions
287
- var boundingMinMax = this.attachedMesh.getHierarchyBoundingVectors();
274
+ const boundingMinMax = this.attachedMesh.getHierarchyBoundingVectors();
288
275
  boundingMinMax.max.subtractToRef(boundingMinMax.min, this._boundingDimensions);
289
276
  this._boundingBoxGizmo.min = boundingMinMax.min;
290
277
  this._boundingBoxGizmo.max = boundingMinMax.max;
@@ -300,16 +287,16 @@ var SlateGizmo = /** @class */ (function (_super) {
300
287
  this.attachedMesh.computeWorldMatrix(true);
301
288
  this._existingSlateScale.copyFrom(this.attachedMesh.scaling);
302
289
  }
303
- };
304
- SlateGizmo.prototype._updateHandlesPosition = function () {
305
- var min = this._boundingBoxGizmo.min.clone();
306
- var max = this._boundingBoxGizmo.max.clone();
307
- var handleScaling = this._corners[0].node.scaling.length();
290
+ }
291
+ _updateHandlesPosition() {
292
+ const min = this._boundingBoxGizmo.min.clone();
293
+ const max = this._boundingBoxGizmo.max.clone();
294
+ const handleScaling = this._corners[0].node.scaling.length();
308
295
  min.x -= this._margin * handleScaling;
309
296
  min.y -= this._margin * handleScaling;
310
297
  max.x += this._margin * handleScaling;
311
298
  max.y += this._margin * handleScaling;
312
- var center = min.add(max).scaleInPlace(0.5);
299
+ const center = min.add(max).scaleInPlace(0.5);
313
300
  this._corners[0].node.position.copyFromFloats(min.x, min.y, 0);
314
301
  this._corners[1].node.position.copyFromFloats(max.x, min.y, 0);
315
302
  this._corners[2].node.position.copyFromFloats(max.x, max.y, 0);
@@ -318,53 +305,49 @@ var SlateGizmo = /** @class */ (function (_super) {
318
305
  this._sides[1].node.position.copyFromFloats(center.x, min.y, 0);
319
306
  this._sides[2].node.position.copyFromFloats(max.x, center.y, 0);
320
307
  this._sides[3].node.position.copyFromFloats(center.x, max.y, 0);
321
- };
322
- SlateGizmo.prototype._updateHandlesScaling = function () {
308
+ }
309
+ _updateHandlesScaling() {
323
310
  if (this._attachedSlate && this._attachedSlate.mesh) {
324
- var scaledWidth = this._attachedSlate.mesh.scaling.x * this._attachedSlate.dimensions.x;
325
- var scaledHeight = this._attachedSlate.mesh.scaling.y * this._attachedSlate.dimensions.y;
326
- var scale = Math.min(scaledWidth, scaledHeight) * this._handleSize;
327
- for (var index = 0; index < this._corners.length; index++) {
311
+ const scaledWidth = this._attachedSlate.mesh.scaling.x * this._attachedSlate.dimensions.x;
312
+ const scaledHeight = this._attachedSlate.mesh.scaling.y * this._attachedSlate.dimensions.y;
313
+ const scale = Math.min(scaledWidth, scaledHeight) * this._handleSize;
314
+ for (let index = 0; index < this._corners.length; index++) {
328
315
  this._corners[index].node.scaling.setAll(scale);
329
316
  }
330
- for (var index = 0; index < this._sides.length; index++) {
317
+ for (let index = 0; index < this._sides.length; index++) {
331
318
  this._sides[index].node.scaling.setAll(scale);
332
319
  }
333
320
  }
334
- };
335
- SlateGizmo.prototype._update = function () {
336
- _super.prototype._update.call(this);
321
+ }
322
+ _update() {
323
+ super._update();
337
324
  if (!this.gizmoLayer.utilityLayerScene.activeCamera) {
338
325
  return;
339
326
  }
340
327
  if (this._attachedSlate && this._attachedSlate.mesh) {
341
328
  if (this.fixedScreenSize) {
342
329
  this._attachedSlate.mesh.absolutePosition.subtractToRef(this.gizmoLayer.utilityLayerScene.activeCamera.position, this._tmpVector);
343
- var distanceFromCamera = (this._handleSize * this._tmpVector.length()) / this.fixedScreenSizeDistanceFactor;
344
- for (var i = 0; i < this._corners.length; i++) {
330
+ const distanceFromCamera = (this._handleSize * this._tmpVector.length()) / this.fixedScreenSizeDistanceFactor;
331
+ for (let i = 0; i < this._corners.length; i++) {
345
332
  this._corners[i].node.scaling.set(distanceFromCamera, distanceFromCamera, distanceFromCamera);
346
333
  }
347
- for (var i = 0; i < this._sides.length; i++) {
334
+ for (let i = 0; i < this._sides.length; i++) {
348
335
  this._sides[i].node.scaling.set(distanceFromCamera, distanceFromCamera, distanceFromCamera);
349
336
  }
350
337
  }
351
338
  this._updateHandlesPosition();
352
339
  }
353
- };
354
- SlateGizmo.prototype.dispose = function () {
340
+ }
341
+ dispose() {
355
342
  this.gizmoLayer.originalScene.onBeforeRenderObservable.remove(this._renderObserver);
356
343
  // Will dispose rootMesh and all descendants
357
- _super.prototype.dispose.call(this);
358
- for (var _i = 0, _a = this._corners; _i < _a.length; _i++) {
359
- var corner = _a[_i];
344
+ super.dispose();
345
+ for (const corner of this._corners) {
360
346
  corner.dispose();
361
347
  }
362
- for (var _b = 0, _c = this._sides; _b < _c.length; _b++) {
363
- var side = _c[_b];
348
+ for (const side of this._sides) {
364
349
  side.dispose();
365
350
  }
366
- };
367
- return SlateGizmo;
368
- }(Gizmo));
369
- export { SlateGizmo };
351
+ }
352
+ }
370
353
  //# sourceMappingURL=slateGizmo.js.map