@babylonjs/gui 5.0.0-rc.0 → 5.0.0-rc.11
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.
- package/2D/adtInstrumentation.d.ts +52 -52
- package/2D/adtInstrumentation.js +126 -126
- package/2D/adtInstrumentation.js.map +1 -1
- package/2D/advancedDynamicTexture.d.ts +449 -423
- package/2D/advancedDynamicTexture.js +1318 -1286
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +135 -97
- package/2D/controls/button.js +276 -238
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.d.ts +59 -51
- package/2D/controls/checkbox.js +188 -178
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.d.ts +103 -90
- package/2D/controls/colorpicker.js +1417 -1400
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.d.ts +175 -130
- package/2D/controls/container.js +570 -525
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +866 -743
- package/2D/controls/control.js +2433 -2308
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.d.ts +53 -55
- package/2D/controls/displayGrid.js +245 -245
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/ellipse.d.ts +21 -21
- package/2D/controls/ellipse.js +85 -85
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/focusableButton.d.ts +59 -52
- package/2D/controls/focusableButton.js +99 -92
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/focusableControl.d.ts +34 -34
- package/2D/controls/focusableControl.js +1 -1
- package/2D/controls/focusableControl.js.map +1 -1
- package/2D/controls/grid.d.ts +139 -135
- package/2D/controls/grid.js +529 -525
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.d.ts +204 -197
- package/2D/controls/image.js +887 -879
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/index.d.ts +29 -29
- package/2D/controls/index.js +29 -29
- package/2D/controls/index.js.map +1 -1
- package/2D/controls/inputPassword.d.ts +9 -8
- package/2D/controls/inputPassword.js +28 -25
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputText.d.ts +201 -182
- package/2D/controls/inputText.js +1119 -1096
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/line.d.ts +66 -66
- package/2D/controls/line.js +271 -271
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/multiLine.d.ts +75 -77
- package/2D/controls/multiLine.js +262 -262
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/radioButton.d.ts +49 -49
- package/2D/controls/radioButton.js +205 -205
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/rectangle.d.ts +29 -29
- package/2D/controls/rectangle.js +150 -150
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -175
- package/2D/controls/scrollViewers/scrollViewer.js +677 -676
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -45
- package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -263
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +263 -209
- package/2D/controls/selector.js +692 -629
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +82 -78
- package/2D/controls/sliders/baseSlider.js +347 -343
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +49 -47
- package/2D/controls/sliders/imageBasedSlider.js +192 -188
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +65 -61
- package/2D/controls/sliders/imageScrollBar.js +263 -256
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +38 -34
- package/2D/controls/sliders/scrollBar.js +143 -136
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.d.ts +35 -37
- package/2D/controls/sliders/slider.js +271 -271
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.d.ts +64 -56
- package/2D/controls/stackPanel.js +246 -236
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.d.ts +6 -6
- package/2D/controls/statics.js +49 -47
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.d.ts +175 -172
- package/2D/controls/textBlock.js +603 -598
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.d.ts +13 -13
- package/2D/controls/textWrapper.js +101 -101
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.d.ts +117 -83
- package/2D/controls/toggleButton.js +268 -234
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.d.ts +96 -96
- package/2D/controls/virtualKeyboard.js +256 -256
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/index.d.ts +9 -9
- package/2D/index.js +10 -9
- package/2D/index.js.map +1 -1
- package/2D/math2D.d.ts +117 -117
- package/2D/math2D.js +221 -221
- package/2D/math2D.js.map +1 -1
- package/2D/measure.d.ts +77 -77
- package/2D/measure.js +139 -149
- package/2D/measure.js.map +1 -1
- package/2D/multiLinePoint.d.ts +47 -47
- package/2D/multiLinePoint.js +127 -127
- package/2D/multiLinePoint.js.map +1 -1
- package/2D/style.d.ts +46 -46
- package/2D/style.js +97 -97
- package/2D/style.js.map +1 -1
- package/2D/valueAndUnit.d.ts +89 -89
- package/2D/valueAndUnit.js +226 -222
- package/2D/valueAndUnit.js.map +1 -1
- package/2D/xmlLoader.d.ts +60 -60
- package/2D/xmlLoader.js +348 -348
- package/2D/xmlLoader.js.map +1 -1
- package/3D/behaviors/defaultBehavior.d.ts +73 -73
- package/3D/behaviors/defaultBehavior.js +121 -121
- package/3D/behaviors/defaultBehavior.js.map +1 -1
- package/3D/controls/abstractButton3D.d.ts +15 -15
- package/3D/controls/abstractButton3D.js +25 -25
- package/3D/controls/abstractButton3D.js.map +1 -1
- package/3D/controls/button3D.d.ts +30 -30
- package/3D/controls/button3D.js +93 -93
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/container3D.d.ts +72 -72
- package/3D/controls/container3D.js +139 -140
- package/3D/controls/container3D.js.map +1 -1
- package/3D/controls/contentDisplay3D.d.ts +30 -30
- package/3D/controls/contentDisplay3D.js +79 -78
- package/3D/controls/contentDisplay3D.js.map +1 -1
- package/3D/controls/control3D.d.ts +201 -165
- package/3D/controls/control3D.js +445 -408
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/cylinderPanel.d.ts +17 -17
- package/3D/controls/cylinderPanel.js +66 -66
- package/3D/controls/cylinderPanel.js.map +1 -1
- package/3D/controls/handMenu.d.ts +28 -28
- package/3D/controls/handMenu.js +47 -47
- package/3D/controls/handMenu.js.map +1 -1
- package/3D/controls/holographicBackplate.d.ts +49 -48
- package/3D/controls/holographicBackplate.js +120 -120
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.d.ts +84 -83
- package/3D/controls/holographicButton.js +339 -338
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.d.ts +131 -128
- package/3D/controls/holographicSlate.js +431 -428
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/index.d.ts +21 -21
- package/3D/controls/index.js +21 -21
- package/3D/controls/index.js.map +1 -1
- package/3D/controls/meshButton3D.d.ts +21 -21
- package/3D/controls/meshButton3D.js +62 -61
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.d.ts +44 -44
- package/3D/controls/nearMenu.js +114 -112
- package/3D/controls/nearMenu.js.map +1 -1
- package/3D/controls/planePanel.d.ts +9 -9
- package/3D/controls/planePanel.js +36 -36
- package/3D/controls/planePanel.js.map +1 -1
- package/3D/controls/scatterPanel.d.ts +18 -18
- package/3D/controls/scatterPanel.js +108 -108
- package/3D/controls/scatterPanel.js.map +1 -1
- package/3D/controls/slider3D.d.ts +81 -80
- package/3D/controls/slider3D.js +268 -267
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/spherePanel.d.ts +17 -17
- package/3D/controls/spherePanel.js +67 -67
- package/3D/controls/spherePanel.js.map +1 -1
- package/3D/controls/stackPanel3D.d.ts +22 -22
- package/3D/controls/stackPanel3D.js +107 -107
- package/3D/controls/stackPanel3D.js.map +1 -1
- package/3D/controls/touchButton3D.d.ts +80 -75
- package/3D/controls/touchButton3D.js +233 -227
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +110 -109
- package/3D/controls/touchHolographicButton.js +445 -445
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.d.ts +61 -61
- package/3D/controls/touchHolographicMenu.js +149 -148
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/controls/touchMeshButton3D.d.ts +21 -22
- package/3D/controls/touchMeshButton3D.js +62 -62
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.d.ts +53 -52
- package/3D/controls/volumeBasedPanel.js +174 -174
- package/3D/controls/volumeBasedPanel.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +108 -108
- package/3D/gizmos/gizmoHandle.js +209 -209
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/index.d.ts +2 -2
- package/3D/gizmos/index.js +2 -2
- package/3D/gizmos/index.js.map +1 -1
- package/3D/gizmos/slateGizmo.d.ts +57 -57
- package/3D/gizmos/slateGizmo.js +369 -369
- package/3D/gizmos/slateGizmo.js.map +1 -1
- package/3D/gui3DManager.d.ts +94 -94
- package/3D/gui3DManager.js +257 -257
- package/3D/gui3DManager.js.map +1 -1
- package/3D/index.d.ts +5 -5
- package/3D/index.js +6 -5
- package/3D/index.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
- package/3D/materials/fluent/fluentMaterial.js +292 -281
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/index.d.ts +1 -1
- package/3D/materials/fluent/index.js +1 -1
- package/3D/materials/fluent/index.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.fragment.js +8 -6
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
- package/3D/materials/fluent/shaders/fluent.vertex.js +8 -6
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -434
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/index.d.ts +1 -1
- package/3D/materials/fluentBackplate/index.js +1 -1
- package/3D/materials/fluentBackplate/index.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -6
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -6
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
- package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -537
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/index.d.ts +1 -1
- package/3D/materials/fluentButton/index.js +1 -1
- package/3D/materials/fluentButton/index.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -6
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -6
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
- package/3D/materials/fluentMaterial.d.ts +4 -4
- package/3D/materials/fluentMaterial.js +4 -4
- package/3D/materials/fluentMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +68 -68
- package/3D/materials/handle/handleMaterial.js +126 -126
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/index.d.ts +1 -1
- package/3D/materials/handle/index.js +1 -1
- package/3D/materials/handle/index.js.map +1 -1
- package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.fragment.js +8 -6
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
- package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
- package/3D/materials/handle/shaders/handle.vertex.js +8 -6
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
- package/3D/materials/index.d.ts +5 -5
- package/3D/materials/index.js +6 -5
- package/3D/materials/index.js.map +1 -1
- package/3D/materials/mrdl/index.d.ts +3 -3
- package/3D/materials/mrdl/index.js +3 -3
- package/3D/materials/mrdl/index.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -409
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -786
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -786
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -6
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
- package/3D/vector3WithInfo.d.ts +16 -16
- package/3D/vector3WithInfo.js +23 -23
- package/3D/vector3WithInfo.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/legacy/legacy.d.ts +1 -1
- package/legacy/legacy.js +14 -13
- package/legacy/legacy.js.map +1 -1
- package/package.json +21 -328
- package/readme.md +2 -2
package/2D/math2D.js
CHANGED
|
@@ -1,222 +1,222 @@
|
|
|
1
|
-
import { __extends } from "tslib";
|
|
2
|
-
import { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
|
-
import { Epsilon } from
|
|
4
|
-
/**
|
|
5
|
-
* Class used to transport Vector2 information for pointer events
|
|
6
|
-
*/
|
|
7
|
-
var Vector2WithInfo = /** @class */ (function (_super) {
|
|
8
|
-
__extends(Vector2WithInfo, _super);
|
|
9
|
-
/**
|
|
10
|
-
* Creates a new Vector2WithInfo
|
|
11
|
-
* @param source defines the vector2 data to transport
|
|
12
|
-
* @param buttonIndex defines the current mouse button index
|
|
13
|
-
*/
|
|
14
|
-
function Vector2WithInfo(source,
|
|
15
|
-
/** defines the current mouse button index */
|
|
16
|
-
buttonIndex) {
|
|
17
|
-
if (buttonIndex === void 0) { buttonIndex = 0; }
|
|
18
|
-
var _this = _super.call(this, source.x, source.y) || this;
|
|
19
|
-
_this.buttonIndex = buttonIndex;
|
|
20
|
-
return _this;
|
|
21
|
-
}
|
|
22
|
-
return Vector2WithInfo;
|
|
23
|
-
}(Vector2));
|
|
24
|
-
export { Vector2WithInfo };
|
|
25
|
-
/** Class used to provide 2D matrix features */
|
|
26
|
-
var Matrix2D = /** @class */ (function () {
|
|
27
|
-
/**
|
|
28
|
-
* Creates a new matrix
|
|
29
|
-
* @param m00 defines value for (0, 0)
|
|
30
|
-
* @param m01 defines value for (0, 1)
|
|
31
|
-
* @param m10 defines value for (1, 0)
|
|
32
|
-
* @param m11 defines value for (1, 1)
|
|
33
|
-
* @param m20 defines value for (2, 0)
|
|
34
|
-
* @param m21 defines value for (2, 1)
|
|
35
|
-
*/
|
|
36
|
-
function Matrix2D(m00, m01, m10, m11, m20, m21) {
|
|
37
|
-
/** Gets the internal array of 6 floats used to store matrix data */
|
|
38
|
-
this.m = new Float32Array(6);
|
|
39
|
-
this.fromValues(m00, m01, m10, m11, m20, m21);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Fills the matrix from direct values
|
|
43
|
-
* @param m00 defines value for (0, 0)
|
|
44
|
-
* @param m01 defines value for (0, 1)
|
|
45
|
-
* @param m10 defines value for (1, 0)
|
|
46
|
-
* @param m11 defines value for (1, 1)
|
|
47
|
-
* @param m20 defines value for (2, 0)
|
|
48
|
-
* @param m21 defines value for (2, 1)
|
|
49
|
-
* @returns the current modified matrix
|
|
50
|
-
*/
|
|
51
|
-
Matrix2D.prototype.fromValues = function (m00, m01, m10, m11, m20, m21) {
|
|
52
|
-
this.m[0] = m00;
|
|
53
|
-
this.m[1] = m01;
|
|
54
|
-
this.m[2] = m10;
|
|
55
|
-
this.m[3] = m11;
|
|
56
|
-
this.m[4] = m20;
|
|
57
|
-
this.m[5] = m21;
|
|
58
|
-
return this;
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* Gets matrix determinant
|
|
62
|
-
* @returns the determinant
|
|
63
|
-
*/
|
|
64
|
-
Matrix2D.prototype.determinant = function () {
|
|
65
|
-
return this.m[0] * this.m[3] - this.m[1] * this.m[2];
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Inverses the matrix and stores it in a target matrix
|
|
69
|
-
* @param result defines the target matrix
|
|
70
|
-
* @returns the current matrix
|
|
71
|
-
*/
|
|
72
|
-
Matrix2D.prototype.invertToRef = function (result) {
|
|
73
|
-
var l0 = this.m[0];
|
|
74
|
-
var l1 = this.m[1];
|
|
75
|
-
var l2 = this.m[2];
|
|
76
|
-
var l3 = this.m[3];
|
|
77
|
-
var l4 = this.m[4];
|
|
78
|
-
var l5 = this.m[5];
|
|
79
|
-
var det = this.determinant();
|
|
80
|
-
if (det <
|
|
81
|
-
result.m[0] = 0;
|
|
82
|
-
result.m[1] = 0;
|
|
83
|
-
result.m[2] = 0;
|
|
84
|
-
result.m[3] = 0;
|
|
85
|
-
result.m[4] = 0;
|
|
86
|
-
result.m[5] = 0;
|
|
87
|
-
return this;
|
|
88
|
-
}
|
|
89
|
-
var detDiv = 1 / det;
|
|
90
|
-
var det4 = l2 * l5 - l3 * l4;
|
|
91
|
-
var det5 = l1 * l4 - l0 * l5;
|
|
92
|
-
result.m[0] = l3 * detDiv;
|
|
93
|
-
result.m[1] = -l1 * detDiv;
|
|
94
|
-
result.m[2] = -l2 * detDiv;
|
|
95
|
-
result.m[3] = l0 * detDiv;
|
|
96
|
-
result.m[4] = det4 * detDiv;
|
|
97
|
-
result.m[5] = det5 * detDiv;
|
|
98
|
-
return this;
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Multiplies the current matrix with another one
|
|
102
|
-
* @param other defines the second operand
|
|
103
|
-
* @param result defines the target matrix
|
|
104
|
-
* @returns the current matrix
|
|
105
|
-
*/
|
|
106
|
-
Matrix2D.prototype.multiplyToRef = function (other, result) {
|
|
107
|
-
var l0 = this.m[0];
|
|
108
|
-
var l1 = this.m[1];
|
|
109
|
-
var l2 = this.m[2];
|
|
110
|
-
var l3 = this.m[3];
|
|
111
|
-
var l4 = this.m[4];
|
|
112
|
-
var l5 = this.m[5];
|
|
113
|
-
var r0 = other.m[0];
|
|
114
|
-
var r1 = other.m[1];
|
|
115
|
-
var r2 = other.m[2];
|
|
116
|
-
var r3 = other.m[3];
|
|
117
|
-
var r4 = other.m[4];
|
|
118
|
-
var r5 = other.m[5];
|
|
119
|
-
result.m[0] = l0 * r0 + l1 * r2;
|
|
120
|
-
result.m[1] = l0 * r1 + l1 * r3;
|
|
121
|
-
result.m[2] = l2 * r0 + l3 * r2;
|
|
122
|
-
result.m[3] = l2 * r1 + l3 * r3;
|
|
123
|
-
result.m[4] = l4 * r0 + l5 * r2 + r4;
|
|
124
|
-
result.m[5] = l4 * r1 + l5 * r3 + r5;
|
|
125
|
-
return this;
|
|
126
|
-
};
|
|
127
|
-
/**
|
|
128
|
-
* Applies the current matrix to a set of 2 floats and stores the result in a vector2
|
|
129
|
-
* @param x defines the x coordinate to transform
|
|
130
|
-
* @param y defines the x coordinate to transform
|
|
131
|
-
* @param result defines the target vector2
|
|
132
|
-
* @returns the current matrix
|
|
133
|
-
*/
|
|
134
|
-
Matrix2D.prototype.transformCoordinates = function (x, y, result) {
|
|
135
|
-
result.x = x * this.m[0] + y * this.m[2] + this.m[4];
|
|
136
|
-
result.y = x * this.m[1] + y * this.m[3] + this.m[5];
|
|
137
|
-
return this;
|
|
138
|
-
};
|
|
139
|
-
// Statics
|
|
140
|
-
/**
|
|
141
|
-
* Creates an identity matrix
|
|
142
|
-
* @returns a new matrix
|
|
143
|
-
*/
|
|
144
|
-
Matrix2D.Identity = function () {
|
|
145
|
-
return new Matrix2D(1, 0, 0, 1, 0, 0);
|
|
146
|
-
};
|
|
147
|
-
/**
|
|
148
|
-
* Creates an identity matrix and stores it in a target matrix
|
|
149
|
-
* @param result defines the target matrix
|
|
150
|
-
*/
|
|
151
|
-
Matrix2D.IdentityToRef = function (result) {
|
|
152
|
-
result.m[0] = 1;
|
|
153
|
-
result.m[1] = 0;
|
|
154
|
-
result.m[2] = 0;
|
|
155
|
-
result.m[3] = 1;
|
|
156
|
-
result.m[4] = 0;
|
|
157
|
-
result.m[5] = 0;
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* Creates a translation matrix and stores it in a target matrix
|
|
161
|
-
* @param x defines the x coordinate of the translation
|
|
162
|
-
* @param y defines the y coordinate of the translation
|
|
163
|
-
* @param result defines the target matrix
|
|
164
|
-
*/
|
|
165
|
-
Matrix2D.TranslationToRef = function (x, y, result) {
|
|
166
|
-
result.fromValues(1, 0, 0, 1, x, y);
|
|
167
|
-
};
|
|
168
|
-
/**
|
|
169
|
-
* Creates a scaling matrix and stores it in a target matrix
|
|
170
|
-
* @param x defines the x coordinate of the scaling
|
|
171
|
-
* @param y defines the y coordinate of the scaling
|
|
172
|
-
* @param result defines the target matrix
|
|
173
|
-
*/
|
|
174
|
-
Matrix2D.ScalingToRef = function (x, y, result) {
|
|
175
|
-
result.fromValues(x, 0, 0, y, 0, 0);
|
|
176
|
-
};
|
|
177
|
-
/**
|
|
178
|
-
* Creates a rotation matrix and stores it in a target matrix
|
|
179
|
-
* @param angle defines the rotation angle
|
|
180
|
-
* @param result defines the target matrix
|
|
181
|
-
*/
|
|
182
|
-
Matrix2D.RotationToRef = function (angle, result) {
|
|
183
|
-
var s = Math.sin(angle);
|
|
184
|
-
var c = Math.cos(angle);
|
|
185
|
-
result.fromValues(c, s, -s, c, 0, 0);
|
|
186
|
-
};
|
|
187
|
-
/**
|
|
188
|
-
* Composes a matrix from translation, rotation, scaling and parent matrix and stores it in a target matrix
|
|
189
|
-
* @param tx defines the x coordinate of the translation
|
|
190
|
-
* @param ty defines the y coordinate of the translation
|
|
191
|
-
* @param angle defines the rotation angle
|
|
192
|
-
* @param scaleX defines the x coordinate of the scaling
|
|
193
|
-
* @param scaleY defines the y coordinate of the scaling
|
|
194
|
-
* @param parentMatrix defines the parent matrix to multiply by (can be null)
|
|
195
|
-
* @param result defines the target matrix
|
|
196
|
-
*/
|
|
197
|
-
Matrix2D.ComposeToRef = function (tx, ty, angle, scaleX, scaleY, parentMatrix, result) {
|
|
198
|
-
Matrix2D.TranslationToRef(tx, ty, Matrix2D._TempPreTranslationMatrix);
|
|
199
|
-
Matrix2D.ScalingToRef(scaleX, scaleY, Matrix2D._TempScalingMatrix);
|
|
200
|
-
Matrix2D.RotationToRef(angle, Matrix2D._TempRotationMatrix);
|
|
201
|
-
Matrix2D.TranslationToRef(-tx, -ty, Matrix2D._TempPostTranslationMatrix);
|
|
202
|
-
Matrix2D._TempPreTranslationMatrix.multiplyToRef(Matrix2D._TempScalingMatrix, Matrix2D._TempCompose0);
|
|
203
|
-
Matrix2D._TempCompose0.multiplyToRef(Matrix2D._TempRotationMatrix, Matrix2D._TempCompose1);
|
|
204
|
-
if (parentMatrix) {
|
|
205
|
-
Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, Matrix2D._TempCompose2);
|
|
206
|
-
Matrix2D._TempCompose2.multiplyToRef(parentMatrix, result);
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, result);
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
Matrix2D._TempPreTranslationMatrix = Matrix2D.Identity();
|
|
213
|
-
Matrix2D._TempPostTranslationMatrix = Matrix2D.Identity();
|
|
214
|
-
Matrix2D._TempRotationMatrix = Matrix2D.Identity();
|
|
215
|
-
Matrix2D._TempScalingMatrix = Matrix2D.Identity();
|
|
216
|
-
Matrix2D._TempCompose0 = Matrix2D.Identity();
|
|
217
|
-
Matrix2D._TempCompose1 = Matrix2D.Identity();
|
|
218
|
-
Matrix2D._TempCompose2 = Matrix2D.Identity();
|
|
219
|
-
return Matrix2D;
|
|
220
|
-
}());
|
|
221
|
-
export { Matrix2D };
|
|
1
|
+
import { __extends } from "tslib";
|
|
2
|
+
import { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
|
|
3
|
+
import { Epsilon } from "@babylonjs/core/Maths/math.constants.js";
|
|
4
|
+
/**
|
|
5
|
+
* Class used to transport Vector2 information for pointer events
|
|
6
|
+
*/
|
|
7
|
+
var Vector2WithInfo = /** @class */ (function (_super) {
|
|
8
|
+
__extends(Vector2WithInfo, _super);
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new Vector2WithInfo
|
|
11
|
+
* @param source defines the vector2 data to transport
|
|
12
|
+
* @param buttonIndex defines the current mouse button index
|
|
13
|
+
*/
|
|
14
|
+
function Vector2WithInfo(source,
|
|
15
|
+
/** defines the current mouse button index */
|
|
16
|
+
buttonIndex) {
|
|
17
|
+
if (buttonIndex === void 0) { buttonIndex = 0; }
|
|
18
|
+
var _this = _super.call(this, source.x, source.y) || this;
|
|
19
|
+
_this.buttonIndex = buttonIndex;
|
|
20
|
+
return _this;
|
|
21
|
+
}
|
|
22
|
+
return Vector2WithInfo;
|
|
23
|
+
}(Vector2));
|
|
24
|
+
export { Vector2WithInfo };
|
|
25
|
+
/** Class used to provide 2D matrix features */
|
|
26
|
+
var Matrix2D = /** @class */ (function () {
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new matrix
|
|
29
|
+
* @param m00 defines value for (0, 0)
|
|
30
|
+
* @param m01 defines value for (0, 1)
|
|
31
|
+
* @param m10 defines value for (1, 0)
|
|
32
|
+
* @param m11 defines value for (1, 1)
|
|
33
|
+
* @param m20 defines value for (2, 0)
|
|
34
|
+
* @param m21 defines value for (2, 1)
|
|
35
|
+
*/
|
|
36
|
+
function Matrix2D(m00, m01, m10, m11, m20, m21) {
|
|
37
|
+
/** Gets the internal array of 6 floats used to store matrix data */
|
|
38
|
+
this.m = new Float32Array(6);
|
|
39
|
+
this.fromValues(m00, m01, m10, m11, m20, m21);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Fills the matrix from direct values
|
|
43
|
+
* @param m00 defines value for (0, 0)
|
|
44
|
+
* @param m01 defines value for (0, 1)
|
|
45
|
+
* @param m10 defines value for (1, 0)
|
|
46
|
+
* @param m11 defines value for (1, 1)
|
|
47
|
+
* @param m20 defines value for (2, 0)
|
|
48
|
+
* @param m21 defines value for (2, 1)
|
|
49
|
+
* @returns the current modified matrix
|
|
50
|
+
*/
|
|
51
|
+
Matrix2D.prototype.fromValues = function (m00, m01, m10, m11, m20, m21) {
|
|
52
|
+
this.m[0] = m00;
|
|
53
|
+
this.m[1] = m01;
|
|
54
|
+
this.m[2] = m10;
|
|
55
|
+
this.m[3] = m11;
|
|
56
|
+
this.m[4] = m20;
|
|
57
|
+
this.m[5] = m21;
|
|
58
|
+
return this;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Gets matrix determinant
|
|
62
|
+
* @returns the determinant
|
|
63
|
+
*/
|
|
64
|
+
Matrix2D.prototype.determinant = function () {
|
|
65
|
+
return this.m[0] * this.m[3] - this.m[1] * this.m[2];
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Inverses the matrix and stores it in a target matrix
|
|
69
|
+
* @param result defines the target matrix
|
|
70
|
+
* @returns the current matrix
|
|
71
|
+
*/
|
|
72
|
+
Matrix2D.prototype.invertToRef = function (result) {
|
|
73
|
+
var l0 = this.m[0];
|
|
74
|
+
var l1 = this.m[1];
|
|
75
|
+
var l2 = this.m[2];
|
|
76
|
+
var l3 = this.m[3];
|
|
77
|
+
var l4 = this.m[4];
|
|
78
|
+
var l5 = this.m[5];
|
|
79
|
+
var det = this.determinant();
|
|
80
|
+
if (det < Epsilon * Epsilon) {
|
|
81
|
+
result.m[0] = 0;
|
|
82
|
+
result.m[1] = 0;
|
|
83
|
+
result.m[2] = 0;
|
|
84
|
+
result.m[3] = 0;
|
|
85
|
+
result.m[4] = 0;
|
|
86
|
+
result.m[5] = 0;
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
var detDiv = 1 / det;
|
|
90
|
+
var det4 = l2 * l5 - l3 * l4;
|
|
91
|
+
var det5 = l1 * l4 - l0 * l5;
|
|
92
|
+
result.m[0] = l3 * detDiv;
|
|
93
|
+
result.m[1] = -l1 * detDiv;
|
|
94
|
+
result.m[2] = -l2 * detDiv;
|
|
95
|
+
result.m[3] = l0 * detDiv;
|
|
96
|
+
result.m[4] = det4 * detDiv;
|
|
97
|
+
result.m[5] = det5 * detDiv;
|
|
98
|
+
return this;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Multiplies the current matrix with another one
|
|
102
|
+
* @param other defines the second operand
|
|
103
|
+
* @param result defines the target matrix
|
|
104
|
+
* @returns the current matrix
|
|
105
|
+
*/
|
|
106
|
+
Matrix2D.prototype.multiplyToRef = function (other, result) {
|
|
107
|
+
var l0 = this.m[0];
|
|
108
|
+
var l1 = this.m[1];
|
|
109
|
+
var l2 = this.m[2];
|
|
110
|
+
var l3 = this.m[3];
|
|
111
|
+
var l4 = this.m[4];
|
|
112
|
+
var l5 = this.m[5];
|
|
113
|
+
var r0 = other.m[0];
|
|
114
|
+
var r1 = other.m[1];
|
|
115
|
+
var r2 = other.m[2];
|
|
116
|
+
var r3 = other.m[3];
|
|
117
|
+
var r4 = other.m[4];
|
|
118
|
+
var r5 = other.m[5];
|
|
119
|
+
result.m[0] = l0 * r0 + l1 * r2;
|
|
120
|
+
result.m[1] = l0 * r1 + l1 * r3;
|
|
121
|
+
result.m[2] = l2 * r0 + l3 * r2;
|
|
122
|
+
result.m[3] = l2 * r1 + l3 * r3;
|
|
123
|
+
result.m[4] = l4 * r0 + l5 * r2 + r4;
|
|
124
|
+
result.m[5] = l4 * r1 + l5 * r3 + r5;
|
|
125
|
+
return this;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* Applies the current matrix to a set of 2 floats and stores the result in a vector2
|
|
129
|
+
* @param x defines the x coordinate to transform
|
|
130
|
+
* @param y defines the x coordinate to transform
|
|
131
|
+
* @param result defines the target vector2
|
|
132
|
+
* @returns the current matrix
|
|
133
|
+
*/
|
|
134
|
+
Matrix2D.prototype.transformCoordinates = function (x, y, result) {
|
|
135
|
+
result.x = x * this.m[0] + y * this.m[2] + this.m[4];
|
|
136
|
+
result.y = x * this.m[1] + y * this.m[3] + this.m[5];
|
|
137
|
+
return this;
|
|
138
|
+
};
|
|
139
|
+
// Statics
|
|
140
|
+
/**
|
|
141
|
+
* Creates an identity matrix
|
|
142
|
+
* @returns a new matrix
|
|
143
|
+
*/
|
|
144
|
+
Matrix2D.Identity = function () {
|
|
145
|
+
return new Matrix2D(1, 0, 0, 1, 0, 0);
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Creates an identity matrix and stores it in a target matrix
|
|
149
|
+
* @param result defines the target matrix
|
|
150
|
+
*/
|
|
151
|
+
Matrix2D.IdentityToRef = function (result) {
|
|
152
|
+
result.m[0] = 1;
|
|
153
|
+
result.m[1] = 0;
|
|
154
|
+
result.m[2] = 0;
|
|
155
|
+
result.m[3] = 1;
|
|
156
|
+
result.m[4] = 0;
|
|
157
|
+
result.m[5] = 0;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Creates a translation matrix and stores it in a target matrix
|
|
161
|
+
* @param x defines the x coordinate of the translation
|
|
162
|
+
* @param y defines the y coordinate of the translation
|
|
163
|
+
* @param result defines the target matrix
|
|
164
|
+
*/
|
|
165
|
+
Matrix2D.TranslationToRef = function (x, y, result) {
|
|
166
|
+
result.fromValues(1, 0, 0, 1, x, y);
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Creates a scaling matrix and stores it in a target matrix
|
|
170
|
+
* @param x defines the x coordinate of the scaling
|
|
171
|
+
* @param y defines the y coordinate of the scaling
|
|
172
|
+
* @param result defines the target matrix
|
|
173
|
+
*/
|
|
174
|
+
Matrix2D.ScalingToRef = function (x, y, result) {
|
|
175
|
+
result.fromValues(x, 0, 0, y, 0, 0);
|
|
176
|
+
};
|
|
177
|
+
/**
|
|
178
|
+
* Creates a rotation matrix and stores it in a target matrix
|
|
179
|
+
* @param angle defines the rotation angle
|
|
180
|
+
* @param result defines the target matrix
|
|
181
|
+
*/
|
|
182
|
+
Matrix2D.RotationToRef = function (angle, result) {
|
|
183
|
+
var s = Math.sin(angle);
|
|
184
|
+
var c = Math.cos(angle);
|
|
185
|
+
result.fromValues(c, s, -s, c, 0, 0);
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Composes a matrix from translation, rotation, scaling and parent matrix and stores it in a target matrix
|
|
189
|
+
* @param tx defines the x coordinate of the translation
|
|
190
|
+
* @param ty defines the y coordinate of the translation
|
|
191
|
+
* @param angle defines the rotation angle
|
|
192
|
+
* @param scaleX defines the x coordinate of the scaling
|
|
193
|
+
* @param scaleY defines the y coordinate of the scaling
|
|
194
|
+
* @param parentMatrix defines the parent matrix to multiply by (can be null)
|
|
195
|
+
* @param result defines the target matrix
|
|
196
|
+
*/
|
|
197
|
+
Matrix2D.ComposeToRef = function (tx, ty, angle, scaleX, scaleY, parentMatrix, result) {
|
|
198
|
+
Matrix2D.TranslationToRef(tx, ty, Matrix2D._TempPreTranslationMatrix);
|
|
199
|
+
Matrix2D.ScalingToRef(scaleX, scaleY, Matrix2D._TempScalingMatrix);
|
|
200
|
+
Matrix2D.RotationToRef(angle, Matrix2D._TempRotationMatrix);
|
|
201
|
+
Matrix2D.TranslationToRef(-tx, -ty, Matrix2D._TempPostTranslationMatrix);
|
|
202
|
+
Matrix2D._TempPreTranslationMatrix.multiplyToRef(Matrix2D._TempScalingMatrix, Matrix2D._TempCompose0);
|
|
203
|
+
Matrix2D._TempCompose0.multiplyToRef(Matrix2D._TempRotationMatrix, Matrix2D._TempCompose1);
|
|
204
|
+
if (parentMatrix) {
|
|
205
|
+
Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, Matrix2D._TempCompose2);
|
|
206
|
+
Matrix2D._TempCompose2.multiplyToRef(parentMatrix, result);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, result);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
Matrix2D._TempPreTranslationMatrix = Matrix2D.Identity();
|
|
213
|
+
Matrix2D._TempPostTranslationMatrix = Matrix2D.Identity();
|
|
214
|
+
Matrix2D._TempRotationMatrix = Matrix2D.Identity();
|
|
215
|
+
Matrix2D._TempScalingMatrix = Matrix2D.Identity();
|
|
216
|
+
Matrix2D._TempCompose0 = Matrix2D.Identity();
|
|
217
|
+
Matrix2D._TempCompose1 = Matrix2D.Identity();
|
|
218
|
+
Matrix2D._TempCompose2 = Matrix2D.Identity();
|
|
219
|
+
return Matrix2D;
|
|
220
|
+
}());
|
|
221
|
+
export { Matrix2D };
|
|
222
222
|
//# sourceMappingURL=math2D.js.map
|
package/2D/math2D.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math2D.js","sourceRoot":"","sources":["../../../sourceES6/gui/src/2D/math2D.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { Epsilon } from '@babylonjs/core/Maths/math.constants';\r\n\r\n/**\r\n * Class used to transport Vector2 information for pointer events\r\n */\r\nexport class Vector2WithInfo extends Vector2 {\r\n /**\r\n * Creates a new Vector2WithInfo\r\n * @param source defines the vector2 data to transport\r\n * @param buttonIndex defines the current mouse button index\r\n */\r\n public constructor(source: Vector2,\r\n /** defines the current mouse button index */\r\n public buttonIndex: number = 0) {\r\n super(source.x, source.y);\r\n }\r\n}\r\n\r\n/** Class used to provide 2D matrix features */\r\nexport class Matrix2D {\r\n /** Gets the internal array of 6 floats used to store matrix data */\r\n public m = new Float32Array(6);\r\n\r\n /**\r\n * Creates a new matrix\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n */\r\n constructor(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number) {\r\n this.fromValues(m00, m01, m10, m11, m20, m21);\r\n }\r\n\r\n /**\r\n * Fills the matrix from direct values\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n * @returns the current modified matrix\r\n */\r\n public fromValues(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number): Matrix2D {\r\n this.m[0] = m00; this.m[1] = m01;\r\n this.m[2] = m10; this.m[3] = m11;\r\n this.m[4] = m20; this.m[5] = m21;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets matrix determinant\r\n * @returns the determinant\r\n */\r\n public determinant(): number {\r\n return this.m[0] * this.m[3] - this.m[1] * this.m[2];\r\n }\r\n\r\n /**\r\n * Inverses the matrix and stores it in a target matrix\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public invertToRef(result: Matrix2D): Matrix2D {\r\n let l0 = this.m[0]; let l1 = this.m[1];\r\n let l2 = this.m[2]; let l3 = this.m[3];\r\n let l4 = this.m[4]; let l5 = this.m[5];\r\n\r\n let det = this.determinant();\r\n if (det < (Epsilon * Epsilon)) {\r\n result.m[0] = 0; result.m[1] = 0;\r\n result.m[2] = 0; result.m[3] = 0;\r\n result.m[4] = 0; result.m[5] = 0;\r\n return this;\r\n }\r\n\r\n let detDiv = 1 / det;\r\n\r\n let det4 = l2 * l5 - l3 * l4;\r\n let det5 = l1 * l4 - l0 * l5;\r\n\r\n result.m[0] = l3 * detDiv; result.m[1] = -l1 * detDiv;\r\n result.m[2] = -l2 * detDiv; result.m[3] = l0 * detDiv;\r\n result.m[4] = det4 * detDiv; result.m[5] = det5 * detDiv;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Multiplies the current matrix with another one\r\n * @param other defines the second operand\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public multiplyToRef(other: Matrix2D, result: Matrix2D): Matrix2D {\r\n let l0 = this.m[0]; let l1 = this.m[1];\r\n let l2 = this.m[2]; let l3 = this.m[3];\r\n let l4 = this.m[4]; let l5 = this.m[5];\r\n\r\n let r0 = other.m[0]; let r1 = other.m[1];\r\n let r2 = other.m[2]; let r3 = other.m[3];\r\n let r4 = other.m[4]; let r5 = other.m[5];\r\n\r\n result.m[0] = l0 * r0 + l1 * r2; result.m[1] = l0 * r1 + l1 * r3;\r\n result.m[2] = l2 * r0 + l3 * r2; result.m[3] = l2 * r1 + l3 * r3;\r\n result.m[4] = l4 * r0 + l5 * r2 + r4; result.m[5] = l4 * r1 + l5 * r3 + r5;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Applies the current matrix to a set of 2 floats and stores the result in a vector2\r\n * @param x defines the x coordinate to transform\r\n * @param y defines the x coordinate to transform\r\n * @param result defines the target vector2\r\n * @returns the current matrix\r\n */\r\n public transformCoordinates(x: number, y: number, result: Vector2): Matrix2D {\r\n result.x = x * this.m[0] + y * this.m[2] + this.m[4];\r\n result.y = x * this.m[1] + y * this.m[3] + this.m[5];\r\n\r\n return this;\r\n }\r\n\r\n // Statics\r\n /**\r\n * Creates an identity matrix\r\n * @returns a new matrix\r\n */\r\n public static Identity(): Matrix2D {\r\n return new Matrix2D(1, 0, 0, 1, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates an identity matrix and stores it in a target matrix\r\n * @param result defines the target matrix\r\n */\r\n public static IdentityToRef(result: Matrix2D): void {\r\n result.m[0] = 1;\r\n result.m[1] = 0;\r\n result.m[2] = 0;\r\n result.m[3] = 1;\r\n result.m[4] = 0;\r\n result.m[5] = 0;\r\n }\r\n\r\n /**\r\n * Creates a translation matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the translation\r\n * @param y defines the y coordinate of the translation\r\n * @param result defines the target matrix\r\n */\r\n public static TranslationToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(1, 0, 0, 1, x, y);\r\n }\r\n\r\n /**\r\n * Creates a scaling matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the scaling\r\n * @param y defines the y coordinate of the scaling\r\n * @param result defines the target matrix\r\n */\r\n public static ScalingToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(x, 0, 0, y, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates a rotation matrix and stores it in a target matrix\r\n * @param angle defines the rotation angle\r\n * @param result defines the target matrix\r\n */\r\n public static RotationToRef(angle: number, result: Matrix2D): void {\r\n var s = Math.sin(angle);\r\n var c = Math.cos(angle);\r\n\r\n result.fromValues(c, s, -s, c, 0, 0);\r\n }\r\n\r\n private static _TempPreTranslationMatrix = Matrix2D.Identity();\r\n private static _TempPostTranslationMatrix = Matrix2D.Identity();\r\n private static _TempRotationMatrix = Matrix2D.Identity();\r\n private static _TempScalingMatrix = Matrix2D.Identity();\r\n private static _TempCompose0 = Matrix2D.Identity();\r\n private static _TempCompose1 = Matrix2D.Identity();\r\n private static _TempCompose2 = Matrix2D.Identity();\r\n\r\n /**\r\n * Composes a matrix from translation, rotation, scaling and parent matrix and stores it in a target matrix\r\n * @param tx defines the x coordinate of the translation\r\n * @param ty defines the y coordinate of the translation\r\n * @param angle defines the rotation angle\r\n * @param scaleX defines the x coordinate of the scaling\r\n * @param scaleY defines the y coordinate of the scaling\r\n * @param parentMatrix defines the parent matrix to multiply by (can be null)\r\n * @param result defines the target matrix\r\n */\r\n public static ComposeToRef(tx: number, ty: number, angle: number, scaleX: number, scaleY: number, parentMatrix: Nullable<Matrix2D>, result: Matrix2D): void {\r\n Matrix2D.TranslationToRef(tx, ty, Matrix2D._TempPreTranslationMatrix);\r\n\r\n Matrix2D.ScalingToRef(scaleX, scaleY, Matrix2D._TempScalingMatrix);\r\n\r\n Matrix2D.RotationToRef(angle, Matrix2D._TempRotationMatrix);\r\n\r\n Matrix2D.TranslationToRef(-tx, -ty, Matrix2D._TempPostTranslationMatrix);\r\n\r\n Matrix2D._TempPreTranslationMatrix.multiplyToRef(Matrix2D._TempScalingMatrix, Matrix2D._TempCompose0);\r\n Matrix2D._TempCompose0.multiplyToRef(Matrix2D._TempRotationMatrix, Matrix2D._TempCompose1);\r\n if (parentMatrix) {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, Matrix2D._TempCompose2);\r\n Matrix2D._TempCompose2.multiplyToRef(parentMatrix, result);\r\n } else {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, result);\r\n }\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"math2D.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/math2D.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport { Vector2 } from \"core/Maths/math.vector\";\r\nimport { Epsilon } from \"core/Maths/math.constants\";\r\n\r\n/**\r\n * Class used to transport Vector2 information for pointer events\r\n */\r\nexport class Vector2WithInfo extends Vector2 {\r\n /**\r\n * Creates a new Vector2WithInfo\r\n * @param source defines the vector2 data to transport\r\n * @param buttonIndex defines the current mouse button index\r\n */\r\n public constructor(\r\n source: Vector2,\r\n /** defines the current mouse button index */\r\n public buttonIndex: number = 0\r\n ) {\r\n super(source.x, source.y);\r\n }\r\n}\r\n\r\n/** Class used to provide 2D matrix features */\r\nexport class Matrix2D {\r\n /** Gets the internal array of 6 floats used to store matrix data */\r\n public m = new Float32Array(6);\r\n\r\n /**\r\n * Creates a new matrix\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n */\r\n constructor(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number) {\r\n this.fromValues(m00, m01, m10, m11, m20, m21);\r\n }\r\n\r\n /**\r\n * Fills the matrix from direct values\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n * @returns the current modified matrix\r\n */\r\n public fromValues(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number): Matrix2D {\r\n this.m[0] = m00;\r\n this.m[1] = m01;\r\n this.m[2] = m10;\r\n this.m[3] = m11;\r\n this.m[4] = m20;\r\n this.m[5] = m21;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets matrix determinant\r\n * @returns the determinant\r\n */\r\n public determinant(): number {\r\n return this.m[0] * this.m[3] - this.m[1] * this.m[2];\r\n }\r\n\r\n /**\r\n * Inverses the matrix and stores it in a target matrix\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public invertToRef(result: Matrix2D): Matrix2D {\r\n const l0 = this.m[0];\r\n const l1 = this.m[1];\r\n const l2 = this.m[2];\r\n const l3 = this.m[3];\r\n const l4 = this.m[4];\r\n const l5 = this.m[5];\r\n\r\n const det = this.determinant();\r\n if (det < Epsilon * Epsilon) {\r\n result.m[0] = 0;\r\n result.m[1] = 0;\r\n result.m[2] = 0;\r\n result.m[3] = 0;\r\n result.m[4] = 0;\r\n result.m[5] = 0;\r\n return this;\r\n }\r\n\r\n const detDiv = 1 / det;\r\n\r\n const det4 = l2 * l5 - l3 * l4;\r\n const det5 = l1 * l4 - l0 * l5;\r\n\r\n result.m[0] = l3 * detDiv;\r\n result.m[1] = -l1 * detDiv;\r\n result.m[2] = -l2 * detDiv;\r\n result.m[3] = l0 * detDiv;\r\n result.m[4] = det4 * detDiv;\r\n result.m[5] = det5 * detDiv;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Multiplies the current matrix with another one\r\n * @param other defines the second operand\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public multiplyToRef(other: Matrix2D, result: Matrix2D): Matrix2D {\r\n const l0 = this.m[0];\r\n const l1 = this.m[1];\r\n const l2 = this.m[2];\r\n const l3 = this.m[3];\r\n const l4 = this.m[4];\r\n const l5 = this.m[5];\r\n\r\n const r0 = other.m[0];\r\n const r1 = other.m[1];\r\n const r2 = other.m[2];\r\n const r3 = other.m[3];\r\n const r4 = other.m[4];\r\n const r5 = other.m[5];\r\n\r\n result.m[0] = l0 * r0 + l1 * r2;\r\n result.m[1] = l0 * r1 + l1 * r3;\r\n result.m[2] = l2 * r0 + l3 * r2;\r\n result.m[3] = l2 * r1 + l3 * r3;\r\n result.m[4] = l4 * r0 + l5 * r2 + r4;\r\n result.m[5] = l4 * r1 + l5 * r3 + r5;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Applies the current matrix to a set of 2 floats and stores the result in a vector2\r\n * @param x defines the x coordinate to transform\r\n * @param y defines the x coordinate to transform\r\n * @param result defines the target vector2\r\n * @returns the current matrix\r\n */\r\n public transformCoordinates(x: number, y: number, result: Vector2): Matrix2D {\r\n result.x = x * this.m[0] + y * this.m[2] + this.m[4];\r\n result.y = x * this.m[1] + y * this.m[3] + this.m[5];\r\n\r\n return this;\r\n }\r\n\r\n // Statics\r\n /**\r\n * Creates an identity matrix\r\n * @returns a new matrix\r\n */\r\n public static Identity(): Matrix2D {\r\n return new Matrix2D(1, 0, 0, 1, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates an identity matrix and stores it in a target matrix\r\n * @param result defines the target matrix\r\n */\r\n public static IdentityToRef(result: Matrix2D): void {\r\n result.m[0] = 1;\r\n result.m[1] = 0;\r\n result.m[2] = 0;\r\n result.m[3] = 1;\r\n result.m[4] = 0;\r\n result.m[5] = 0;\r\n }\r\n\r\n /**\r\n * Creates a translation matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the translation\r\n * @param y defines the y coordinate of the translation\r\n * @param result defines the target matrix\r\n */\r\n public static TranslationToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(1, 0, 0, 1, x, y);\r\n }\r\n\r\n /**\r\n * Creates a scaling matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the scaling\r\n * @param y defines the y coordinate of the scaling\r\n * @param result defines the target matrix\r\n */\r\n public static ScalingToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(x, 0, 0, y, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates a rotation matrix and stores it in a target matrix\r\n * @param angle defines the rotation angle\r\n * @param result defines the target matrix\r\n */\r\n public static RotationToRef(angle: number, result: Matrix2D): void {\r\n const s = Math.sin(angle);\r\n const c = Math.cos(angle);\r\n\r\n result.fromValues(c, s, -s, c, 0, 0);\r\n }\r\n\r\n private static _TempPreTranslationMatrix = Matrix2D.Identity();\r\n private static _TempPostTranslationMatrix = Matrix2D.Identity();\r\n private static _TempRotationMatrix = Matrix2D.Identity();\r\n private static _TempScalingMatrix = Matrix2D.Identity();\r\n private static _TempCompose0 = Matrix2D.Identity();\r\n private static _TempCompose1 = Matrix2D.Identity();\r\n private static _TempCompose2 = Matrix2D.Identity();\r\n\r\n /**\r\n * Composes a matrix from translation, rotation, scaling and parent matrix and stores it in a target matrix\r\n * @param tx defines the x coordinate of the translation\r\n * @param ty defines the y coordinate of the translation\r\n * @param angle defines the rotation angle\r\n * @param scaleX defines the x coordinate of the scaling\r\n * @param scaleY defines the y coordinate of the scaling\r\n * @param parentMatrix defines the parent matrix to multiply by (can be null)\r\n * @param result defines the target matrix\r\n */\r\n public static ComposeToRef(tx: number, ty: number, angle: number, scaleX: number, scaleY: number, parentMatrix: Nullable<Matrix2D>, result: Matrix2D): void {\r\n Matrix2D.TranslationToRef(tx, ty, Matrix2D._TempPreTranslationMatrix);\r\n\r\n Matrix2D.ScalingToRef(scaleX, scaleY, Matrix2D._TempScalingMatrix);\r\n\r\n Matrix2D.RotationToRef(angle, Matrix2D._TempRotationMatrix);\r\n\r\n Matrix2D.TranslationToRef(-tx, -ty, Matrix2D._TempPostTranslationMatrix);\r\n\r\n Matrix2D._TempPreTranslationMatrix.multiplyToRef(Matrix2D._TempScalingMatrix, Matrix2D._TempCompose0);\r\n Matrix2D._TempCompose0.multiplyToRef(Matrix2D._TempRotationMatrix, Matrix2D._TempCompose1);\r\n if (parentMatrix) {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, Matrix2D._TempCompose2);\r\n Matrix2D._TempCompose2.multiplyToRef(parentMatrix, result);\r\n } else {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, result);\r\n }\r\n }\r\n}\r\n"]}
|