@babylonjs/gui 5.21.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 (178) hide show
  1. package/2D/adtInstrumentation.js +70 -90
  2. package/2D/adtInstrumentation.js.map +1 -1
  3. package/2D/advancedDynamicTexture.d.ts +6 -0
  4. package/2D/advancedDynamicTexture.js +554 -622
  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 +1067 -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 +60 -72
  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.js +148 -178
  51. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  52. package/2D/controls/sliders/scrollBar.js +64 -80
  53. package/2D/controls/sliders/scrollBar.js.map +1 -1
  54. package/2D/controls/sliders/slider.js +91 -115
  55. package/2D/controls/sliders/slider.js.map +1 -1
  56. package/2D/controls/stackPanel.js +114 -135
  57. package/2D/controls/stackPanel.js.map +1 -1
  58. package/2D/controls/statics.js +5 -5
  59. package/2D/controls/statics.js.map +1 -1
  60. package/2D/controls/textBlock.js +322 -384
  61. package/2D/controls/textBlock.js.map +1 -1
  62. package/2D/controls/textWrapper.js +27 -41
  63. package/2D/controls/textWrapper.js.map +1 -1
  64. package/2D/controls/toggleButton.js +105 -121
  65. package/2D/controls/toggleButton.js.map +1 -1
  66. package/2D/controls/virtualKeyboard.js +101 -123
  67. package/2D/controls/virtualKeyboard.js.map +1 -1
  68. package/2D/math2D.js +62 -70
  69. package/2D/math2D.js.map +1 -1
  70. package/2D/measure.js +30 -32
  71. package/2D/measure.js.map +1 -1
  72. package/2D/multiLinePoint.js +71 -89
  73. package/2D/multiLinePoint.js.map +1 -1
  74. package/2D/style.js +55 -73
  75. package/2D/style.js.map +1 -1
  76. package/2D/valueAndUnit.js +71 -104
  77. package/2D/valueAndUnit.js.map +1 -1
  78. package/2D/xmlLoader.js +70 -84
  79. package/2D/xmlLoader.js.map +1 -1
  80. package/3D/behaviors/defaultBehavior.js +40 -59
  81. package/3D/behaviors/defaultBehavior.js.map +1 -1
  82. package/3D/controls/abstractButton3D.js +8 -12
  83. package/3D/controls/abstractButton3D.js.map +1 -1
  84. package/3D/controls/button3D.js +30 -35
  85. package/3D/controls/button3D.js.map +1 -1
  86. package/3D/controls/container3D.js +57 -71
  87. package/3D/controls/container3D.js.map +1 -1
  88. package/3D/controls/contentDisplay3D.js +47 -60
  89. package/3D/controls/contentDisplay3D.js.map +1 -1
  90. package/3D/controls/control3D.js +123 -158
  91. package/3D/controls/control3D.js.map +1 -1
  92. package/3D/controls/cylinderPanel.js +28 -38
  93. package/3D/controls/cylinderPanel.js.map +1 -1
  94. package/3D/controls/handMenu.js +20 -29
  95. package/3D/controls/handMenu.js.map +1 -1
  96. package/3D/controls/holographicBackplate.js +52 -72
  97. package/3D/controls/holographicBackplate.js.map +1 -1
  98. package/3D/controls/holographicButton.js +160 -200
  99. package/3D/controls/holographicButton.js.map +1 -1
  100. package/3D/controls/holographicSlate.js +176 -206
  101. package/3D/controls/holographicSlate.js.map +1 -1
  102. package/3D/controls/meshButton3D.js +24 -30
  103. package/3D/controls/meshButton3D.js.map +1 -1
  104. package/3D/controls/nearMenu.js +57 -71
  105. package/3D/controls/nearMenu.js.map +1 -1
  106. package/3D/controls/planePanel.js +6 -13
  107. package/3D/controls/planePanel.js.map +1 -1
  108. package/3D/controls/scatterPanel.js +43 -54
  109. package/3D/controls/scatterPanel.js.map +1 -1
  110. package/3D/controls/slider3D.js +168 -222
  111. package/3D/controls/slider3D.js.map +1 -1
  112. package/3D/controls/spherePanel.js +29 -39
  113. package/3D/controls/spherePanel.js.map +1 -1
  114. package/3D/controls/stackPanel3D.js +36 -49
  115. package/3D/controls/stackPanel3D.js.map +1 -1
  116. package/3D/controls/touchButton3D.js +126 -154
  117. package/3D/controls/touchButton3D.js.map +1 -1
  118. package/3D/controls/touchHolographicButton.js +223 -272
  119. package/3D/controls/touchHolographicButton.js.map +1 -1
  120. package/3D/controls/touchHolographicMenu.js +55 -66
  121. package/3D/controls/touchHolographicMenu.js.map +1 -1
  122. package/3D/controls/touchMeshButton3D.js +24 -30
  123. package/3D/controls/touchMeshButton3D.js.map +1 -1
  124. package/3D/controls/volumeBasedPanel.js +85 -107
  125. package/3D/controls/volumeBasedPanel.js.map +1 -1
  126. package/3D/gizmos/gizmoHandle.js +68 -103
  127. package/3D/gizmos/gizmoHandle.js.map +1 -1
  128. package/3D/gizmos/slateGizmo.js +165 -182
  129. package/3D/gizmos/slateGizmo.js.map +1 -1
  130. package/3D/gui3DManager.js +76 -101
  131. package/3D/gui3DManager.js.map +1 -1
  132. package/3D/materials/fluent/fluentMaterial.js +110 -119
  133. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  134. package/3D/materials/fluent/shaders/fluent.fragment.js +20 -3
  135. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
  136. package/3D/materials/fluent/shaders/fluent.vertex.js +11 -3
  137. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
  138. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +168 -177
  139. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  140. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +9 -3
  141. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
  142. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +15 -3
  143. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
  144. package/3D/materials/fluentButton/fluentButtonMaterial.js +205 -213
  145. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  146. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +6 -3
  147. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
  148. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +6 -3
  149. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
  150. package/3D/materials/handle/handleMaterial.js +56 -69
  151. package/3D/materials/handle/handleMaterial.js.map +1 -1
  152. package/3D/materials/handle/shaders/handle.fragment.js +3 -3
  153. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
  154. package/3D/materials/handle/shaders/handle.vertex.js +3 -3
  155. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
  156. package/3D/materials/mrdl/mrdlBackplateMaterial.js +158 -166
  157. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  158. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +322 -330
  159. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  160. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +322 -330
  161. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  162. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +9 -3
  163. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
  164. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +6 -3
  165. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
  166. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +24 -3
  167. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
  168. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +12 -3
  169. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
  170. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +24 -3
  171. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
  172. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +12 -3
  173. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
  174. package/3D/vector3WithInfo.js +6 -12
  175. package/3D/vector3WithInfo.js.map +1 -1
  176. package/legacy/legacy.js +1 -1
  177. package/legacy/legacy.js.map +1 -1
  178. package/package.json +2 -5
@@ -1,4 +1,3 @@
1
- import { __extends } from "tslib";
2
1
  import { Tools } from "@babylonjs/core/Misc/tools.js";
3
2
  import { Matrix, TmpVectors, Vector3 } from "@babylonjs/core/Maths/math.vector.js";
4
3
  import { VolumeBasedPanel } from "./volumeBasedPanel.js";
@@ -7,39 +6,32 @@ import { Axis, Space } from "@babylonjs/core/Maths/math.axis.js";
7
6
  /**
8
7
  * Class used to create a container panel deployed on the surface of a cylinder
9
8
  */
10
- var CylinderPanel = /** @class */ (function (_super) {
11
- __extends(CylinderPanel, _super);
12
- function CylinderPanel() {
13
- var _this = _super !== null && _super.apply(this, arguments) || this;
14
- _this._radius = 5.0;
15
- return _this;
9
+ export class CylinderPanel extends VolumeBasedPanel {
10
+ constructor() {
11
+ super(...arguments);
12
+ this._radius = 5.0;
16
13
  }
17
- Object.defineProperty(CylinderPanel.prototype, "radius", {
18
- /**
19
- * Gets or sets the radius of the cylinder where to project controls (5 by default)
20
- */
21
- get: function () {
22
- return this._radius;
23
- },
24
- set: function (value) {
25
- var _this = this;
26
- if (this._radius === value) {
27
- return;
28
- }
29
- this._radius = value;
30
- Tools.SetImmediate(function () {
31
- _this._arrangeChildren();
32
- });
33
- },
34
- enumerable: false,
35
- configurable: true
36
- });
37
- CylinderPanel.prototype._mapGridNode = function (control, nodePosition) {
38
- var mesh = control.mesh;
14
+ /**
15
+ * Gets or sets the radius of the cylinder where to project controls (5 by default)
16
+ */
17
+ get radius() {
18
+ return this._radius;
19
+ }
20
+ set radius(value) {
21
+ if (this._radius === value) {
22
+ return;
23
+ }
24
+ this._radius = value;
25
+ Tools.SetImmediate(() => {
26
+ this._arrangeChildren();
27
+ });
28
+ }
29
+ _mapGridNode(control, nodePosition) {
30
+ const mesh = control.mesh;
39
31
  if (!mesh) {
40
32
  return;
41
33
  }
42
- var newPos = this._cylindricalMapping(nodePosition);
34
+ const newPos = this._cylindricalMapping(nodePosition);
43
35
  control.position = newPos;
44
36
  switch (this.orientation) {
45
37
  case Container3D.FACEORIGIN_ORIENTATION:
@@ -54,14 +46,12 @@ var CylinderPanel = /** @class */ (function (_super) {
54
46
  mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);
55
47
  break;
56
48
  }
57
- };
58
- CylinderPanel.prototype._cylindricalMapping = function (source) {
59
- var newPos = new Vector3(0, source.y, this._radius);
60
- var yAngle = source.x / this._radius;
49
+ }
50
+ _cylindricalMapping(source) {
51
+ const newPos = new Vector3(0, source.y, this._radius);
52
+ const yAngle = source.x / this._radius;
61
53
  Matrix.RotationYawPitchRollToRef(yAngle, 0, 0, TmpVectors.Matrix[0]);
62
54
  return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);
63
- };
64
- return CylinderPanel;
65
- }(VolumeBasedPanel));
66
- export { CylinderPanel };
55
+ }
56
+ }
67
57
  //# sourceMappingURL=cylinderPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cylinderPanel.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/cylinderPanel.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,sCAAwB;AACxC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA+B;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,2CAA6B;AAEnD;;GAEG;AACH;IAAmC,iCAAgB;IAAnD;QAAA,qEAuDC;QAtDW,aAAO,GAAG,GAAG,CAAC;;IAsD1B,CAAC;IAjDG,sBAAW,iCAAM;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;aAED,UAAkB,KAAY;YAA9B,iBAUC;YATG,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;gBACxB,OAAO;aACV;YAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YAErB,KAAK,CAAC,YAAY,CAAC;gBACf,KAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;QACP,CAAC;;;OAZA;IAcS,oCAAY,GAAtB,UAAuB,OAAkB,EAAE,YAAqB;QAC5D,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QACD,IAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAE1B,QAAQ,IAAI,CAAC,WAAW,EAAE;YACtB,KAAK,WAAW,CAAC,sBAAsB;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,MAAM;YACV,KAAK,WAAW,CAAC,8BAA8B;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM;YACV,KAAK,WAAW,CAAC,uBAAuB;gBACpC,MAAM;YACV,KAAK,WAAW,CAAC,+BAA+B;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;SACb;IACL,CAAC;IAEO,2CAAmB,GAA3B,UAA4B,MAAe;QACvC,IAAM,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAEvC,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IACL,oBAAC;AAAD,CAAC,AAvDD,CAAmC,gBAAgB,GAuDlD","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\nimport type { float } from \"core/types\";\r\n\r\nimport { VolumeBasedPanel } from \"./volumeBasedPanel\";\r\nimport type { Control3D } from \"./control3D\";\r\nimport { Container3D } from \"./container3D\";\r\nimport { Axis, Space } from \"core/Maths/math.axis\";\r\n\r\n/**\r\n * Class used to create a container panel deployed on the surface of a cylinder\r\n */\r\nexport class CylinderPanel extends VolumeBasedPanel {\r\n private _radius = 5.0;\r\n\r\n /**\r\n * Gets or sets the radius of the cylinder where to project controls (5 by default)\r\n */\r\n public get radius(): float {\r\n return this._radius;\r\n }\r\n\r\n public set radius(value: float) {\r\n if (this._radius === value) {\r\n return;\r\n }\r\n\r\n this._radius = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n protected _mapGridNode(control: Control3D, nodePosition: Vector3) {\r\n const mesh = control.mesh;\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n const newPos = this._cylindricalMapping(nodePosition);\r\n control.position = newPos;\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n mesh.lookAt(new Vector3(2 * newPos.x, newPos.y, 2 * newPos.z));\r\n break;\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(-newPos.x, newPos.y, -newPos.z));\r\n break;\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);\r\n break;\r\n }\r\n }\r\n\r\n private _cylindricalMapping(source: Vector3) {\r\n const newPos = new Vector3(0, source.y, this._radius);\r\n\r\n const yAngle = source.x / this._radius;\r\n\r\n Matrix.RotationYawPitchRollToRef(yAngle, 0, 0, TmpVectors.Matrix[0]);\r\n\r\n return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"cylinderPanel.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/cylinderPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,sCAAwB;AACxC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,6CAA+B;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,2CAA6B;AAEnD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IAAnD;;QACY,YAAO,GAAG,GAAG,CAAC;IAsD1B,CAAC;IApDG;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAW,MAAM,CAAC,KAAY;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YACxB,OAAO;SACV;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAES,YAAY,CAAC,OAAkB,EAAE,YAAqB;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAE1B,QAAQ,IAAI,CAAC,WAAW,EAAE;YACtB,KAAK,WAAW,CAAC,sBAAsB;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,MAAM;YACV,KAAK,WAAW,CAAC,8BAA8B;gBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM;YACV,KAAK,WAAW,CAAC,uBAAuB;gBACpC,MAAM;YACV,KAAK,WAAW,CAAC,+BAA+B;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;SACb;IACL,CAAC;IAEO,mBAAmB,CAAC,MAAe;QACvC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAEvC,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;CACJ","sourcesContent":["import { Tools } from \"core/Misc/tools\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"core/Maths/math.vector\";\r\nimport type { float } from \"core/types\";\r\n\r\nimport { VolumeBasedPanel } from \"./volumeBasedPanel\";\r\nimport type { Control3D } from \"./control3D\";\r\nimport { Container3D } from \"./container3D\";\r\nimport { Axis, Space } from \"core/Maths/math.axis\";\r\n\r\n/**\r\n * Class used to create a container panel deployed on the surface of a cylinder\r\n */\r\nexport class CylinderPanel extends VolumeBasedPanel {\r\n private _radius = 5.0;\r\n\r\n /**\r\n * Gets or sets the radius of the cylinder where to project controls (5 by default)\r\n */\r\n public get radius(): float {\r\n return this._radius;\r\n }\r\n\r\n public set radius(value: float) {\r\n if (this._radius === value) {\r\n return;\r\n }\r\n\r\n this._radius = value;\r\n\r\n Tools.SetImmediate(() => {\r\n this._arrangeChildren();\r\n });\r\n }\r\n\r\n protected _mapGridNode(control: Control3D, nodePosition: Vector3) {\r\n const mesh = control.mesh;\r\n\r\n if (!mesh) {\r\n return;\r\n }\r\n const newPos = this._cylindricalMapping(nodePosition);\r\n control.position = newPos;\r\n\r\n switch (this.orientation) {\r\n case Container3D.FACEORIGIN_ORIENTATION:\r\n mesh.lookAt(new Vector3(2 * newPos.x, newPos.y, 2 * newPos.z));\r\n break;\r\n case Container3D.FACEORIGINREVERSED_ORIENTATION:\r\n mesh.lookAt(new Vector3(-newPos.x, newPos.y, -newPos.z));\r\n break;\r\n case Container3D.FACEFORWARD_ORIENTATION:\r\n break;\r\n case Container3D.FACEFORWARDREVERSED_ORIENTATION:\r\n mesh.rotate(Axis.Y, Math.PI, Space.LOCAL);\r\n break;\r\n }\r\n }\r\n\r\n private _cylindricalMapping(source: Vector3) {\r\n const newPos = new Vector3(0, source.y, this._radius);\r\n\r\n const yAngle = source.x / this._radius;\r\n\r\n Matrix.RotationYawPitchRollToRef(yAngle, 0, 0, TmpVectors.Matrix[0]);\r\n\r\n return Vector3.TransformNormal(newPos, TmpVectors.Matrix[0]);\r\n }\r\n}\r\n"]}
@@ -1,48 +1,39 @@
1
- import { __extends } from "tslib";
2
1
  import { TouchHolographicMenu } from "./touchHolographicMenu.js";
3
2
  import { HandConstraintBehavior } from "@babylonjs/core/Behaviors/Meshes/handConstraintBehavior.js";
4
3
  /**
5
4
  * Hand menu that displays buttons and floats around the hand.
6
5
  * @since 5.0.0
7
6
  */
8
- var HandMenu = /** @class */ (function (_super) {
9
- __extends(HandMenu, _super);
7
+ export class HandMenu extends TouchHolographicMenu {
10
8
  /**
11
9
  * Creates a hand menu GUI 3D control
12
10
  * @param xr the WebXRExperienceHelper used to link this control to the enabled WebXRHandTracking feature
13
11
  * @param name name of the hand menu
14
12
  */
15
- function HandMenu(xr, name) {
16
- var _this = _super.call(this, name) || this;
17
- _this._handConstraintBehavior = new HandConstraintBehavior();
18
- _this._handConstraintBehavior.linkToXRExperience(xr);
19
- _this.backPlateMargin = 0.15;
20
- _this.rows = 3;
21
- return _this;
13
+ constructor(xr, name) {
14
+ super(name);
15
+ this._handConstraintBehavior = new HandConstraintBehavior();
16
+ this._handConstraintBehavior.linkToXRExperience(xr);
17
+ this.backPlateMargin = 0.15;
18
+ this.rows = 3;
22
19
  }
23
- Object.defineProperty(HandMenu.prototype, "handConstraintBehavior", {
24
- /**
25
- * The hand constraint behavior setting the transformation of this node
26
- */
27
- get: function () {
28
- return this._handConstraintBehavior;
29
- },
30
- enumerable: false,
31
- configurable: true
32
- });
33
- HandMenu.prototype._createNode = function (scene) {
34
- var node = _super.prototype._createNode.call(this, scene);
20
+ /**
21
+ * The hand constraint behavior setting the transformation of this node
22
+ */
23
+ get handConstraintBehavior() {
24
+ return this._handConstraintBehavior;
25
+ }
26
+ _createNode(scene) {
27
+ const node = super._createNode(scene);
35
28
  this._handConstraintBehavior.attach(node);
36
29
  return node;
37
- };
30
+ }
38
31
  /**
39
32
  * Disposes the hand menu
40
33
  */
41
- HandMenu.prototype.dispose = function () {
42
- _super.prototype.dispose.call(this);
34
+ dispose() {
35
+ super.dispose();
43
36
  this._handConstraintBehavior.detach();
44
- };
45
- return HandMenu;
46
- }(TouchHolographicMenu));
47
- export { HandMenu };
37
+ }
38
+ }
48
39
  //# sourceMappingURL=handMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handMenu.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/handMenu.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,mEAAqD;AAGtF;;;GAGG;AACH;IAA8B,4BAAoB;IAkB9C;;;;OAIG;IACH,kBAAY,EAAyB,EAAE,IAAa;QAApD,YACI,kBAAM,IAAI,CAAC,SAMd;QAJG,KAAI,CAAC,uBAAuB,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC5D,KAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpD,KAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,KAAI,CAAC,IAAI,GAAG,CAAC,CAAC;;IAClB,CAAC;IAxBD,sBAAW,4CAAsB;QAHjC;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,uBAAuB,CAAC;QACxC,CAAC;;;OAAA;IAES,8BAAW,GAArB,UAAsB,KAAY;QAC9B,IAAM,IAAI,GAAG,iBAAM,WAAW,YAAC,KAAK,CAAU,CAAC;QAE/C,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAgBD;;OAEG;IACI,0BAAO,GAAd;QACI,iBAAM,OAAO,WAAE,CAAC;QAEhB,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;IACL,eAAC;AAAD,CAAC,AAxCD,CAA8B,oBAAoB,GAwCjD","sourcesContent":["import type { Scene } from \"core/scene\";\r\nimport type { TransformNode } from \"core/Meshes/transformNode\";\r\nimport type { Nullable } from \"core/types\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { TouchHolographicMenu } from \"./touchHolographicMenu\";\r\nimport { HandConstraintBehavior } from \"core/Behaviors/Meshes/handConstraintBehavior\";\r\nimport type { WebXRExperienceHelper } from \"core/XR/webXRExperienceHelper\";\r\n\r\n/**\r\n * Hand menu that displays buttons and floats around the hand.\r\n * @since 5.0.0\r\n */\r\nexport class HandMenu extends TouchHolographicMenu {\r\n private _handConstraintBehavior: HandConstraintBehavior;\r\n\r\n /**\r\n * The hand constraint behavior setting the transformation of this node\r\n */\r\n public get handConstraintBehavior() {\r\n return this._handConstraintBehavior;\r\n }\r\n\r\n protected _createNode(scene: Scene): Nullable<TransformNode> {\r\n const node = super._createNode(scene)! as Mesh;\r\n\r\n this._handConstraintBehavior.attach(node);\r\n\r\n return node;\r\n }\r\n\r\n /**\r\n * Creates a hand menu GUI 3D control\r\n * @param xr the WebXRExperienceHelper used to link this control to the enabled WebXRHandTracking feature\r\n * @param name name of the hand menu\r\n */\r\n constructor(xr: WebXRExperienceHelper, name?: string) {\r\n super(name);\r\n\r\n this._handConstraintBehavior = new HandConstraintBehavior();\r\n this._handConstraintBehavior.linkToXRExperience(xr);\r\n this.backPlateMargin = 0.15;\r\n this.rows = 3;\r\n }\r\n\r\n /**\r\n * Disposes the hand menu\r\n */\r\n public dispose() {\r\n super.dispose();\r\n\r\n this._handConstraintBehavior.detach();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"handMenu.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/handMenu.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,mEAAqD;AAGtF;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,oBAAoB;IAkB9C;;;;OAIG;IACH,YAAY,EAAyB,EAAE,IAAa;QAChD,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,uBAAuB,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC5D,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAClB,CAAC;IA3BD;;OAEG;IACH,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAES,WAAW,CAAC,KAAY;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAU,CAAC;QAE/C,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAgBD;;OAEG;IACI,OAAO;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;CACJ","sourcesContent":["import type { Scene } from \"core/scene\";\r\nimport type { TransformNode } from \"core/Meshes/transformNode\";\r\nimport type { Nullable } from \"core/types\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { TouchHolographicMenu } from \"./touchHolographicMenu\";\r\nimport { HandConstraintBehavior } from \"core/Behaviors/Meshes/handConstraintBehavior\";\r\nimport type { WebXRExperienceHelper } from \"core/XR/webXRExperienceHelper\";\r\n\r\n/**\r\n * Hand menu that displays buttons and floats around the hand.\r\n * @since 5.0.0\r\n */\r\nexport class HandMenu extends TouchHolographicMenu {\r\n private _handConstraintBehavior: HandConstraintBehavior;\r\n\r\n /**\r\n * The hand constraint behavior setting the transformation of this node\r\n */\r\n public get handConstraintBehavior() {\r\n return this._handConstraintBehavior;\r\n }\r\n\r\n protected _createNode(scene: Scene): Nullable<TransformNode> {\r\n const node = super._createNode(scene)! as Mesh;\r\n\r\n this._handConstraintBehavior.attach(node);\r\n\r\n return node;\r\n }\r\n\r\n /**\r\n * Creates a hand menu GUI 3D control\r\n * @param xr the WebXRExperienceHelper used to link this control to the enabled WebXRHandTracking feature\r\n * @param name name of the hand menu\r\n */\r\n constructor(xr: WebXRExperienceHelper, name?: string) {\r\n super(name);\r\n\r\n this._handConstraintBehavior = new HandConstraintBehavior();\r\n this._handConstraintBehavior.linkToXRExperience(xr);\r\n this.backPlateMargin = 0.15;\r\n this.rows = 3;\r\n }\r\n\r\n /**\r\n * Disposes the hand menu\r\n */\r\n public dispose() {\r\n super.dispose();\r\n\r\n this._handConstraintBehavior.detach();\r\n }\r\n}\r\n"]}
@@ -1,4 +1,3 @@
1
- import { __extends } from "tslib";
2
1
  import { CreateBox } from "@babylonjs/core/Meshes/Builders/boxBuilder.js";
3
2
  import { FluentBackplateMaterial } from "../materials/fluentBackplate/fluentBackplateMaterial.js";
4
3
  import { Control3D } from "./control3D.js";
@@ -7,82 +6,65 @@ import { SceneLoader } from "@babylonjs/core/Loading/sceneLoader.js";
7
6
  * Class used to create a holographic backplate in 3D
8
7
  * @since 5.0.0
9
8
  */
10
- var HolographicBackplate = /** @class */ (function (_super) {
11
- __extends(HolographicBackplate, _super);
9
+ export class HolographicBackplate extends Control3D {
12
10
  /**
13
11
  * Creates a new holographic backplate
14
12
  * @param name defines the control name
15
13
  * @param _shareMaterials
16
14
  */
17
- function HolographicBackplate(name, _shareMaterials) {
18
- if (_shareMaterials === void 0) { _shareMaterials = true; }
19
- var _this = _super.call(this, name) || this;
20
- _this._shareMaterials = _shareMaterials;
21
- return _this;
15
+ constructor(name, _shareMaterials = true) {
16
+ super(name);
17
+ this._shareMaterials = _shareMaterials;
22
18
  }
23
- Object.defineProperty(HolographicBackplate.prototype, "renderingGroupId", {
24
- get: function () {
25
- return this._model.renderingGroupId;
26
- },
27
- /**
28
- * Rendering ground id of the backplate mesh.
29
- */
30
- set: function (id) {
31
- this._model.renderingGroupId = id;
32
- },
33
- enumerable: false,
34
- configurable: true
35
- });
36
- Object.defineProperty(HolographicBackplate.prototype, "material", {
37
- /**
38
- * Gets the material used by the backplate
39
- */
40
- get: function () {
41
- return this._material;
42
- },
43
- enumerable: false,
44
- configurable: true
45
- });
46
- Object.defineProperty(HolographicBackplate.prototype, "shareMaterials", {
47
- /**
48
- * Gets a boolean indicating if this backplate shares its material with other HolographicBackplates
49
- */
50
- get: function () {
51
- return this._shareMaterials;
52
- },
53
- enumerable: false,
54
- configurable: true
55
- });
56
- HolographicBackplate.prototype._getTypeName = function () {
19
+ /**
20
+ * Rendering ground id of the backplate mesh.
21
+ */
22
+ set renderingGroupId(id) {
23
+ this._model.renderingGroupId = id;
24
+ }
25
+ get renderingGroupId() {
26
+ return this._model.renderingGroupId;
27
+ }
28
+ /**
29
+ * Gets the material used by the backplate
30
+ */
31
+ get material() {
32
+ return this._material;
33
+ }
34
+ /**
35
+ * Gets a boolean indicating if this backplate shares its material with other HolographicBackplates
36
+ */
37
+ get shareMaterials() {
38
+ return this._shareMaterials;
39
+ }
40
+ _getTypeName() {
57
41
  return "HolographicBackplate";
58
- };
42
+ }
59
43
  // Mesh association
60
- HolographicBackplate.prototype._createNode = function (scene) {
61
- var _this = this;
62
- var _a;
63
- var collisionMesh = CreateBox(((_a = this.name) !== null && _a !== void 0 ? _a : "HolographicBackplate") + "_CollisionMesh", {
44
+ _createNode(scene) {
45
+ const collisionMesh = CreateBox((this.name ?? "HolographicBackplate") + "_CollisionMesh", {
64
46
  width: 1.0,
65
47
  height: 1.0,
66
48
  depth: 1.0,
67
49
  }, scene);
68
50
  collisionMesh.isPickable = true;
69
51
  collisionMesh.visibility = 0;
70
- SceneLoader.ImportMeshAsync(undefined, HolographicBackplate.MODEL_BASE_URL, HolographicBackplate.MODEL_FILENAME, scene).then(function (result) {
71
- var importedModel = result.meshes[1];
72
- importedModel.name = "".concat(_this.name, "_frontPlate");
52
+ SceneLoader.ImportMeshAsync(undefined, HolographicBackplate.MODEL_BASE_URL, HolographicBackplate.MODEL_FILENAME, scene).then((result) => {
53
+ const importedModel = result.meshes[1];
54
+ importedModel.name = `${this.name}_frontPlate`;
73
55
  importedModel.isPickable = false;
74
56
  importedModel.parent = collisionMesh;
75
- if (_this._material) {
76
- importedModel.material = _this._material;
57
+ if (this._material) {
58
+ importedModel.material = this._material;
77
59
  }
78
- _this._model = importedModel;
60
+ this._model = importedModel;
79
61
  });
80
62
  return collisionMesh;
81
- };
82
- HolographicBackplate.prototype._createMaterial = function (mesh) {
63
+ }
64
+ _createMaterial(mesh) {
83
65
  this._material = new FluentBackplateMaterial(this.name + " Material", mesh.getScene());
84
- };
85
- HolographicBackplate.prototype._affectMaterial = function (mesh) {
66
+ }
67
+ _affectMaterial(mesh) {
86
68
  // Back
87
69
  if (this._shareMaterials) {
88
70
  if (!this._host._touchSharedMaterials["fluentBackplateMaterial"]) {
@@ -96,26 +78,24 @@ var HolographicBackplate = /** @class */ (function (_super) {
96
78
  else {
97
79
  this._createMaterial(mesh);
98
80
  }
99
- };
81
+ }
100
82
  /**
101
83
  * Releases all associated resources
102
84
  */
103
- HolographicBackplate.prototype.dispose = function () {
104
- _super.prototype.dispose.call(this); // will dispose main mesh ie. back plate
85
+ dispose() {
86
+ super.dispose(); // will dispose main mesh ie. back plate
105
87
  if (!this.shareMaterials) {
106
88
  this._material.dispose();
107
89
  }
108
90
  this._model.dispose();
109
- };
110
- /**
111
- * Base Url for the button model.
112
- */
113
- HolographicBackplate.MODEL_BASE_URL = "https://assets.babylonjs.com/meshes/MRTK/";
114
- /**
115
- * File name for the button model.
116
- */
117
- HolographicBackplate.MODEL_FILENAME = "mrtk-fluent-backplate.glb";
118
- return HolographicBackplate;
119
- }(Control3D));
120
- export { HolographicBackplate };
91
+ }
92
+ }
93
+ /**
94
+ * Base Url for the button model.
95
+ */
96
+ HolographicBackplate.MODEL_BASE_URL = "https://assets.babylonjs.com/meshes/MRTK/";
97
+ /**
98
+ * File name for the button model.
99
+ */
100
+ HolographicBackplate.MODEL_FILENAME = "mrtk-fluent-backplate.glb";
121
101
  //# sourceMappingURL=holographicBackplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"holographicBackplate.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/holographicBackplate.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TransformNode } from \"core/Meshes/transformNode\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { CreateBox } from \"core/Meshes/Builders/boxBuilder\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { FluentBackplateMaterial } from \"../materials/fluentBackplate/fluentBackplateMaterial\";\r\nimport { Control3D } from \"./control3D\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\n\r\n/**\r\n * Class used to create a holographic backplate in 3D\r\n * @since 5.0.0\r\n */\r\nexport class HolographicBackplate extends Control3D {\r\n /**\r\n * Base Url for the button model.\r\n */\r\n public static MODEL_BASE_URL: string = \"https://assets.babylonjs.com/meshes/MRTK/\";\r\n /**\r\n * File name for the button model.\r\n */\r\n public static MODEL_FILENAME: string = \"mrtk-fluent-backplate.glb\";\r\n\r\n private _model: AbstractMesh;\r\n private _material: FluentBackplateMaterial;\r\n\r\n /**\r\n * Rendering ground id of the backplate mesh.\r\n */\r\n public set renderingGroupId(id: number) {\r\n this._model.renderingGroupId = id;\r\n }\r\n public get renderingGroupId(): number {\r\n return this._model.renderingGroupId;\r\n }\r\n\r\n /**\r\n * Gets the material used by the backplate\r\n */\r\n public get material(): FluentBackplateMaterial {\r\n return this._material;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating if this backplate shares its material with other HolographicBackplates\r\n */\r\n public get shareMaterials(): boolean {\r\n return this._shareMaterials;\r\n }\r\n\r\n /**\r\n * Creates a new holographic backplate\r\n * @param name defines the control name\r\n * @param _shareMaterials\r\n */\r\n constructor(name?: string, private _shareMaterials = true) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"HolographicBackplate\";\r\n }\r\n\r\n // Mesh association\r\n protected _createNode(scene: Scene): TransformNode {\r\n const collisionMesh = CreateBox(\r\n (this.name ?? \"HolographicBackplate\") + \"_CollisionMesh\",\r\n {\r\n width: 1.0,\r\n height: 1.0,\r\n depth: 1.0,\r\n },\r\n scene\r\n );\r\n collisionMesh.isPickable = true;\r\n collisionMesh.visibility = 0;\r\n\r\n SceneLoader.ImportMeshAsync(undefined, HolographicBackplate.MODEL_BASE_URL, HolographicBackplate.MODEL_FILENAME, scene).then((result) => {\r\n const importedModel = result.meshes[1];\r\n importedModel.name = `${this.name}_frontPlate`;\r\n importedModel.isPickable = false;\r\n importedModel.parent = collisionMesh;\r\n if (this._material) {\r\n importedModel.material = this._material;\r\n }\r\n this._model = importedModel;\r\n });\r\n\r\n return collisionMesh;\r\n }\r\n\r\n private _createMaterial(mesh: Mesh) {\r\n this._material = new FluentBackplateMaterial(this.name + \" Material\", mesh.getScene());\r\n }\r\n\r\n protected _affectMaterial(mesh: Mesh) {\r\n // Back\r\n if (this._shareMaterials) {\r\n if (!this._host._touchSharedMaterials[\"fluentBackplateMaterial\"]) {\r\n this._createMaterial(mesh);\r\n this._host._touchSharedMaterials[\"fluentBackplateMaterial\"] = this._material;\r\n } else {\r\n this._material = this._host._touchSharedMaterials[\"fluentBackplateMaterial\"] as FluentBackplateMaterial;\r\n }\r\n } else {\r\n this._createMaterial(mesh);\r\n }\r\n }\r\n\r\n /**\r\n * Releases all associated resources\r\n */\r\n public dispose() {\r\n super.dispose(); // will dispose main mesh ie. back plate\r\n\r\n if (!this.shareMaterials) {\r\n this._material.dispose();\r\n }\r\n\r\n this._model.dispose();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"holographicBackplate.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/3D/controls/holographicBackplate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,sDAAwC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,+CAAiC;AAGvD;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAqC/C;;;;OAIG;IACH,YAAY,IAAa,EAAU,kBAAkB,IAAI;QACrD,KAAK,CAAC,IAAI,CAAC,CAAC;QADmB,oBAAe,GAAf,eAAe,CAAO;IAEzD,CAAC;IA/BD;;OAEG;IACH,IAAW,gBAAgB,CAAC,EAAU;QAClC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC;IACtC,CAAC;IACD,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAWS,YAAY;QAClB,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAED,mBAAmB;IACT,WAAW,CAAC,KAAY;QAC9B,MAAM,aAAa,GAAG,SAAS,CAC3B,CAAC,IAAI,CAAC,IAAI,IAAI,sBAAsB,CAAC,GAAG,gBAAgB,EACxD;YACI,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;SACb,EACD,KAAK,CACR,CAAC;QACF,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;QAChC,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC;QAE7B,WAAW,CAAC,eAAe,CAAC,SAAS,EAAE,oBAAoB,CAAC,cAAc,EAAE,oBAAoB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACpI,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvC,aAAa,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,aAAa,CAAC;YAC/C,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC;YACjC,aAAa,CAAC,MAAM,GAAG,aAAa,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;aAC3C;YACD,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,IAAU;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3F,CAAC;IAES,eAAe,CAAC,IAAU;QAChC,OAAO;QACP,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,EAAE;gBAC9D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;aAChF;iBAAM;gBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,yBAAyB,CAA4B,CAAC;aAC3G;SACJ;aAAM;YACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC9B;IACL,CAAC;IAED;;OAEG;IACI,OAAO;QACV,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,wCAAwC;QAEzD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;;AA1GD;;GAEG;AACW,mCAAc,GAAW,2CAA2C,CAAC;AACnF;;GAEG;AACW,mCAAc,GAAW,2BAA2B,CAAC","sourcesContent":["import type { TransformNode } from \"core/Meshes/transformNode\";\r\nimport type { Mesh } from \"core/Meshes/mesh\";\r\nimport { CreateBox } from \"core/Meshes/Builders/boxBuilder\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { FluentBackplateMaterial } from \"../materials/fluentBackplate/fluentBackplateMaterial\";\r\nimport { Control3D } from \"./control3D\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\n\r\n/**\r\n * Class used to create a holographic backplate in 3D\r\n * @since 5.0.0\r\n */\r\nexport class HolographicBackplate extends Control3D {\r\n /**\r\n * Base Url for the button model.\r\n */\r\n public static MODEL_BASE_URL: string = \"https://assets.babylonjs.com/meshes/MRTK/\";\r\n /**\r\n * File name for the button model.\r\n */\r\n public static MODEL_FILENAME: string = \"mrtk-fluent-backplate.glb\";\r\n\r\n private _model: AbstractMesh;\r\n private _material: FluentBackplateMaterial;\r\n\r\n /**\r\n * Rendering ground id of the backplate mesh.\r\n */\r\n public set renderingGroupId(id: number) {\r\n this._model.renderingGroupId = id;\r\n }\r\n public get renderingGroupId(): number {\r\n return this._model.renderingGroupId;\r\n }\r\n\r\n /**\r\n * Gets the material used by the backplate\r\n */\r\n public get material(): FluentBackplateMaterial {\r\n return this._material;\r\n }\r\n\r\n /**\r\n * Gets a boolean indicating if this backplate shares its material with other HolographicBackplates\r\n */\r\n public get shareMaterials(): boolean {\r\n return this._shareMaterials;\r\n }\r\n\r\n /**\r\n * Creates a new holographic backplate\r\n * @param name defines the control name\r\n * @param _shareMaterials\r\n */\r\n constructor(name?: string, private _shareMaterials = true) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"HolographicBackplate\";\r\n }\r\n\r\n // Mesh association\r\n protected _createNode(scene: Scene): TransformNode {\r\n const collisionMesh = CreateBox(\r\n (this.name ?? \"HolographicBackplate\") + \"_CollisionMesh\",\r\n {\r\n width: 1.0,\r\n height: 1.0,\r\n depth: 1.0,\r\n },\r\n scene\r\n );\r\n collisionMesh.isPickable = true;\r\n collisionMesh.visibility = 0;\r\n\r\n SceneLoader.ImportMeshAsync(undefined, HolographicBackplate.MODEL_BASE_URL, HolographicBackplate.MODEL_FILENAME, scene).then((result) => {\r\n const importedModel = result.meshes[1];\r\n importedModel.name = `${this.name}_frontPlate`;\r\n importedModel.isPickable = false;\r\n importedModel.parent = collisionMesh;\r\n if (this._material) {\r\n importedModel.material = this._material;\r\n }\r\n this._model = importedModel;\r\n });\r\n\r\n return collisionMesh;\r\n }\r\n\r\n private _createMaterial(mesh: Mesh) {\r\n this._material = new FluentBackplateMaterial(this.name + \" Material\", mesh.getScene());\r\n }\r\n\r\n protected _affectMaterial(mesh: Mesh) {\r\n // Back\r\n if (this._shareMaterials) {\r\n if (!this._host._touchSharedMaterials[\"fluentBackplateMaterial\"]) {\r\n this._createMaterial(mesh);\r\n this._host._touchSharedMaterials[\"fluentBackplateMaterial\"] = this._material;\r\n } else {\r\n this._material = this._host._touchSharedMaterials[\"fluentBackplateMaterial\"] as FluentBackplateMaterial;\r\n }\r\n } else {\r\n this._createMaterial(mesh);\r\n }\r\n }\r\n\r\n /**\r\n * Releases all associated resources\r\n */\r\n public dispose() {\r\n super.dispose(); // will dispose main mesh ie. back plate\r\n\r\n if (!this.shareMaterials) {\r\n this._material.dispose();\r\n }\r\n\r\n this._model.dispose();\r\n }\r\n}\r\n"]}