@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.
Files changed (305) hide show
  1. package/2D/adtInstrumentation.d.ts +52 -52
  2. package/2D/adtInstrumentation.js +126 -126
  3. package/2D/adtInstrumentation.js.map +1 -1
  4. package/2D/advancedDynamicTexture.d.ts +449 -423
  5. package/2D/advancedDynamicTexture.js +1318 -1286
  6. package/2D/advancedDynamicTexture.js.map +1 -1
  7. package/2D/controls/button.d.ts +135 -97
  8. package/2D/controls/button.js +276 -238
  9. package/2D/controls/button.js.map +1 -1
  10. package/2D/controls/checkbox.d.ts +59 -51
  11. package/2D/controls/checkbox.js +188 -178
  12. package/2D/controls/checkbox.js.map +1 -1
  13. package/2D/controls/colorpicker.d.ts +103 -90
  14. package/2D/controls/colorpicker.js +1417 -1400
  15. package/2D/controls/colorpicker.js.map +1 -1
  16. package/2D/controls/container.d.ts +175 -130
  17. package/2D/controls/container.js +570 -525
  18. package/2D/controls/container.js.map +1 -1
  19. package/2D/controls/control.d.ts +866 -743
  20. package/2D/controls/control.js +2433 -2308
  21. package/2D/controls/control.js.map +1 -1
  22. package/2D/controls/displayGrid.d.ts +53 -55
  23. package/2D/controls/displayGrid.js +245 -245
  24. package/2D/controls/displayGrid.js.map +1 -1
  25. package/2D/controls/ellipse.d.ts +21 -21
  26. package/2D/controls/ellipse.js +85 -85
  27. package/2D/controls/ellipse.js.map +1 -1
  28. package/2D/controls/focusableButton.d.ts +59 -52
  29. package/2D/controls/focusableButton.js +99 -92
  30. package/2D/controls/focusableButton.js.map +1 -1
  31. package/2D/controls/focusableControl.d.ts +34 -34
  32. package/2D/controls/focusableControl.js +1 -1
  33. package/2D/controls/focusableControl.js.map +1 -1
  34. package/2D/controls/grid.d.ts +139 -135
  35. package/2D/controls/grid.js +529 -525
  36. package/2D/controls/grid.js.map +1 -1
  37. package/2D/controls/image.d.ts +204 -197
  38. package/2D/controls/image.js +887 -879
  39. package/2D/controls/image.js.map +1 -1
  40. package/2D/controls/index.d.ts +29 -29
  41. package/2D/controls/index.js +29 -29
  42. package/2D/controls/index.js.map +1 -1
  43. package/2D/controls/inputPassword.d.ts +9 -8
  44. package/2D/controls/inputPassword.js +28 -25
  45. package/2D/controls/inputPassword.js.map +1 -1
  46. package/2D/controls/inputText.d.ts +201 -182
  47. package/2D/controls/inputText.js +1119 -1096
  48. package/2D/controls/inputText.js.map +1 -1
  49. package/2D/controls/line.d.ts +66 -66
  50. package/2D/controls/line.js +271 -271
  51. package/2D/controls/line.js.map +1 -1
  52. package/2D/controls/multiLine.d.ts +75 -77
  53. package/2D/controls/multiLine.js +262 -262
  54. package/2D/controls/multiLine.js.map +1 -1
  55. package/2D/controls/radioButton.d.ts +49 -49
  56. package/2D/controls/radioButton.js +205 -205
  57. package/2D/controls/radioButton.js.map +1 -1
  58. package/2D/controls/rectangle.d.ts +29 -29
  59. package/2D/controls/rectangle.js +150 -150
  60. package/2D/controls/rectangle.js.map +1 -1
  61. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -175
  62. package/2D/controls/scrollViewers/scrollViewer.js +677 -676
  63. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  64. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -45
  65. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -263
  66. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  67. package/2D/controls/selector.d.ts +263 -209
  68. package/2D/controls/selector.js +692 -629
  69. package/2D/controls/selector.js.map +1 -1
  70. package/2D/controls/sliders/baseSlider.d.ts +82 -78
  71. package/2D/controls/sliders/baseSlider.js +347 -343
  72. package/2D/controls/sliders/baseSlider.js.map +1 -1
  73. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -47
  74. package/2D/controls/sliders/imageBasedSlider.js +192 -188
  75. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  76. package/2D/controls/sliders/imageScrollBar.d.ts +65 -61
  77. package/2D/controls/sliders/imageScrollBar.js +263 -256
  78. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  79. package/2D/controls/sliders/scrollBar.d.ts +38 -34
  80. package/2D/controls/sliders/scrollBar.js +143 -136
  81. package/2D/controls/sliders/scrollBar.js.map +1 -1
  82. package/2D/controls/sliders/slider.d.ts +35 -37
  83. package/2D/controls/sliders/slider.js +271 -271
  84. package/2D/controls/sliders/slider.js.map +1 -1
  85. package/2D/controls/stackPanel.d.ts +64 -56
  86. package/2D/controls/stackPanel.js +246 -236
  87. package/2D/controls/stackPanel.js.map +1 -1
  88. package/2D/controls/statics.d.ts +6 -6
  89. package/2D/controls/statics.js +49 -47
  90. package/2D/controls/statics.js.map +1 -1
  91. package/2D/controls/textBlock.d.ts +175 -172
  92. package/2D/controls/textBlock.js +603 -598
  93. package/2D/controls/textBlock.js.map +1 -1
  94. package/2D/controls/textWrapper.d.ts +13 -13
  95. package/2D/controls/textWrapper.js +101 -101
  96. package/2D/controls/textWrapper.js.map +1 -1
  97. package/2D/controls/toggleButton.d.ts +117 -83
  98. package/2D/controls/toggleButton.js +268 -234
  99. package/2D/controls/toggleButton.js.map +1 -1
  100. package/2D/controls/virtualKeyboard.d.ts +96 -96
  101. package/2D/controls/virtualKeyboard.js +256 -256
  102. package/2D/controls/virtualKeyboard.js.map +1 -1
  103. package/2D/index.d.ts +9 -9
  104. package/2D/index.js +10 -9
  105. package/2D/index.js.map +1 -1
  106. package/2D/math2D.d.ts +117 -117
  107. package/2D/math2D.js +221 -221
  108. package/2D/math2D.js.map +1 -1
  109. package/2D/measure.d.ts +77 -77
  110. package/2D/measure.js +139 -149
  111. package/2D/measure.js.map +1 -1
  112. package/2D/multiLinePoint.d.ts +47 -47
  113. package/2D/multiLinePoint.js +127 -127
  114. package/2D/multiLinePoint.js.map +1 -1
  115. package/2D/style.d.ts +46 -46
  116. package/2D/style.js +97 -97
  117. package/2D/style.js.map +1 -1
  118. package/2D/valueAndUnit.d.ts +89 -89
  119. package/2D/valueAndUnit.js +226 -222
  120. package/2D/valueAndUnit.js.map +1 -1
  121. package/2D/xmlLoader.d.ts +60 -60
  122. package/2D/xmlLoader.js +348 -348
  123. package/2D/xmlLoader.js.map +1 -1
  124. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  125. package/3D/behaviors/defaultBehavior.js +121 -121
  126. package/3D/behaviors/defaultBehavior.js.map +1 -1
  127. package/3D/controls/abstractButton3D.d.ts +15 -15
  128. package/3D/controls/abstractButton3D.js +25 -25
  129. package/3D/controls/abstractButton3D.js.map +1 -1
  130. package/3D/controls/button3D.d.ts +30 -30
  131. package/3D/controls/button3D.js +93 -93
  132. package/3D/controls/button3D.js.map +1 -1
  133. package/3D/controls/container3D.d.ts +72 -72
  134. package/3D/controls/container3D.js +139 -140
  135. package/3D/controls/container3D.js.map +1 -1
  136. package/3D/controls/contentDisplay3D.d.ts +30 -30
  137. package/3D/controls/contentDisplay3D.js +79 -78
  138. package/3D/controls/contentDisplay3D.js.map +1 -1
  139. package/3D/controls/control3D.d.ts +201 -165
  140. package/3D/controls/control3D.js +445 -408
  141. package/3D/controls/control3D.js.map +1 -1
  142. package/3D/controls/cylinderPanel.d.ts +17 -17
  143. package/3D/controls/cylinderPanel.js +66 -66
  144. package/3D/controls/cylinderPanel.js.map +1 -1
  145. package/3D/controls/handMenu.d.ts +28 -28
  146. package/3D/controls/handMenu.js +47 -47
  147. package/3D/controls/handMenu.js.map +1 -1
  148. package/3D/controls/holographicBackplate.d.ts +49 -48
  149. package/3D/controls/holographicBackplate.js +120 -120
  150. package/3D/controls/holographicBackplate.js.map +1 -1
  151. package/3D/controls/holographicButton.d.ts +84 -83
  152. package/3D/controls/holographicButton.js +339 -338
  153. package/3D/controls/holographicButton.js.map +1 -1
  154. package/3D/controls/holographicSlate.d.ts +131 -128
  155. package/3D/controls/holographicSlate.js +431 -428
  156. package/3D/controls/holographicSlate.js.map +1 -1
  157. package/3D/controls/index.d.ts +21 -21
  158. package/3D/controls/index.js +21 -21
  159. package/3D/controls/index.js.map +1 -1
  160. package/3D/controls/meshButton3D.d.ts +21 -21
  161. package/3D/controls/meshButton3D.js +62 -61
  162. package/3D/controls/meshButton3D.js.map +1 -1
  163. package/3D/controls/nearMenu.d.ts +44 -44
  164. package/3D/controls/nearMenu.js +114 -112
  165. package/3D/controls/nearMenu.js.map +1 -1
  166. package/3D/controls/planePanel.d.ts +9 -9
  167. package/3D/controls/planePanel.js +36 -36
  168. package/3D/controls/planePanel.js.map +1 -1
  169. package/3D/controls/scatterPanel.d.ts +18 -18
  170. package/3D/controls/scatterPanel.js +108 -108
  171. package/3D/controls/scatterPanel.js.map +1 -1
  172. package/3D/controls/slider3D.d.ts +81 -80
  173. package/3D/controls/slider3D.js +268 -267
  174. package/3D/controls/slider3D.js.map +1 -1
  175. package/3D/controls/spherePanel.d.ts +17 -17
  176. package/3D/controls/spherePanel.js +67 -67
  177. package/3D/controls/spherePanel.js.map +1 -1
  178. package/3D/controls/stackPanel3D.d.ts +22 -22
  179. package/3D/controls/stackPanel3D.js +107 -107
  180. package/3D/controls/stackPanel3D.js.map +1 -1
  181. package/3D/controls/touchButton3D.d.ts +80 -75
  182. package/3D/controls/touchButton3D.js +233 -227
  183. package/3D/controls/touchButton3D.js.map +1 -1
  184. package/3D/controls/touchHolographicButton.d.ts +110 -109
  185. package/3D/controls/touchHolographicButton.js +445 -445
  186. package/3D/controls/touchHolographicButton.js.map +1 -1
  187. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  188. package/3D/controls/touchHolographicMenu.js +149 -148
  189. package/3D/controls/touchHolographicMenu.js.map +1 -1
  190. package/3D/controls/touchMeshButton3D.d.ts +21 -22
  191. package/3D/controls/touchMeshButton3D.js +62 -62
  192. package/3D/controls/touchMeshButton3D.js.map +1 -1
  193. package/3D/controls/volumeBasedPanel.d.ts +53 -52
  194. package/3D/controls/volumeBasedPanel.js +174 -174
  195. package/3D/controls/volumeBasedPanel.js.map +1 -1
  196. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  197. package/3D/gizmos/gizmoHandle.js +209 -209
  198. package/3D/gizmos/gizmoHandle.js.map +1 -1
  199. package/3D/gizmos/index.d.ts +2 -2
  200. package/3D/gizmos/index.js +2 -2
  201. package/3D/gizmos/index.js.map +1 -1
  202. package/3D/gizmos/slateGizmo.d.ts +57 -57
  203. package/3D/gizmos/slateGizmo.js +369 -369
  204. package/3D/gizmos/slateGizmo.js.map +1 -1
  205. package/3D/gui3DManager.d.ts +94 -94
  206. package/3D/gui3DManager.js +257 -257
  207. package/3D/gui3DManager.js.map +1 -1
  208. package/3D/index.d.ts +5 -5
  209. package/3D/index.js +6 -5
  210. package/3D/index.js.map +1 -1
  211. package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
  212. package/3D/materials/fluent/fluentMaterial.js +292 -281
  213. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  214. package/3D/materials/fluent/index.d.ts +1 -1
  215. package/3D/materials/fluent/index.js +1 -1
  216. package/3D/materials/fluent/index.js.map +1 -1
  217. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  218. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -6
  219. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
  220. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  221. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -6
  222. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
  223. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
  224. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -434
  225. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  226. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  227. package/3D/materials/fluentBackplate/index.js +1 -1
  228. package/3D/materials/fluentBackplate/index.js.map +1 -1
  229. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  230. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -6
  231. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
  232. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  233. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -6
  234. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
  235. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
  236. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -537
  237. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  238. package/3D/materials/fluentButton/index.d.ts +1 -1
  239. package/3D/materials/fluentButton/index.js +1 -1
  240. package/3D/materials/fluentButton/index.js.map +1 -1
  241. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  242. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -6
  243. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
  244. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  245. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -6
  246. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
  247. package/3D/materials/fluentMaterial.d.ts +4 -4
  248. package/3D/materials/fluentMaterial.js +4 -4
  249. package/3D/materials/fluentMaterial.js.map +1 -1
  250. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  251. package/3D/materials/handle/handleMaterial.js +126 -126
  252. package/3D/materials/handle/handleMaterial.js.map +1 -1
  253. package/3D/materials/handle/index.d.ts +1 -1
  254. package/3D/materials/handle/index.js +1 -1
  255. package/3D/materials/handle/index.js.map +1 -1
  256. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  257. package/3D/materials/handle/shaders/handle.fragment.js +8 -6
  258. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
  259. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  260. package/3D/materials/handle/shaders/handle.vertex.js +8 -6
  261. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
  262. package/3D/materials/index.d.ts +5 -5
  263. package/3D/materials/index.js +6 -5
  264. package/3D/materials/index.js.map +1 -1
  265. package/3D/materials/mrdl/index.d.ts +3 -3
  266. package/3D/materials/mrdl/index.js +3 -3
  267. package/3D/materials/mrdl/index.js.map +1 -1
  268. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
  269. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -409
  270. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  271. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
  272. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -786
  273. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  274. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
  275. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -786
  276. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  277. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  278. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -6
  279. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
  280. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  281. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -6
  282. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
  283. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  284. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -6
  285. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
  286. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  287. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -6
  288. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
  289. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  290. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -6
  291. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
  292. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  293. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -6
  294. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
  295. package/3D/vector3WithInfo.d.ts +16 -16
  296. package/3D/vector3WithInfo.js +23 -23
  297. package/3D/vector3WithInfo.js.map +1 -1
  298. package/index.d.ts +2 -2
  299. package/index.js +3 -2
  300. package/index.js.map +1 -1
  301. package/legacy/legacy.d.ts +1 -1
  302. package/legacy/legacy.js +14 -13
  303. package/legacy/legacy.js.map +1 -1
  304. package/package.json +21 -328
  305. package/readme.md +2 -2
@@ -1,272 +1,272 @@
1
- import { __decorate, __extends } from "tslib";
2
- import { Vector3, Matrix } from "@babylonjs/core/Maths/math.vector.js";
3
- import { Tools } from "@babylonjs/core/Misc/tools.js";
4
- import { Control } from "./control.js";
5
- import { ValueAndUnit } from "../valueAndUnit.js";
6
- import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
7
- import { serialize } from '@babylonjs/core/Misc/decorators.js';
8
- /** Class used to render 2D lines */
9
- var Line = /** @class */ (function (_super) {
10
- __extends(Line, _super);
11
- /**
12
- * Creates a new Line
13
- * @param name defines the control name
14
- */
15
- function Line(name) {
16
- var _this = _super.call(this, name) || this;
17
- _this.name = name;
18
- _this._lineWidth = 1;
19
- _this._x1 = new ValueAndUnit(0);
20
- _this._y1 = new ValueAndUnit(0);
21
- _this._x2 = new ValueAndUnit(0);
22
- _this._y2 = new ValueAndUnit(0);
23
- _this._dash = new Array();
24
- _this._automaticSize = true;
25
- _this.isHitTestVisible = false;
26
- _this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
27
- _this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
28
- return _this;
29
- }
30
- Object.defineProperty(Line.prototype, "dash", {
31
- /** Gets or sets the dash pattern */
32
- get: function () {
33
- return this._dash;
34
- },
35
- set: function (value) {
36
- if (this._dash === value) {
37
- return;
38
- }
39
- this._dash = value;
40
- this._markAsDirty();
41
- },
42
- enumerable: false,
43
- configurable: true
44
- });
45
- Object.defineProperty(Line.prototype, "connectedControl", {
46
- /** Gets or sets the control connected with the line end */
47
- get: function () {
48
- return this._connectedControl;
49
- },
50
- set: function (value) {
51
- var _this = this;
52
- if (this._connectedControl === value) {
53
- return;
54
- }
55
- if (this._connectedControlDirtyObserver && this._connectedControl) {
56
- this._connectedControl.onDirtyObservable.remove(this._connectedControlDirtyObserver);
57
- this._connectedControlDirtyObserver = null;
58
- }
59
- if (value) {
60
- this._connectedControlDirtyObserver = value.onDirtyObservable.add(function () { return _this._markAsDirty(); });
61
- }
62
- this._connectedControl = value;
63
- this._markAsDirty();
64
- },
65
- enumerable: false,
66
- configurable: true
67
- });
68
- Object.defineProperty(Line.prototype, "x1", {
69
- /** Gets or sets start coordinates on X axis */
70
- get: function () {
71
- return this._x1.toString(this._host);
72
- },
73
- set: function (value) {
74
- if (this._x1.toString(this._host) === value) {
75
- return;
76
- }
77
- if (this._x1.fromString(value)) {
78
- this._markAsDirty();
79
- }
80
- },
81
- enumerable: false,
82
- configurable: true
83
- });
84
- Object.defineProperty(Line.prototype, "y1", {
85
- /** Gets or sets start coordinates on Y axis */
86
- get: function () {
87
- return this._y1.toString(this._host);
88
- },
89
- set: function (value) {
90
- if (this._y1.toString(this._host) === value) {
91
- return;
92
- }
93
- if (this._y1.fromString(value)) {
94
- this._markAsDirty();
95
- }
96
- },
97
- enumerable: false,
98
- configurable: true
99
- });
100
- Object.defineProperty(Line.prototype, "x2", {
101
- /** Gets or sets end coordinates on X axis */
102
- get: function () {
103
- return this._x2.toString(this._host);
104
- },
105
- set: function (value) {
106
- if (this._x2.toString(this._host) === value) {
107
- return;
108
- }
109
- if (this._x2.fromString(value)) {
110
- this._markAsDirty();
111
- }
112
- },
113
- enumerable: false,
114
- configurable: true
115
- });
116
- Object.defineProperty(Line.prototype, "y2", {
117
- /** Gets or sets end coordinates on Y axis */
118
- get: function () {
119
- return this._y2.toString(this._host);
120
- },
121
- set: function (value) {
122
- if (this._y2.toString(this._host) === value) {
123
- return;
124
- }
125
- if (this._y2.fromString(value)) {
126
- this._markAsDirty();
127
- }
128
- },
129
- enumerable: false,
130
- configurable: true
131
- });
132
- Object.defineProperty(Line.prototype, "lineWidth", {
133
- /** Gets or sets line width */
134
- get: function () {
135
- return this._lineWidth;
136
- },
137
- set: function (value) {
138
- if (this._lineWidth === value) {
139
- return;
140
- }
141
- this._lineWidth = value;
142
- this._markAsDirty();
143
- },
144
- enumerable: false,
145
- configurable: true
146
- });
147
- Object.defineProperty(Line.prototype, "horizontalAlignment", {
148
- /** Gets or sets horizontal alignment */
149
- set: function (value) {
150
- return;
151
- },
152
- enumerable: false,
153
- configurable: true
154
- });
155
- Object.defineProperty(Line.prototype, "verticalAlignment", {
156
- /** Gets or sets vertical alignment */
157
- set: function (value) {
158
- return;
159
- },
160
- enumerable: false,
161
- configurable: true
162
- });
163
- Object.defineProperty(Line.prototype, "_effectiveX2", {
164
- get: function () {
165
- return (this._connectedControl ? this._connectedControl.centerX : 0) + this._x2.getValue(this._host);
166
- },
167
- enumerable: false,
168
- configurable: true
169
- });
170
- Object.defineProperty(Line.prototype, "_effectiveY2", {
171
- get: function () {
172
- return (this._connectedControl ? this._connectedControl.centerY : 0) + this._y2.getValue(this._host);
173
- },
174
- enumerable: false,
175
- configurable: true
176
- });
177
- Line.prototype._getTypeName = function () {
178
- return "Line";
179
- };
180
- Line.prototype._draw = function (context) {
181
- context.save();
182
- if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
183
- context.shadowColor = this.shadowColor;
184
- context.shadowBlur = this.shadowBlur;
185
- context.shadowOffsetX = this.shadowOffsetX;
186
- context.shadowOffsetY = this.shadowOffsetY;
187
- }
188
- this._applyStates(context);
189
- context.strokeStyle = this.color;
190
- context.lineWidth = this._lineWidth;
191
- context.setLineDash(this._dash);
192
- context.beginPath();
193
- context.moveTo(this._cachedParentMeasure.left + this._x1.getValue(this._host), this._cachedParentMeasure.top + this._y1.getValue(this._host));
194
- context.lineTo(this._cachedParentMeasure.left + this._effectiveX2, this._cachedParentMeasure.top + this._effectiveY2);
195
- context.stroke();
196
- context.restore();
197
- };
198
- Line.prototype._measure = function () {
199
- // Width / Height
200
- this._currentMeasure.width = Math.abs(this._x1.getValue(this._host) - this._effectiveX2) + this._lineWidth;
201
- this._currentMeasure.height = Math.abs(this._y1.getValue(this._host) - this._effectiveY2) + this._lineWidth;
202
- };
203
- Line.prototype._computeAlignment = function (parentMeasure, context) {
204
- this._currentMeasure.left = parentMeasure.left + Math.min(this._x1.getValue(this._host), this._effectiveX2) - this._lineWidth / 2;
205
- this._currentMeasure.top = parentMeasure.top + Math.min(this._y1.getValue(this._host), this._effectiveY2) - this._lineWidth / 2;
206
- };
207
- /**
208
- * Move one end of the line given 3D cartesian coordinates.
209
- * @param position Targeted world position
210
- * @param scene Scene
211
- * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
212
- */
213
- Line.prototype.moveToVector3 = function (position, scene, end) {
214
- if (end === void 0) { end = false; }
215
- if (!this._host || this.parent !== this._host._rootContainer) {
216
- Tools.Error("Cannot move a control to a vector3 if the control is not at root level");
217
- return;
218
- }
219
- var globalViewport = this._host._getGlobalViewport();
220
- var projectedPosition = Vector3.Project(position, Matrix.Identity(), scene.getTransformMatrix(), globalViewport);
221
- this._moveToProjectedPosition(projectedPosition, end);
222
- if (projectedPosition.z < 0 || projectedPosition.z > 1) {
223
- this.notRenderable = true;
224
- return;
225
- }
226
- this.notRenderable = false;
227
- };
228
- /**
229
- * Move one end of the line to a position in screen absolute space.
230
- * @param projectedPosition Position in screen absolute space (X, Y)
231
- * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
232
- */
233
- Line.prototype._moveToProjectedPosition = function (projectedPosition, end) {
234
- if (end === void 0) { end = false; }
235
- var x = (projectedPosition.x + this._linkOffsetX.getValue(this._host)) + "px";
236
- var y = (projectedPosition.y + this._linkOffsetY.getValue(this._host)) + "px";
237
- if (end) {
238
- this.x2 = x;
239
- this.y2 = y;
240
- this._x2.ignoreAdaptiveScaling = true;
241
- this._y2.ignoreAdaptiveScaling = true;
242
- }
243
- else {
244
- this.x1 = x;
245
- this.y1 = y;
246
- this._x1.ignoreAdaptiveScaling = true;
247
- this._y1.ignoreAdaptiveScaling = true;
248
- }
249
- };
250
- __decorate([
251
- serialize()
252
- ], Line.prototype, "dash", null);
253
- __decorate([
254
- serialize()
255
- ], Line.prototype, "x1", null);
256
- __decorate([
257
- serialize()
258
- ], Line.prototype, "y1", null);
259
- __decorate([
260
- serialize()
261
- ], Line.prototype, "x2", null);
262
- __decorate([
263
- serialize()
264
- ], Line.prototype, "y2", null);
265
- __decorate([
266
- serialize()
267
- ], Line.prototype, "lineWidth", null);
268
- return Line;
269
- }(Control));
270
- export { Line };
271
- RegisterClass("BABYLON.GUI.Line", Line);
1
+ import { __decorate, __extends } from "tslib";
2
+ import { Vector3, Matrix } from "@babylonjs/core/Maths/math.vector.js";
3
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
4
+ import { Control } from "./control";
5
+ import { ValueAndUnit } from "../valueAndUnit";
6
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
7
+ import { serialize } from "@babylonjs/core/Misc/decorators.js";
8
+ /** Class used to render 2D lines */
9
+ var Line = /** @class */ (function (_super) {
10
+ __extends(Line, _super);
11
+ /**
12
+ * Creates a new Line
13
+ * @param name defines the control name
14
+ */
15
+ function Line(name) {
16
+ var _this = _super.call(this, name) || this;
17
+ _this.name = name;
18
+ _this._lineWidth = 1;
19
+ _this._x1 = new ValueAndUnit(0);
20
+ _this._y1 = new ValueAndUnit(0);
21
+ _this._x2 = new ValueAndUnit(0);
22
+ _this._y2 = new ValueAndUnit(0);
23
+ _this._dash = new Array();
24
+ _this._automaticSize = true;
25
+ _this.isHitTestVisible = false;
26
+ _this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
27
+ _this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
28
+ return _this;
29
+ }
30
+ Object.defineProperty(Line.prototype, "dash", {
31
+ /** Gets or sets the dash pattern */
32
+ get: function () {
33
+ return this._dash;
34
+ },
35
+ set: function (value) {
36
+ if (this._dash === value) {
37
+ return;
38
+ }
39
+ this._dash = value;
40
+ this._markAsDirty();
41
+ },
42
+ enumerable: false,
43
+ configurable: true
44
+ });
45
+ Object.defineProperty(Line.prototype, "connectedControl", {
46
+ /** Gets or sets the control connected with the line end */
47
+ get: function () {
48
+ return this._connectedControl;
49
+ },
50
+ set: function (value) {
51
+ var _this = this;
52
+ if (this._connectedControl === value) {
53
+ return;
54
+ }
55
+ if (this._connectedControlDirtyObserver && this._connectedControl) {
56
+ this._connectedControl.onDirtyObservable.remove(this._connectedControlDirtyObserver);
57
+ this._connectedControlDirtyObserver = null;
58
+ }
59
+ if (value) {
60
+ this._connectedControlDirtyObserver = value.onDirtyObservable.add(function () { return _this._markAsDirty(); });
61
+ }
62
+ this._connectedControl = value;
63
+ this._markAsDirty();
64
+ },
65
+ enumerable: false,
66
+ configurable: true
67
+ });
68
+ Object.defineProperty(Line.prototype, "x1", {
69
+ /** Gets or sets start coordinates on X axis */
70
+ get: function () {
71
+ return this._x1.toString(this._host);
72
+ },
73
+ set: function (value) {
74
+ if (this._x1.toString(this._host) === value) {
75
+ return;
76
+ }
77
+ if (this._x1.fromString(value)) {
78
+ this._markAsDirty();
79
+ }
80
+ },
81
+ enumerable: false,
82
+ configurable: true
83
+ });
84
+ Object.defineProperty(Line.prototype, "y1", {
85
+ /** Gets or sets start coordinates on Y axis */
86
+ get: function () {
87
+ return this._y1.toString(this._host);
88
+ },
89
+ set: function (value) {
90
+ if (this._y1.toString(this._host) === value) {
91
+ return;
92
+ }
93
+ if (this._y1.fromString(value)) {
94
+ this._markAsDirty();
95
+ }
96
+ },
97
+ enumerable: false,
98
+ configurable: true
99
+ });
100
+ Object.defineProperty(Line.prototype, "x2", {
101
+ /** Gets or sets end coordinates on X axis */
102
+ get: function () {
103
+ return this._x2.toString(this._host);
104
+ },
105
+ set: function (value) {
106
+ if (this._x2.toString(this._host) === value) {
107
+ return;
108
+ }
109
+ if (this._x2.fromString(value)) {
110
+ this._markAsDirty();
111
+ }
112
+ },
113
+ enumerable: false,
114
+ configurable: true
115
+ });
116
+ Object.defineProperty(Line.prototype, "y2", {
117
+ /** Gets or sets end coordinates on Y axis */
118
+ get: function () {
119
+ return this._y2.toString(this._host);
120
+ },
121
+ set: function (value) {
122
+ if (this._y2.toString(this._host) === value) {
123
+ return;
124
+ }
125
+ if (this._y2.fromString(value)) {
126
+ this._markAsDirty();
127
+ }
128
+ },
129
+ enumerable: false,
130
+ configurable: true
131
+ });
132
+ Object.defineProperty(Line.prototype, "lineWidth", {
133
+ /** Gets or sets line width */
134
+ get: function () {
135
+ return this._lineWidth;
136
+ },
137
+ set: function (value) {
138
+ if (this._lineWidth === value) {
139
+ return;
140
+ }
141
+ this._lineWidth = value;
142
+ this._markAsDirty();
143
+ },
144
+ enumerable: false,
145
+ configurable: true
146
+ });
147
+ Object.defineProperty(Line.prototype, "horizontalAlignment", {
148
+ /** Gets or sets horizontal alignment */
149
+ set: function (value) {
150
+ return;
151
+ },
152
+ enumerable: false,
153
+ configurable: true
154
+ });
155
+ Object.defineProperty(Line.prototype, "verticalAlignment", {
156
+ /** Gets or sets vertical alignment */
157
+ set: function (value) {
158
+ return;
159
+ },
160
+ enumerable: false,
161
+ configurable: true
162
+ });
163
+ Object.defineProperty(Line.prototype, "_effectiveX2", {
164
+ get: function () {
165
+ return (this._connectedControl ? this._connectedControl.centerX : 0) + this._x2.getValue(this._host);
166
+ },
167
+ enumerable: false,
168
+ configurable: true
169
+ });
170
+ Object.defineProperty(Line.prototype, "_effectiveY2", {
171
+ get: function () {
172
+ return (this._connectedControl ? this._connectedControl.centerY : 0) + this._y2.getValue(this._host);
173
+ },
174
+ enumerable: false,
175
+ configurable: true
176
+ });
177
+ Line.prototype._getTypeName = function () {
178
+ return "Line";
179
+ };
180
+ Line.prototype._draw = function (context) {
181
+ context.save();
182
+ if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
183
+ context.shadowColor = this.shadowColor;
184
+ context.shadowBlur = this.shadowBlur;
185
+ context.shadowOffsetX = this.shadowOffsetX;
186
+ context.shadowOffsetY = this.shadowOffsetY;
187
+ }
188
+ this._applyStates(context);
189
+ context.strokeStyle = this.color;
190
+ context.lineWidth = this._lineWidth;
191
+ context.setLineDash(this._dash);
192
+ context.beginPath();
193
+ context.moveTo(this._cachedParentMeasure.left + this._x1.getValue(this._host), this._cachedParentMeasure.top + this._y1.getValue(this._host));
194
+ context.lineTo(this._cachedParentMeasure.left + this._effectiveX2, this._cachedParentMeasure.top + this._effectiveY2);
195
+ context.stroke();
196
+ context.restore();
197
+ };
198
+ Line.prototype._measure = function () {
199
+ // Width / Height
200
+ this._currentMeasure.width = Math.abs(this._x1.getValue(this._host) - this._effectiveX2) + this._lineWidth;
201
+ this._currentMeasure.height = Math.abs(this._y1.getValue(this._host) - this._effectiveY2) + this._lineWidth;
202
+ };
203
+ Line.prototype._computeAlignment = function (parentMeasure) {
204
+ this._currentMeasure.left = parentMeasure.left + Math.min(this._x1.getValue(this._host), this._effectiveX2) - this._lineWidth / 2;
205
+ this._currentMeasure.top = parentMeasure.top + Math.min(this._y1.getValue(this._host), this._effectiveY2) - this._lineWidth / 2;
206
+ };
207
+ /**
208
+ * Move one end of the line given 3D cartesian coordinates.
209
+ * @param position Targeted world position
210
+ * @param scene Scene
211
+ * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
212
+ */
213
+ Line.prototype.moveToVector3 = function (position, scene, end) {
214
+ if (end === void 0) { end = false; }
215
+ if (!this._host || this.parent !== this._host._rootContainer) {
216
+ Tools.Error("Cannot move a control to a vector3 if the control is not at root level");
217
+ return;
218
+ }
219
+ var globalViewport = this._host._getGlobalViewport();
220
+ var projectedPosition = Vector3.Project(position, Matrix.Identity(), scene.getTransformMatrix(), globalViewport);
221
+ this._moveToProjectedPosition(projectedPosition, end);
222
+ if (projectedPosition.z < 0 || projectedPosition.z > 1) {
223
+ this.notRenderable = true;
224
+ return;
225
+ }
226
+ this.notRenderable = false;
227
+ };
228
+ /**
229
+ * Move one end of the line to a position in screen absolute space.
230
+ * @param projectedPosition Position in screen absolute space (X, Y)
231
+ * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.
232
+ */
233
+ Line.prototype._moveToProjectedPosition = function (projectedPosition, end) {
234
+ if (end === void 0) { end = false; }
235
+ var x = projectedPosition.x + this._linkOffsetX.getValue(this._host) + "px";
236
+ var y = projectedPosition.y + this._linkOffsetY.getValue(this._host) + "px";
237
+ if (end) {
238
+ this.x2 = x;
239
+ this.y2 = y;
240
+ this._x2.ignoreAdaptiveScaling = true;
241
+ this._y2.ignoreAdaptiveScaling = true;
242
+ }
243
+ else {
244
+ this.x1 = x;
245
+ this.y1 = y;
246
+ this._x1.ignoreAdaptiveScaling = true;
247
+ this._y1.ignoreAdaptiveScaling = true;
248
+ }
249
+ };
250
+ __decorate([
251
+ serialize()
252
+ ], Line.prototype, "dash", null);
253
+ __decorate([
254
+ serialize()
255
+ ], Line.prototype, "x1", null);
256
+ __decorate([
257
+ serialize()
258
+ ], Line.prototype, "y1", null);
259
+ __decorate([
260
+ serialize()
261
+ ], Line.prototype, "x2", null);
262
+ __decorate([
263
+ serialize()
264
+ ], Line.prototype, "y2", null);
265
+ __decorate([
266
+ serialize()
267
+ ], Line.prototype, "lineWidth", null);
268
+ return Line;
269
+ }(Control));
270
+ export { Line };
271
+ RegisterClass("BABYLON.GUI.Line", Line);
272
272
  //# sourceMappingURL=line.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/line.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Observer } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector3, Matrix } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { Tools } from \"@babylonjs/core/Misc/tools\";\r\nimport { Scene } from \"@babylonjs/core/scene\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { ValueAndUnit } from \"../valueAndUnit\";\r\nimport { Measure } from \"../measure\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/** Class used to render 2D lines */\r\nexport class Line extends Control {\r\n private _lineWidth = 1;\r\n private _x1 = new ValueAndUnit(0);\r\n private _y1 = new ValueAndUnit(0);\r\n private _x2 = new ValueAndUnit(0);\r\n private _y2 = new ValueAndUnit(0);\r\n private _dash = new Array<number>();\r\n private _connectedControl: Control;\r\n private _connectedControlDirtyObserver: Nullable<Observer<Control>>;\r\n\r\n /** Gets or sets the dash pattern */\r\n @serialize()\r\n public get dash(): Array<number> {\r\n return this._dash;\r\n }\r\n\r\n public set dash(value: Array<number>) {\r\n if (this._dash === value) {\r\n return;\r\n }\r\n\r\n this._dash = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the control connected with the line end */\r\n public get connectedControl(): Control {\r\n return this._connectedControl;\r\n }\r\n\r\n public set connectedControl(value: Control) {\r\n if (this._connectedControl === value) {\r\n return;\r\n }\r\n\r\n if (this._connectedControlDirtyObserver && this._connectedControl) {\r\n this._connectedControl.onDirtyObservable.remove(this._connectedControlDirtyObserver);\r\n this._connectedControlDirtyObserver = null;\r\n }\r\n\r\n if (value) {\r\n this._connectedControlDirtyObserver = value.onDirtyObservable.add(() => this._markAsDirty());\r\n }\r\n\r\n this._connectedControl = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets start coordinates on X axis */\r\n @serialize()\r\n public get x1(): string | number {\r\n return this._x1.toString(this._host);\r\n }\r\n\r\n public set x1(value: string | number) {\r\n if (this._x1.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._x1.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets start coordinates on Y axis */\r\n @serialize()\r\n public get y1(): string | number {\r\n return this._y1.toString(this._host);\r\n }\r\n\r\n public set y1(value: string | number) {\r\n if (this._y1.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._y1.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets end coordinates on X axis */\r\n @serialize()\r\n public get x2(): string | number {\r\n return this._x2.toString(this._host);\r\n }\r\n\r\n public set x2(value: string | number) {\r\n if (this._x2.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._x2.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets end coordinates on Y axis */\r\n @serialize()\r\n public get y2(): string | number {\r\n return this._y2.toString(this._host);\r\n }\r\n\r\n public set y2(value: string | number) {\r\n if (this._y2.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._y2.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets line width */\r\n @serialize()\r\n public get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n\r\n public set lineWidth(value: number) {\r\n if (this._lineWidth === value) {\r\n return;\r\n }\r\n\r\n this._lineWidth = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets horizontal alignment */\r\n public set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n /** Gets or sets vertical alignment */\r\n public set verticalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n private get _effectiveX2(): number {\r\n return (this._connectedControl ? this._connectedControl.centerX : 0) + this._x2.getValue(this._host);\r\n }\r\n\r\n private get _effectiveY2(): number {\r\n return (this._connectedControl ? this._connectedControl.centerY : 0) + this._y2.getValue(this._host);\r\n }\r\n\r\n /**\r\n * Creates a new Line\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this._automaticSize = true;\r\n\r\n this.isHitTestVisible = false;\r\n this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"Line\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n this._applyStates(context);\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._lineWidth;\r\n context.setLineDash(this._dash);\r\n\r\n context.beginPath();\r\n context.moveTo(this._cachedParentMeasure.left + this._x1.getValue(this._host), this._cachedParentMeasure.top + this._y1.getValue(this._host));\r\n\r\n context.lineTo(this._cachedParentMeasure.left + this._effectiveX2, this._cachedParentMeasure.top + this._effectiveY2);\r\n context.stroke();\r\n\r\n context.restore();\r\n }\r\n\r\n public _measure(): void {\r\n // Width / Height\r\n this._currentMeasure.width = Math.abs(this._x1.getValue(this._host) - this._effectiveX2) + this._lineWidth;\r\n this._currentMeasure.height = Math.abs(this._y1.getValue(this._host) - this._effectiveY2) + this._lineWidth;\r\n }\r\n\r\n protected _computeAlignment(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n this._currentMeasure.left = parentMeasure.left + Math.min(this._x1.getValue(this._host), this._effectiveX2) - this._lineWidth / 2;\r\n this._currentMeasure.top = parentMeasure.top + Math.min(this._y1.getValue(this._host), this._effectiveY2) - this._lineWidth / 2;\r\n }\r\n\r\n /**\r\n * Move one end of the line given 3D cartesian coordinates.\r\n * @param position Targeted world position\r\n * @param scene Scene\r\n * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.\r\n */\r\n public moveToVector3(position: Vector3, scene: Scene, end: boolean = false): void {\r\n if (!this._host || this.parent !== this._host._rootContainer) {\r\n Tools.Error(\"Cannot move a control to a vector3 if the control is not at root level\");\r\n return;\r\n }\r\n\r\n var globalViewport = this._host._getGlobalViewport();\r\n var projectedPosition = Vector3.Project(position, Matrix.Identity(), scene.getTransformMatrix(), globalViewport);\r\n\r\n this._moveToProjectedPosition(projectedPosition, end);\r\n\r\n if (projectedPosition.z < 0 || projectedPosition.z > 1) {\r\n this.notRenderable = true;\r\n return;\r\n }\r\n this.notRenderable = false;\r\n }\r\n\r\n /**\r\n * Move one end of the line to a position in screen absolute space.\r\n * @param projectedPosition Position in screen absolute space (X, Y)\r\n * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.\r\n */\r\n public _moveToProjectedPosition(projectedPosition: Vector3, end: boolean = false): void {\r\n let x: string = (projectedPosition.x + this._linkOffsetX.getValue(this._host)) + \"px\";\r\n let y: string = (projectedPosition.y + this._linkOffsetY.getValue(this._host)) + \"px\";\r\n\r\n if (end) {\r\n this.x2 = x;\r\n this.y2 = y;\r\n this._x2.ignoreAdaptiveScaling = true;\r\n this._y2.ignoreAdaptiveScaling = true;\r\n } else {\r\n this.x1 = x;\r\n this.y1 = y;\r\n this._x1.ignoreAdaptiveScaling = true;\r\n this._y1.ignoreAdaptiveScaling = true;\r\n }\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Line\", Line);\r\n"]}
1
+ {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../../../../lts/gui/generated/2D/controls/line.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,6CAA+B;AACzD,OAAO,EAAE,KAAK,EAAE,sCAAwB;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,0CAA4B;AACpD,OAAO,EAAE,SAAS,EAAE,2CAA6B;AAGjD,oCAAoC;AACpC;IAA0B,wBAAO;IAiJ7B;;;OAGG;IACH,cAAmB,IAAa;QAAhC,YACI,kBAAM,IAAI,CAAC,SAOd;QARkB,UAAI,GAAJ,IAAI,CAAS;QApJxB,gBAAU,GAAG,CAAC,CAAC;QACf,SAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1B,SAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1B,SAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1B,SAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1B,WAAK,GAAG,IAAI,KAAK,EAAU,CAAC;QAkJhC,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,KAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,KAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAC9D,KAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;;IAC7D,CAAC;IAjJD,sBAAW,sBAAI;QAFf,oCAAoC;aAEpC;YACI,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;aAED,UAAgB,KAAoB;YAChC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;gBACtB,OAAO;aACV;YAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OATA;IAYD,sBAAW,kCAAgB;QAD3B,2DAA2D;aAC3D;YACI,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAClC,CAAC;aAED,UAA4B,KAAc;YAA1C,iBAgBC;YAfG,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;gBAClC,OAAO;aACV;YAED,IAAI,IAAI,CAAC,8BAA8B,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC/D,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBACrF,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC;aAC9C;YAED,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAM,OAAA,KAAI,CAAC,YAAY,EAAE,EAAnB,CAAmB,CAAC,CAAC;aAChG;YAED,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OAlBA;IAsBD,sBAAW,oBAAE;QAFb,+CAA+C;aAE/C;YACI,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;aAED,UAAc,KAAsB;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;gBACzC,OAAO;aACV;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;QACL,CAAC;;;OAVA;IAcD,sBAAW,oBAAE;QAFb,+CAA+C;aAE/C;YACI,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;aAED,UAAc,KAAsB;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;gBACzC,OAAO;aACV;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;QACL,CAAC;;;OAVA;IAcD,sBAAW,oBAAE;QAFb,6CAA6C;aAE7C;YACI,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;aAED,UAAc,KAAsB;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;gBACzC,OAAO;aACV;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;QACL,CAAC;;;OAVA;IAcD,sBAAW,oBAAE;QAFb,6CAA6C;aAE7C;YACI,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;aAED,UAAc,KAAsB;YAChC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;gBACzC,OAAO;aACV;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;QACL,CAAC;;;OAVA;IAcD,sBAAW,2BAAS;QAFpB,8BAA8B;aAE9B;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;aAED,UAAqB,KAAa;YAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC3B,OAAO;aACV;YAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OATA;IAYD,sBAAW,qCAAmB;QAD9B,wCAAwC;aACxC,UAA+B,KAAa;YACxC,OAAO;QACX,CAAC;;;OAAA;IAGD,sBAAW,mCAAiB;QAD5B,sCAAsC;aACtC,UAA6B,KAAa;YACtC,OAAO;QACX,CAAC;;;OAAA;IAED,sBAAY,8BAAY;aAAxB;YACI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzG,CAAC;;;OAAA;IAED,sBAAY,8BAAY;aAAxB;YACI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzG,CAAC;;;OAAA;IAgBS,2BAAY,GAAtB;QACI,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,oBAAK,GAAZ,UAAa,OAAgC;QACzC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7D,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACvC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC3C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9C;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE9I,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACtH,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAEM,uBAAQ,GAAf;QACI,iBAAiB;QACjB,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3G,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IAChH,CAAC;IAES,gCAAiB,GAA3B,UAA4B,aAAsB;QAC9C,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAClI,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACpI,CAAC;IAED;;;;;OAKG;IACI,4BAAa,GAApB,UAAqB,QAAiB,EAAE,KAAY,EAAE,GAAoB;QAApB,oBAAA,EAAA,WAAoB;QACtE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAC1D,KAAK,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO;SACV;QAED,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,kBAAkB,EAAE,EAAE,cAAc,CAAC,CAAC;QAEnH,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAEtD,IAAI,iBAAiB,CAAC,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO;SACV;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,uCAAwB,GAA/B,UAAgC,iBAA0B,EAAE,GAAoB;QAApB,oBAAA,EAAA,WAAoB;QAC5E,IAAM,CAAC,GAAW,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACtF,IAAM,CAAC,GAAW,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAEtF,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACzC;aAAM;YACH,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC;SACzC;IACL,CAAC;IAtOD;QADC,SAAS,EAAE;oCAGX;IAoCD;QADC,SAAS,EAAE;kCAGX;IAcD;QADC,SAAS,EAAE;kCAGX;IAcD;QADC,SAAS,EAAE;kCAGX;IAcD;QADC,SAAS,EAAE;kCAGX;IAcD;QADC,SAAS,EAAE;yCAGX;IA+HL,WAAC;CAAA,AAnPD,CAA0B,OAAO,GAmPhC;SAnPY,IAAI;AAoPjB,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport type { Observer } from \"core/Misc/observable\";\r\nimport { Vector3, Matrix } from \"core/Maths/math.vector\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport type { Scene } from \"core/scene\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { ValueAndUnit } from \"../valueAndUnit\";\r\nimport type { Measure } from \"../measure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/** Class used to render 2D lines */\r\nexport class Line extends Control {\r\n private _lineWidth = 1;\r\n private _x1 = new ValueAndUnit(0);\r\n private _y1 = new ValueAndUnit(0);\r\n private _x2 = new ValueAndUnit(0);\r\n private _y2 = new ValueAndUnit(0);\r\n private _dash = new Array<number>();\r\n private _connectedControl: Control;\r\n private _connectedControlDirtyObserver: Nullable<Observer<Control>>;\r\n\r\n /** Gets or sets the dash pattern */\r\n @serialize()\r\n public get dash(): Array<number> {\r\n return this._dash;\r\n }\r\n\r\n public set dash(value: Array<number>) {\r\n if (this._dash === value) {\r\n return;\r\n }\r\n\r\n this._dash = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the control connected with the line end */\r\n public get connectedControl(): Control {\r\n return this._connectedControl;\r\n }\r\n\r\n public set connectedControl(value: Control) {\r\n if (this._connectedControl === value) {\r\n return;\r\n }\r\n\r\n if (this._connectedControlDirtyObserver && this._connectedControl) {\r\n this._connectedControl.onDirtyObservable.remove(this._connectedControlDirtyObserver);\r\n this._connectedControlDirtyObserver = null;\r\n }\r\n\r\n if (value) {\r\n this._connectedControlDirtyObserver = value.onDirtyObservable.add(() => this._markAsDirty());\r\n }\r\n\r\n this._connectedControl = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets start coordinates on X axis */\r\n @serialize()\r\n public get x1(): string | number {\r\n return this._x1.toString(this._host);\r\n }\r\n\r\n public set x1(value: string | number) {\r\n if (this._x1.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._x1.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets start coordinates on Y axis */\r\n @serialize()\r\n public get y1(): string | number {\r\n return this._y1.toString(this._host);\r\n }\r\n\r\n public set y1(value: string | number) {\r\n if (this._y1.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._y1.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets end coordinates on X axis */\r\n @serialize()\r\n public get x2(): string | number {\r\n return this._x2.toString(this._host);\r\n }\r\n\r\n public set x2(value: string | number) {\r\n if (this._x2.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._x2.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets end coordinates on Y axis */\r\n @serialize()\r\n public get y2(): string | number {\r\n return this._y2.toString(this._host);\r\n }\r\n\r\n public set y2(value: string | number) {\r\n if (this._y2.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._y2.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets line width */\r\n @serialize()\r\n public get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n\r\n public set lineWidth(value: number) {\r\n if (this._lineWidth === value) {\r\n return;\r\n }\r\n\r\n this._lineWidth = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets horizontal alignment */\r\n public set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n /** Gets or sets vertical alignment */\r\n public set verticalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n private get _effectiveX2(): number {\r\n return (this._connectedControl ? this._connectedControl.centerX : 0) + this._x2.getValue(this._host);\r\n }\r\n\r\n private get _effectiveY2(): number {\r\n return (this._connectedControl ? this._connectedControl.centerY : 0) + this._y2.getValue(this._host);\r\n }\r\n\r\n /**\r\n * Creates a new Line\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this._automaticSize = true;\r\n\r\n this.isHitTestVisible = false;\r\n this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"Line\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n this._applyStates(context);\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._lineWidth;\r\n context.setLineDash(this._dash);\r\n\r\n context.beginPath();\r\n context.moveTo(this._cachedParentMeasure.left + this._x1.getValue(this._host), this._cachedParentMeasure.top + this._y1.getValue(this._host));\r\n\r\n context.lineTo(this._cachedParentMeasure.left + this._effectiveX2, this._cachedParentMeasure.top + this._effectiveY2);\r\n context.stroke();\r\n\r\n context.restore();\r\n }\r\n\r\n public _measure(): void {\r\n // Width / Height\r\n this._currentMeasure.width = Math.abs(this._x1.getValue(this._host) - this._effectiveX2) + this._lineWidth;\r\n this._currentMeasure.height = Math.abs(this._y1.getValue(this._host) - this._effectiveY2) + this._lineWidth;\r\n }\r\n\r\n protected _computeAlignment(parentMeasure: Measure): void {\r\n this._currentMeasure.left = parentMeasure.left + Math.min(this._x1.getValue(this._host), this._effectiveX2) - this._lineWidth / 2;\r\n this._currentMeasure.top = parentMeasure.top + Math.min(this._y1.getValue(this._host), this._effectiveY2) - this._lineWidth / 2;\r\n }\r\n\r\n /**\r\n * Move one end of the line given 3D cartesian coordinates.\r\n * @param position Targeted world position\r\n * @param scene Scene\r\n * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.\r\n */\r\n public moveToVector3(position: Vector3, scene: Scene, end: boolean = false): void {\r\n if (!this._host || this.parent !== this._host._rootContainer) {\r\n Tools.Error(\"Cannot move a control to a vector3 if the control is not at root level\");\r\n return;\r\n }\r\n\r\n const globalViewport = this._host._getGlobalViewport();\r\n const projectedPosition = Vector3.Project(position, Matrix.Identity(), scene.getTransformMatrix(), globalViewport);\r\n\r\n this._moveToProjectedPosition(projectedPosition, end);\r\n\r\n if (projectedPosition.z < 0 || projectedPosition.z > 1) {\r\n this.notRenderable = true;\r\n return;\r\n }\r\n this.notRenderable = false;\r\n }\r\n\r\n /**\r\n * Move one end of the line to a position in screen absolute space.\r\n * @param projectedPosition Position in screen absolute space (X, Y)\r\n * @param end (opt) Set to true to assign x2 and y2 coordinates of the line. Default assign to x1 and y1.\r\n */\r\n public _moveToProjectedPosition(projectedPosition: Vector3, end: boolean = false): void {\r\n const x: string = projectedPosition.x + this._linkOffsetX.getValue(this._host) + \"px\";\r\n const y: string = projectedPosition.y + this._linkOffsetY.getValue(this._host) + \"px\";\r\n\r\n if (end) {\r\n this.x2 = x;\r\n this.y2 = y;\r\n this._x2.ignoreAdaptiveScaling = true;\r\n this._y2.ignoreAdaptiveScaling = true;\r\n } else {\r\n this.x1 = x;\r\n this.y1 = y;\r\n this._x1.ignoreAdaptiveScaling = true;\r\n this._y1.ignoreAdaptiveScaling = true;\r\n }\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Line\", Line);\r\n"]}