@onerjs/gui 8.23.1

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 (354) hide show
  1. package/2D/FrameGraph/guiTask.d.ts +34 -0
  2. package/2D/FrameGraph/guiTask.js +62 -0
  3. package/2D/FrameGraph/guiTask.js.map +1 -0
  4. package/2D/FrameGraph/renderGraphGUIBlock.d.ts +43 -0
  5. package/2D/FrameGraph/renderGraphGUIBlock.js +66 -0
  6. package/2D/FrameGraph/renderGraphGUIBlock.js.map +1 -0
  7. package/2D/adtInstrumentation.d.ts +52 -0
  8. package/2D/adtInstrumentation.js +107 -0
  9. package/2D/adtInstrumentation.js.map +1 -0
  10. package/2D/advancedDynamicTexture.d.ts +548 -0
  11. package/2D/advancedDynamicTexture.js +1522 -0
  12. package/2D/advancedDynamicTexture.js.map +1 -0
  13. package/2D/controls/button.d.ts +109 -0
  14. package/2D/controls/button.js +246 -0
  15. package/2D/controls/button.js.map +1 -0
  16. package/2D/controls/checkbox.d.ts +53 -0
  17. package/2D/controls/checkbox.js +164 -0
  18. package/2D/controls/checkbox.js.map +1 -0
  19. package/2D/controls/colorpicker.d.ts +101 -0
  20. package/2D/controls/colorpicker.js +1396 -0
  21. package/2D/controls/colorpicker.js.map +1 -0
  22. package/2D/controls/container.d.ts +179 -0
  23. package/2D/controls/container.js +616 -0
  24. package/2D/controls/container.js.map +1 -0
  25. package/2D/controls/control.d.ts +943 -0
  26. package/2D/controls/control.js +2460 -0
  27. package/2D/controls/control.js.map +1 -0
  28. package/2D/controls/displayGrid.d.ts +53 -0
  29. package/2D/controls/displayGrid.js +202 -0
  30. package/2D/controls/displayGrid.js.map +1 -0
  31. package/2D/controls/ellipse.d.ts +25 -0
  32. package/2D/controls/ellipse.js +93 -0
  33. package/2D/controls/ellipse.js.map +1 -0
  34. package/2D/controls/focusableButton.d.ts +17 -0
  35. package/2D/controls/focusableButton.js +25 -0
  36. package/2D/controls/focusableButton.js.map +1 -0
  37. package/2D/controls/focusableControl.d.ts +43 -0
  38. package/2D/controls/focusableControl.js +2 -0
  39. package/2D/controls/focusableControl.js.map +1 -0
  40. package/2D/controls/gradient/BaseGradient.d.ts +69 -0
  41. package/2D/controls/gradient/BaseGradient.js +84 -0
  42. package/2D/controls/gradient/BaseGradient.js.map +1 -0
  43. package/2D/controls/gradient/LinearGradient.d.ts +45 -0
  44. package/2D/controls/gradient/LinearGradient.js +73 -0
  45. package/2D/controls/gradient/LinearGradient.js.map +1 -0
  46. package/2D/controls/gradient/RadialGradient.d.ts +53 -0
  47. package/2D/controls/gradient/RadialGradient.js +89 -0
  48. package/2D/controls/gradient/RadialGradient.js.map +1 -0
  49. package/2D/controls/grid.d.ts +151 -0
  50. package/2D/controls/grid.js +528 -0
  51. package/2D/controls/grid.js.map +1 -0
  52. package/2D/controls/image.d.ts +228 -0
  53. package/2D/controls/image.js +915 -0
  54. package/2D/controls/image.js.map +1 -0
  55. package/2D/controls/index.d.ts +34 -0
  56. package/2D/controls/index.js +35 -0
  57. package/2D/controls/index.js.map +1 -0
  58. package/2D/controls/inputPassword.d.ts +9 -0
  59. package/2D/controls/inputPassword.js +22 -0
  60. package/2D/controls/inputPassword.js.map +1 -0
  61. package/2D/controls/inputText.d.ts +197 -0
  62. package/2D/controls/inputText.js +1035 -0
  63. package/2D/controls/inputText.js.map +1 -0
  64. package/2D/controls/inputTextArea.d.ts +142 -0
  65. package/2D/controls/inputTextArea.js +1025 -0
  66. package/2D/controls/inputTextArea.js.map +1 -0
  67. package/2D/controls/line.d.ts +73 -0
  68. package/2D/controls/line.js +227 -0
  69. package/2D/controls/line.js.map +1 -0
  70. package/2D/controls/multiLine.d.ts +75 -0
  71. package/2D/controls/multiLine.js +237 -0
  72. package/2D/controls/multiLine.js.map +1 -0
  73. package/2D/controls/radioButton.d.ts +49 -0
  74. package/2D/controls/radioButton.js +185 -0
  75. package/2D/controls/radioButton.js.map +1 -0
  76. package/2D/controls/rectangle.d.ts +43 -0
  77. package/2D/controls/rectangle.js +204 -0
  78. package/2D/controls/rectangle.js.map +1 -0
  79. package/2D/controls/scrollViewers/scrollViewer.d.ts +178 -0
  80. package/2D/controls/scrollViewers/scrollViewer.js +587 -0
  81. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -0
  82. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +51 -0
  83. package/2D/controls/scrollViewers/scrollViewerWindow.js +254 -0
  84. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -0
  85. package/2D/controls/selector.d.ts +237 -0
  86. package/2D/controls/selector.js +579 -0
  87. package/2D/controls/selector.js.map +1 -0
  88. package/2D/controls/sliders/baseSlider.d.ts +80 -0
  89. package/2D/controls/sliders/baseSlider.js +299 -0
  90. package/2D/controls/sliders/baseSlider.js.map +1 -0
  91. package/2D/controls/sliders/imageBasedSlider.d.ts +47 -0
  92. package/2D/controls/sliders/imageBasedSlider.js +168 -0
  93. package/2D/controls/sliders/imageBasedSlider.js.map +1 -0
  94. package/2D/controls/sliders/imageScrollBar.d.ts +67 -0
  95. package/2D/controls/sliders/imageScrollBar.js +248 -0
  96. package/2D/controls/sliders/imageScrollBar.js.map +1 -0
  97. package/2D/controls/sliders/scrollBar.d.ts +50 -0
  98. package/2D/controls/sliders/scrollBar.js +175 -0
  99. package/2D/controls/sliders/scrollBar.js.map +1 -0
  100. package/2D/controls/sliders/slider.d.ts +46 -0
  101. package/2D/controls/sliders/slider.js +281 -0
  102. package/2D/controls/sliders/slider.js.map +1 -0
  103. package/2D/controls/stackPanel.d.ts +64 -0
  104. package/2D/controls/stackPanel.js +244 -0
  105. package/2D/controls/stackPanel.js.map +1 -0
  106. package/2D/controls/statics.d.ts +6 -0
  107. package/2D/controls/statics.js +50 -0
  108. package/2D/controls/statics.js.map +1 -0
  109. package/2D/controls/textBlock.d.ts +219 -0
  110. package/2D/controls/textBlock.js +670 -0
  111. package/2D/controls/textBlock.js.map +1 -0
  112. package/2D/controls/textWrapper.d.ts +13 -0
  113. package/2D/controls/textWrapper.js +88 -0
  114. package/2D/controls/textWrapper.js.map +1 -0
  115. package/2D/controls/toggleButton.d.ts +93 -0
  116. package/2D/controls/toggleButton.js +229 -0
  117. package/2D/controls/toggleButton.js.map +1 -0
  118. package/2D/controls/virtualKeyboard.d.ts +102 -0
  119. package/2D/controls/virtualKeyboard.js +275 -0
  120. package/2D/controls/virtualKeyboard.js.map +1 -0
  121. package/2D/index.d.ts +11 -0
  122. package/2D/index.js +13 -0
  123. package/2D/index.js.map +1 -0
  124. package/2D/math2D.d.ts +136 -0
  125. package/2D/math2D.js +235 -0
  126. package/2D/math2D.js.map +1 -0
  127. package/2D/measure.d.ts +77 -0
  128. package/2D/measure.js +138 -0
  129. package/2D/measure.js.map +1 -0
  130. package/2D/multiLinePoint.d.ts +47 -0
  131. package/2D/multiLinePoint.js +110 -0
  132. package/2D/multiLinePoint.js.map +1 -0
  133. package/2D/style.d.ts +46 -0
  134. package/2D/style.js +80 -0
  135. package/2D/style.js.map +1 -0
  136. package/2D/valueAndUnit.d.ts +89 -0
  137. package/2D/valueAndUnit.js +194 -0
  138. package/2D/valueAndUnit.js.map +1 -0
  139. package/2D/xmlLoader.d.ts +60 -0
  140. package/2D/xmlLoader.js +348 -0
  141. package/2D/xmlLoader.js.map +1 -0
  142. package/3D/behaviors/defaultBehavior.d.ts +73 -0
  143. package/3D/behaviors/defaultBehavior.js +103 -0
  144. package/3D/behaviors/defaultBehavior.js.map +1 -0
  145. package/3D/controls/MRTK3/touchHolographicButton.d.ts +220 -0
  146. package/3D/controls/MRTK3/touchHolographicButton.js +868 -0
  147. package/3D/controls/MRTK3/touchHolographicButton.js.map +1 -0
  148. package/3D/controls/abstractButton3D.d.ts +15 -0
  149. package/3D/controls/abstractButton3D.js +22 -0
  150. package/3D/controls/abstractButton3D.js.map +1 -0
  151. package/3D/controls/button3D.d.ts +51 -0
  152. package/3D/controls/button3D.js +98 -0
  153. package/3D/controls/button3D.js.map +1 -0
  154. package/3D/controls/container3D.d.ts +72 -0
  155. package/3D/controls/container3D.js +126 -0
  156. package/3D/controls/container3D.js.map +1 -0
  157. package/3D/controls/contentDisplay3D.d.ts +42 -0
  158. package/3D/controls/contentDisplay3D.js +81 -0
  159. package/3D/controls/contentDisplay3D.js.map +1 -0
  160. package/3D/controls/control3D.d.ts +183 -0
  161. package/3D/controls/control3D.js +401 -0
  162. package/3D/controls/control3D.js.map +1 -0
  163. package/3D/controls/cylinderPanel.d.ts +17 -0
  164. package/3D/controls/cylinderPanel.js +57 -0
  165. package/3D/controls/cylinderPanel.js.map +1 -0
  166. package/3D/controls/handMenu.d.ts +28 -0
  167. package/3D/controls/handMenu.js +39 -0
  168. package/3D/controls/handMenu.js.map +1 -0
  169. package/3D/controls/holographicBackplate.d.ts +49 -0
  170. package/3D/controls/holographicBackplate.js +104 -0
  171. package/3D/controls/holographicBackplate.js.map +1 -0
  172. package/3D/controls/holographicButton.d.ts +84 -0
  173. package/3D/controls/holographicButton.js +300 -0
  174. package/3D/controls/holographicButton.js.map +1 -0
  175. package/3D/controls/holographicSlate.d.ts +134 -0
  176. package/3D/controls/holographicSlate.js +413 -0
  177. package/3D/controls/holographicSlate.js.map +1 -0
  178. package/3D/controls/index.d.ts +22 -0
  179. package/3D/controls/index.js +24 -0
  180. package/3D/controls/index.js.map +1 -0
  181. package/3D/controls/meshButton3D.d.ts +21 -0
  182. package/3D/controls/meshButton3D.js +58 -0
  183. package/3D/controls/meshButton3D.js.map +1 -0
  184. package/3D/controls/nearMenu.d.ts +44 -0
  185. package/3D/controls/nearMenu.js +103 -0
  186. package/3D/controls/nearMenu.js.map +1 -0
  187. package/3D/controls/planePanel.d.ts +9 -0
  188. package/3D/controls/planePanel.js +30 -0
  189. package/3D/controls/planePanel.js.map +1 -0
  190. package/3D/controls/scatterPanel.d.ts +18 -0
  191. package/3D/controls/scatterPanel.js +98 -0
  192. package/3D/controls/scatterPanel.js.map +1 -0
  193. package/3D/controls/slider3D.d.ts +95 -0
  194. package/3D/controls/slider3D.js +256 -0
  195. package/3D/controls/slider3D.js.map +1 -0
  196. package/3D/controls/spherePanel.d.ts +17 -0
  197. package/3D/controls/spherePanel.js +58 -0
  198. package/3D/controls/spherePanel.js.map +1 -0
  199. package/3D/controls/stackPanel3D.d.ts +22 -0
  200. package/3D/controls/stackPanel3D.js +95 -0
  201. package/3D/controls/stackPanel3D.js.map +1 -0
  202. package/3D/controls/touchButton3D.d.ts +77 -0
  203. package/3D/controls/touchButton3D.js +205 -0
  204. package/3D/controls/touchButton3D.js.map +1 -0
  205. package/3D/controls/touchHolographicButton.d.ts +110 -0
  206. package/3D/controls/touchHolographicButton.js +400 -0
  207. package/3D/controls/touchHolographicButton.js.map +1 -0
  208. package/3D/controls/touchHolographicMenu.d.ts +61 -0
  209. package/3D/controls/touchHolographicMenu.js +139 -0
  210. package/3D/controls/touchHolographicMenu.js.map +1 -0
  211. package/3D/controls/touchMeshButton3D.d.ts +21 -0
  212. package/3D/controls/touchMeshButton3D.js +58 -0
  213. package/3D/controls/touchMeshButton3D.js.map +1 -0
  214. package/3D/controls/volumeBasedPanel.d.ts +53 -0
  215. package/3D/controls/volumeBasedPanel.js +158 -0
  216. package/3D/controls/volumeBasedPanel.js.map +1 -0
  217. package/3D/gizmos/gizmoHandle.d.ts +108 -0
  218. package/3D/gizmos/gizmoHandle.js +175 -0
  219. package/3D/gizmos/gizmoHandle.js.map +1 -0
  220. package/3D/gizmos/index.d.ts +2 -0
  221. package/3D/gizmos/index.js +3 -0
  222. package/3D/gizmos/index.js.map +1 -0
  223. package/3D/gizmos/slateGizmo.d.ts +57 -0
  224. package/3D/gizmos/slateGizmo.js +353 -0
  225. package/3D/gizmos/slateGizmo.js.map +1 -0
  226. package/3D/gui3DManager.d.ts +94 -0
  227. package/3D/gui3DManager.js +233 -0
  228. package/3D/gui3DManager.js.map +1 -0
  229. package/3D/index.d.ts +5 -0
  230. package/3D/index.js +7 -0
  231. package/3D/index.js.map +1 -0
  232. package/3D/materials/fluent/fluentMaterial.d.ts +91 -0
  233. package/3D/materials/fluent/fluentMaterial.js +286 -0
  234. package/3D/materials/fluent/fluentMaterial.js.map +1 -0
  235. package/3D/materials/fluent/index.d.ts +1 -0
  236. package/3D/materials/fluent/index.js +2 -0
  237. package/3D/materials/fluent/index.js.map +1 -0
  238. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -0
  239. package/3D/materials/fluent/shaders/fluent.fragment.js +41 -0
  240. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
  241. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -0
  242. package/3D/materials/fluent/shaders/fluent.vertex.js +40 -0
  243. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
  244. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -0
  245. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +466 -0
  246. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
  247. package/3D/materials/fluentBackplate/index.d.ts +1 -0
  248. package/3D/materials/fluentBackplate/index.js +2 -0
  249. package/3D/materials/fluentBackplate/index.js.map +1 -0
  250. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
  251. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +60 -0
  252. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
  253. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
  254. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +127 -0
  255. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
  256. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -0
  257. package/3D/materials/fluentButton/fluentButtonMaterial.js +536 -0
  258. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
  259. package/3D/materials/fluentButton/index.d.ts +1 -0
  260. package/3D/materials/fluentButton/index.js +2 -0
  261. package/3D/materials/fluentButton/index.js.map +1 -0
  262. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
  263. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +57 -0
  264. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
  265. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
  266. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +162 -0
  267. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
  268. package/3D/materials/fluentMaterial.d.ts +4 -0
  269. package/3D/materials/fluentMaterial.js +5 -0
  270. package/3D/materials/fluentMaterial.js.map +1 -0
  271. package/3D/materials/handle/handleMaterial.d.ts +68 -0
  272. package/3D/materials/handle/handleMaterial.js +114 -0
  273. package/3D/materials/handle/handleMaterial.js.map +1 -0
  274. package/3D/materials/handle/index.d.ts +1 -0
  275. package/3D/materials/handle/index.js +2 -0
  276. package/3D/materials/handle/index.js.map +1 -0
  277. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
  278. package/3D/materials/handle/shaders/handle.fragment.js +11 -0
  279. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
  280. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
  281. package/3D/materials/handle/shaders/handle.vertex.js +11 -0
  282. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
  283. package/3D/materials/index.d.ts +5 -0
  284. package/3D/materials/index.js +7 -0
  285. package/3D/materials/index.js.map +1 -0
  286. package/3D/materials/mrdl/index.d.ts +3 -0
  287. package/3D/materials/mrdl/index.js +4 -0
  288. package/3D/materials/mrdl/index.js.map +1 -0
  289. package/3D/materials/mrdl/mrdlBackglowMaterial.d.ts +87 -0
  290. package/3D/materials/mrdl/mrdlBackglowMaterial.js +302 -0
  291. package/3D/materials/mrdl/mrdlBackglowMaterial.js.map +1 -0
  292. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -0
  293. package/3D/materials/mrdl/mrdlBackplateMaterial.js +433 -0
  294. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
  295. package/3D/materials/mrdl/mrdlFrontplateMaterial.d.ts +186 -0
  296. package/3D/materials/mrdl/mrdlFrontplateMaterial.js +532 -0
  297. package/3D/materials/mrdl/mrdlFrontplateMaterial.js.map +1 -0
  298. package/3D/materials/mrdl/mrdlInnerquadMaterial.d.ts +56 -0
  299. package/3D/materials/mrdl/mrdlInnerquadMaterial.js +230 -0
  300. package/3D/materials/mrdl/mrdlInnerquadMaterial.js.map +1 -0
  301. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +337 -0
  302. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +855 -0
  303. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
  304. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +337 -0
  305. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +855 -0
  306. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
  307. package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.d.ts +5 -0
  308. package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.js +25 -0
  309. package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.js.map +1 -0
  310. package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.d.ts +5 -0
  311. package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.js +12 -0
  312. package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.js.map +1 -0
  313. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
  314. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +88 -0
  315. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
  316. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
  317. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +96 -0
  318. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
  319. package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.d.ts +5 -0
  320. package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.js +48 -0
  321. package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.js.map +1 -0
  322. package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.d.ts +5 -0
  323. package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.js +158 -0
  324. package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.js.map +1 -0
  325. package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.d.ts +5 -0
  326. package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.js +27 -0
  327. package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.js.map +1 -0
  328. package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.d.ts +5 -0
  329. package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.js +13 -0
  330. package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.js.map +1 -0
  331. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
  332. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +236 -0
  333. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
  334. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
  335. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +137 -0
  336. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
  337. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
  338. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +236 -0
  339. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
  340. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
  341. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +137 -0
  342. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
  343. package/3D/vector3WithInfo.d.ts +16 -0
  344. package/3D/vector3WithInfo.js +18 -0
  345. package/3D/vector3WithInfo.js.map +1 -0
  346. package/index.d.ts +2 -0
  347. package/index.js +4 -0
  348. package/index.js.map +1 -0
  349. package/legacy/legacy.d.ts +1 -0
  350. package/legacy/legacy.js +17 -0
  351. package/legacy/legacy.js.map +1 -0
  352. package/license.md +71 -0
  353. package/package.json +47 -0
  354. package/readme.md +31 -0
@@ -0,0 +1,202 @@
1
+ import { __decorate } from "@babylonjs/core/tslib.es6.js";
2
+ import { Control } from "./control.js";
3
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
4
+ import { serialize } from "@babylonjs/core/Misc/decorators.js";
5
+ /** Class used to render a grid */
6
+ export class DisplayGrid extends Control {
7
+ /** Gets or sets a boolean indicating if minor lines must be rendered (true by default)) */
8
+ get displayMinorLines() {
9
+ return this._displayMinorLines;
10
+ }
11
+ set displayMinorLines(value) {
12
+ if (this._displayMinorLines === value) {
13
+ return;
14
+ }
15
+ this._displayMinorLines = value;
16
+ this._markAsDirty();
17
+ }
18
+ /** Gets or sets a boolean indicating if major lines must be rendered (true by default)) */
19
+ get displayMajorLines() {
20
+ return this._displayMajorLines;
21
+ }
22
+ set displayMajorLines(value) {
23
+ if (this._displayMajorLines === value) {
24
+ return;
25
+ }
26
+ this._displayMajorLines = value;
27
+ this._markAsDirty();
28
+ }
29
+ /** Gets or sets background color (Black by default) */
30
+ get background() {
31
+ return this._background;
32
+ }
33
+ set background(value) {
34
+ if (this._background === value) {
35
+ return;
36
+ }
37
+ this._background = value;
38
+ this._markAsDirty();
39
+ }
40
+ /** Gets or sets the width of each cell (20 by default) */
41
+ get cellWidth() {
42
+ return this._cellWidth;
43
+ }
44
+ set cellWidth(value) {
45
+ this._cellWidth = value;
46
+ this._markAsDirty();
47
+ }
48
+ /** Gets or sets the height of each cell (20 by default) */
49
+ get cellHeight() {
50
+ return this._cellHeight;
51
+ }
52
+ set cellHeight(value) {
53
+ this._cellHeight = value;
54
+ this._markAsDirty();
55
+ }
56
+ /** Gets or sets the tickness of minor lines (1 by default) */
57
+ get minorLineTickness() {
58
+ return this._minorLineTickness;
59
+ }
60
+ set minorLineTickness(value) {
61
+ this._minorLineTickness = value;
62
+ this._markAsDirty();
63
+ }
64
+ /** Gets or sets the color of minor lines (DarkGray by default) */
65
+ get minorLineColor() {
66
+ return this._minorLineColor;
67
+ }
68
+ set minorLineColor(value) {
69
+ this._minorLineColor = value;
70
+ this._markAsDirty();
71
+ }
72
+ /** Gets or sets the tickness of major lines (2 by default) */
73
+ get majorLineTickness() {
74
+ return this._majorLineTickness;
75
+ }
76
+ set majorLineTickness(value) {
77
+ this._majorLineTickness = value;
78
+ this._markAsDirty();
79
+ }
80
+ /** Gets or sets the color of major lines (White by default) */
81
+ get majorLineColor() {
82
+ return this._majorLineColor;
83
+ }
84
+ set majorLineColor(value) {
85
+ this._majorLineColor = value;
86
+ this._markAsDirty();
87
+ }
88
+ /** Gets or sets the frequency of major lines (default is 1 every 5 minor lines)*/
89
+ get majorLineFrequency() {
90
+ return this._majorLineFrequency;
91
+ }
92
+ set majorLineFrequency(value) {
93
+ this._majorLineFrequency = value;
94
+ this._markAsDirty();
95
+ }
96
+ /**
97
+ * Creates a new GridDisplayRectangle
98
+ * @param name defines the control name
99
+ */
100
+ constructor(name) {
101
+ super(name);
102
+ this.name = name;
103
+ this._cellWidth = 20;
104
+ this._cellHeight = 20;
105
+ this._minorLineTickness = 1;
106
+ this._minorLineColor = "DarkGray";
107
+ this._majorLineTickness = 2;
108
+ this._majorLineColor = "White";
109
+ this._majorLineFrequency = 5;
110
+ this._background = "Black";
111
+ this._displayMajorLines = true;
112
+ this._displayMinorLines = true;
113
+ }
114
+ _draw(context) {
115
+ context.save();
116
+ this._applyStates(context);
117
+ if (this._isEnabled) {
118
+ if (this._background) {
119
+ context.fillStyle = this._background;
120
+ context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
121
+ }
122
+ const cellCountX = this._currentMeasure.width / this._cellWidth;
123
+ const cellCountY = this._currentMeasure.height / this._cellHeight;
124
+ // Minor lines
125
+ const left = this._currentMeasure.left + this._currentMeasure.width / 2;
126
+ const top = this._currentMeasure.top + this._currentMeasure.height / 2;
127
+ if (this._displayMinorLines) {
128
+ context.strokeStyle = this._minorLineColor;
129
+ context.lineWidth = this._minorLineTickness;
130
+ for (let x = -cellCountX / 2 + 1; x < cellCountX / 2; x++) {
131
+ const cellX = left + x * this.cellWidth;
132
+ context.beginPath();
133
+ context.moveTo(cellX, this._currentMeasure.top);
134
+ context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);
135
+ context.stroke();
136
+ }
137
+ for (let y = -cellCountY / 2 + 1; y < cellCountY / 2; y++) {
138
+ const cellY = top + y * this.cellHeight;
139
+ context.beginPath();
140
+ context.moveTo(this._currentMeasure.left, cellY);
141
+ context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);
142
+ context.stroke();
143
+ }
144
+ }
145
+ // Major lines
146
+ if (this._displayMajorLines) {
147
+ context.strokeStyle = this._majorLineColor;
148
+ context.lineWidth = this._majorLineTickness;
149
+ for (let x = -cellCountX / 2 + this._majorLineFrequency; x < cellCountX / 2; x += this._majorLineFrequency) {
150
+ const cellX = left + x * this.cellWidth;
151
+ context.beginPath();
152
+ context.moveTo(cellX, this._currentMeasure.top);
153
+ context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);
154
+ context.stroke();
155
+ }
156
+ for (let y = -cellCountY / 2 + this._majorLineFrequency; y < cellCountY / 2; y += this._majorLineFrequency) {
157
+ const cellY = top + y * this.cellHeight;
158
+ context.moveTo(this._currentMeasure.left, cellY);
159
+ context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);
160
+ context.closePath();
161
+ context.stroke();
162
+ }
163
+ }
164
+ }
165
+ context.restore();
166
+ }
167
+ _getTypeName() {
168
+ return "DisplayGrid";
169
+ }
170
+ }
171
+ __decorate([
172
+ serialize()
173
+ ], DisplayGrid.prototype, "displayMinorLines", null);
174
+ __decorate([
175
+ serialize()
176
+ ], DisplayGrid.prototype, "displayMajorLines", null);
177
+ __decorate([
178
+ serialize()
179
+ ], DisplayGrid.prototype, "background", null);
180
+ __decorate([
181
+ serialize()
182
+ ], DisplayGrid.prototype, "cellWidth", null);
183
+ __decorate([
184
+ serialize()
185
+ ], DisplayGrid.prototype, "cellHeight", null);
186
+ __decorate([
187
+ serialize()
188
+ ], DisplayGrid.prototype, "minorLineTickness", null);
189
+ __decorate([
190
+ serialize()
191
+ ], DisplayGrid.prototype, "minorLineColor", null);
192
+ __decorate([
193
+ serialize()
194
+ ], DisplayGrid.prototype, "majorLineTickness", null);
195
+ __decorate([
196
+ serialize()
197
+ ], DisplayGrid.prototype, "majorLineColor", null);
198
+ __decorate([
199
+ serialize()
200
+ ], DisplayGrid.prototype, "majorLineFrequency", null);
201
+ RegisterClass("BABYLON.GUI.DisplayGrid", DisplayGrid);
202
+ //# sourceMappingURL=displayGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"displayGrid.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/displayGrid.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,0CAA4B;AACpD,OAAO,EAAE,SAAS,EAAE,2CAA6B;AAGjD,mCAAmC;AACnC,MAAM,OAAO,WAAY,SAAQ,OAAO;IAiBpC,2FAA2F;IAE3F,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,IAAW,iBAAiB,CAAC,KAAc;QACvC,IAAI,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;YACpC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,2FAA2F;IAE3F,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,IAAW,iBAAiB,CAAC,KAAc;QACvC,IAAI,IAAI,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;YACpC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,uDAAuD;IAEvD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QAC/B,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO;QACX,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,0DAA0D;IAE1D,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,2DAA2D;IAE3D,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QAC/B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,8DAA8D;IAE9D,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,IAAW,iBAAiB,CAAC,KAAa;QACtC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,kEAAkE;IAElE,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,8DAA8D;IAE9D,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,IAAW,iBAAiB,CAAC,KAAa;QACtC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,+DAA+D;IAE/D,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAE7B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,kFAAkF;IAElF,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,IAAW,kBAAkB,CAAC,KAAa;QACvC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAEjC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,YAA4B,IAAa;QACrC,KAAK,CAAC,IAAI,CAAC,CAAC;QADY,SAAI,GAAJ,IAAI,CAAS;QArJjC,eAAU,GAAG,EAAE,CAAC;QAChB,gBAAW,GAAG,EAAE,CAAC;QAEjB,uBAAkB,GAAG,CAAC,CAAC;QACvB,oBAAe,GAAG,UAAU,CAAC;QAE7B,uBAAkB,GAAG,CAAC,CAAC;QACvB,oBAAe,GAAG,OAAO,CAAC;QAE1B,wBAAmB,GAAG,CAAC,CAAC;QAExB,gBAAW,GAAG,OAAO,CAAC;QAEtB,uBAAkB,GAAG,IAAI,CAAC;QAC1B,uBAAkB,GAAG,IAAI,CAAC;IAyIlC,CAAC;IAEe,KAAK,CAAC,OAAgC;QAClD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;gBACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACnI,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAElE,cAAc;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAEvE,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC3C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;oBAExC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAE9E,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrB,CAAC;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;oBAExC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACjD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC9E,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrB,CAAC;YACL,CAAC;YAED,cAAc;YACd,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC3C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACzG,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;oBAExC,OAAO,CAAC,SAAS,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;oBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC9E,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrB,CAAC;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACzG,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;oBACxC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACjD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC9E,OAAO,CAAC,SAAS,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAEkB,YAAY;QAC3B,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AA/MG;IADC,SAAS,EAAE;oDAGX;AAaD;IADC,SAAS,EAAE;oDAGX;AAaD;IADC,SAAS,EAAE;6CAGX;AAaD;IADC,SAAS,EAAE;4CAGX;AAUD;IADC,SAAS,EAAE;6CAGX;AAUD;IADC,SAAS,EAAE;oDAGX;AAUD;IADC,SAAS,EAAE;iDAGX;AAUD;IADC,SAAS,EAAE;oDAGX;AAUD;IADC,SAAS,EAAE;iDAGX;AAUD;IADC,SAAS,EAAE;qDAGX;AAyFL,aAAa,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC","sourcesContent":["import { Control } from \"./control\";\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 a grid */\r\nexport class DisplayGrid extends Control {\r\n private _cellWidth = 20;\r\n private _cellHeight = 20;\r\n\r\n private _minorLineTickness = 1;\r\n private _minorLineColor = \"DarkGray\";\r\n\r\n private _majorLineTickness = 2;\r\n private _majorLineColor = \"White\";\r\n\r\n private _majorLineFrequency = 5;\r\n\r\n private _background = \"Black\";\r\n\r\n private _displayMajorLines = true;\r\n private _displayMinorLines = true;\r\n\r\n /** Gets or sets a boolean indicating if minor lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMinorLines(): boolean {\r\n return this._displayMinorLines;\r\n }\r\n\r\n public set displayMinorLines(value: boolean) {\r\n if (this._displayMinorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMinorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if major lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMajorLines(): boolean {\r\n return this._displayMajorLines;\r\n }\r\n\r\n public set displayMajorLines(value: boolean) {\r\n if (this._displayMajorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMajorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color (Black by default) */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the width of each cell (20 by default) */\r\n @serialize()\r\n public get cellWidth(): number {\r\n return this._cellWidth;\r\n }\r\n\r\n public set cellWidth(value: number) {\r\n this._cellWidth = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of each cell (20 by default) */\r\n @serialize()\r\n public get cellHeight(): number {\r\n return this._cellHeight;\r\n }\r\n\r\n public set cellHeight(value: number) {\r\n this._cellHeight = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of minor lines (1 by default) */\r\n @serialize()\r\n public get minorLineTickness(): number {\r\n return this._minorLineTickness;\r\n }\r\n\r\n public set minorLineTickness(value: number) {\r\n this._minorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of minor lines (DarkGray by default) */\r\n @serialize()\r\n public get minorLineColor(): string {\r\n return this._minorLineColor;\r\n }\r\n\r\n public set minorLineColor(value: string) {\r\n this._minorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of major lines (2 by default) */\r\n @serialize()\r\n public get majorLineTickness(): number {\r\n return this._majorLineTickness;\r\n }\r\n\r\n public set majorLineTickness(value: number) {\r\n this._majorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of major lines (White by default) */\r\n @serialize()\r\n public get majorLineColor(): string {\r\n return this._majorLineColor;\r\n }\r\n\r\n public set majorLineColor(value: string) {\r\n this._majorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the frequency of major lines (default is 1 every 5 minor lines)*/\r\n @serialize()\r\n public get majorLineFrequency(): number {\r\n return this._majorLineFrequency;\r\n }\r\n\r\n public set majorLineFrequency(value: number) {\r\n this._majorLineFrequency = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new GridDisplayRectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n public override _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n\r\n if (this._isEnabled) {\r\n if (this._background) {\r\n context.fillStyle = this._background;\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n\r\n const cellCountX = this._currentMeasure.width / this._cellWidth;\r\n const cellCountY = this._currentMeasure.height / this._cellHeight;\r\n\r\n // Minor lines\r\n const left = this._currentMeasure.left + this._currentMeasure.width / 2;\r\n const top = this._currentMeasure.top + this._currentMeasure.height / 2;\r\n\r\n if (this._displayMinorLines) {\r\n context.strokeStyle = this._minorLineColor;\r\n context.lineWidth = this._minorLineTickness;\r\n\r\n for (let x = -cellCountX / 2 + 1; x < cellCountX / 2; x++) {\r\n const cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n\r\n context.stroke();\r\n }\r\n\r\n for (let y = -cellCountY / 2 + 1; y < cellCountY / 2; y++) {\r\n const cellY = top + y * this.cellHeight;\r\n\r\n context.beginPath();\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.stroke();\r\n }\r\n }\r\n\r\n // Major lines\r\n if (this._displayMajorLines) {\r\n context.strokeStyle = this._majorLineColor;\r\n context.lineWidth = this._majorLineTickness;\r\n\r\n for (let x = -cellCountX / 2 + this._majorLineFrequency; x < cellCountX / 2; x += this._majorLineFrequency) {\r\n const cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n context.stroke();\r\n }\r\n\r\n for (let y = -cellCountY / 2 + this._majorLineFrequency; y < cellCountY / 2; y += this._majorLineFrequency) {\r\n const cellY = top + y * this.cellHeight;\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"DisplayGrid\";\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.DisplayGrid\", DisplayGrid);\r\n"]}
@@ -0,0 +1,25 @@
1
+ import { Container } from "./container.js";
2
+ import type { Measure } from "../measure.js";
3
+ import type { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
4
+ /** Class used to create 2D ellipse containers */
5
+ export declare class Ellipse extends Container {
6
+ name?: string | undefined;
7
+ private _thickness;
8
+ /** Gets or sets border thickness */
9
+ get thickness(): number;
10
+ set thickness(value: number);
11
+ private _arc;
12
+ /** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */
13
+ get arc(): number;
14
+ set arc(value: number);
15
+ /**
16
+ * Creates a new Ellipse
17
+ * @param name defines the control name
18
+ */
19
+ constructor(name?: string | undefined);
20
+ protected _getTypeName(): string;
21
+ protected _localDraw(context: ICanvasRenderingContext): void;
22
+ protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
23
+ protected _clipForChildren(context: ICanvasRenderingContext): void;
24
+ _renderHighlightSpecific(context: ICanvasRenderingContext): void;
25
+ }
@@ -0,0 +1,93 @@
1
+ import { __decorate } from "@babylonjs/core/tslib.es6.js";
2
+ import { Container } from "./container.js";
3
+ import { Control } from "./control.js";
4
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
5
+ import { serialize } from "@babylonjs/core/Misc/decorators.js";
6
+ /** Class used to create 2D ellipse containers */
7
+ export class Ellipse extends Container {
8
+ /** Gets or sets border thickness */
9
+ get thickness() {
10
+ return this._thickness;
11
+ }
12
+ set thickness(value) {
13
+ if (this._thickness === value) {
14
+ return;
15
+ }
16
+ this._thickness = value;
17
+ this._markAsDirty();
18
+ }
19
+ /** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */
20
+ get arc() {
21
+ return this._arc;
22
+ }
23
+ set arc(value) {
24
+ if (this._arc === value) {
25
+ return;
26
+ }
27
+ this._arc = value;
28
+ this._markAsDirty();
29
+ }
30
+ /**
31
+ * Creates a new Ellipse
32
+ * @param name defines the control name
33
+ */
34
+ constructor(name) {
35
+ super(name);
36
+ this.name = name;
37
+ this._thickness = 1;
38
+ this._arc = 1;
39
+ }
40
+ _getTypeName() {
41
+ return "Ellipse";
42
+ }
43
+ _localDraw(context) {
44
+ context.save();
45
+ if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
46
+ context.shadowColor = this.shadowColor;
47
+ context.shadowBlur = this.shadowBlur;
48
+ context.shadowOffsetX = this.shadowOffsetX;
49
+ context.shadowOffsetY = this.shadowOffsetY;
50
+ }
51
+ Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, this._arc, context);
52
+ if (this._backgroundGradient || this._background) {
53
+ context.fillStyle = this._getBackgroundColor(context);
54
+ context.fill();
55
+ }
56
+ if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
57
+ context.shadowBlur = 0;
58
+ context.shadowOffsetX = 0;
59
+ context.shadowOffsetY = 0;
60
+ }
61
+ if (this._thickness) {
62
+ if (this.color) {
63
+ context.strokeStyle = this.color;
64
+ }
65
+ context.lineWidth = this._thickness;
66
+ context.stroke();
67
+ }
68
+ context.restore();
69
+ }
70
+ _additionalProcessing(parentMeasure, context) {
71
+ super._additionalProcessing(parentMeasure, context);
72
+ this._measureForChildren.width -= 2 * this._thickness;
73
+ this._measureForChildren.height -= 2 * this._thickness;
74
+ this._measureForChildren.left += this._thickness;
75
+ this._measureForChildren.top += this._thickness;
76
+ }
77
+ _clipForChildren(context) {
78
+ Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2, this._currentMeasure.height / 2, this._arc, context);
79
+ context.clip();
80
+ }
81
+ _renderHighlightSpecific(context) {
82
+ Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._highlightLineWidth / 2, this._currentMeasure.height / 2 - this._highlightLineWidth / 2, this._arc, context);
83
+ context.stroke();
84
+ }
85
+ }
86
+ __decorate([
87
+ serialize()
88
+ ], Ellipse.prototype, "thickness", null);
89
+ __decorate([
90
+ serialize()
91
+ ], Ellipse.prototype, "arc", null);
92
+ RegisterClass("BABYLON.GUI.Ellipse", Ellipse);
93
+ //# sourceMappingURL=ellipse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/ellipse.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { Control } from \"./control\";\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 create 2D ellipse containers */\r\nexport class Ellipse extends Container {\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n private _arc = 1;\r\n\r\n /** Gets or sets arcing of the ellipse (ratio of the circumference between 0 and 1) */\r\n @serialize()\r\n public get arc(): number {\r\n return this._arc;\r\n }\r\n\r\n public set arc(value: number) {\r\n if (this._arc === value) {\r\n return;\r\n }\r\n\r\n this._arc = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new Ellipse\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"Ellipse\";\r\n }\r\n\r\n protected override _localDraw(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 Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2,\r\n this._currentMeasure.height / 2 - this._thickness / 2,\r\n this._arc,\r\n context\r\n );\r\n\r\n if (this._backgroundGradient || this._background) {\r\n context.fillStyle = this._getBackgroundColor(context);\r\n\r\n context.fill();\r\n }\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n if (this._thickness) {\r\n if (this.color) {\r\n context.strokeStyle = this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected override _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.width -= 2 * this._thickness;\r\n this._measureForChildren.height -= 2 * this._thickness;\r\n this._measureForChildren.left += this._thickness;\r\n this._measureForChildren.top += this._thickness;\r\n }\r\n\r\n protected override _clipForChildren(context: ICanvasRenderingContext) {\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2,\r\n this._currentMeasure.height / 2,\r\n this._arc,\r\n context\r\n );\r\n\r\n context.clip();\r\n }\r\n\r\n public override _renderHighlightSpecific(context: ICanvasRenderingContext): void {\r\n Control.drawEllipse(\r\n this._currentMeasure.left + this._currentMeasure.width / 2,\r\n this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._highlightLineWidth / 2,\r\n this._currentMeasure.height / 2 - this._highlightLineWidth / 2,\r\n this._arc,\r\n context\r\n );\r\n context.stroke();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Ellipse\", Ellipse);\r\n"]}
@@ -0,0 +1,17 @@
1
+ import type { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
2
+ import { Button } from "./button.js";
3
+ import type { Control } from "./control.js";
4
+ import type { PointerInfoBase } from "@babylonjs/core/Events/pointerEvents.js";
5
+ import type { IFocusableControl } from "./focusableControl.js";
6
+ /**
7
+ * Class used to create a focusable button that can easily handle keyboard events
8
+ * @since 5.0.0
9
+ */
10
+ export declare class FocusableButton extends Button implements IFocusableControl {
11
+ name?: string | undefined;
12
+ constructor(name?: string | undefined);
13
+ /**
14
+ * @internal
15
+ */
16
+ _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean;
17
+ }
@@ -0,0 +1,25 @@
1
+ import { Button } from "./button.js";
2
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
3
+ /**
4
+ * Class used to create a focusable button that can easily handle keyboard events
5
+ * @since 5.0.0
6
+ */
7
+ export class FocusableButton extends Button {
8
+ constructor(name) {
9
+ super(name);
10
+ this.name = name;
11
+ this._unfocusedColor = this.color;
12
+ }
13
+ /**
14
+ * @internal
15
+ */
16
+ _onPointerDown(target, coordinates, pointerId, buttonIndex, pi) {
17
+ if (!this.isReadOnly) {
18
+ // Clicking on button should focus
19
+ this.focus();
20
+ }
21
+ return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);
22
+ }
23
+ }
24
+ RegisterClass("BABYLON.GUI.FocusableButton", FocusableButton);
25
+ //# sourceMappingURL=focusableButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusableButton.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/focusableButton.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,0CAA4B;AAIpD;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM;IACvC,YAA4B,IAAa;QACrC,KAAK,CAAC,IAAI,CAAC,CAAC;QADY,SAAI,GAAJ,IAAI,CAAS;QAGrC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;IACtC,CAAC;IAED;;OAEG;IACa,cAAc,CAAC,MAAe,EAAE,WAAoB,EAAE,SAAiB,EAAE,WAAmB,EAAE,EAAmB;QAC7H,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,kCAAkC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QAED,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;CACJ;AACD,aAAa,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC","sourcesContent":["import type { Vector2 } from \"core/Maths/math.vector\";\r\n\r\nimport { Button } from \"./button\";\r\nimport type { Control } from \"./control\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { PointerInfoBase } from \"core/Events/pointerEvents\";\r\nimport type { IFocusableControl } from \"./focusableControl\";\r\n\r\n/**\r\n * Class used to create a focusable button that can easily handle keyboard events\r\n * @since 5.0.0\r\n */\r\nexport class FocusableButton extends Button implements IFocusableControl {\r\n constructor(public override name?: string) {\r\n super(name);\r\n\r\n this._unfocusedColor = this.color;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!this.isReadOnly) {\r\n // Clicking on button should focus\r\n this.focus();\r\n }\r\n\r\n return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.FocusableButton\", FocusableButton);\r\n"]}
@@ -0,0 +1,43 @@
1
+ import type { IKeyboardEvent } from "@babylonjs/core/Events/deviceInputEvents.js";
2
+ import type { Nullable } from "@babylonjs/core/types.js";
3
+ import type { Control } from "./control.js";
4
+ /**
5
+ * Interface used to define a control that can receive focus
6
+ */
7
+ export interface IFocusableControl {
8
+ /**
9
+ * Function called when the control receives the focus
10
+ */
11
+ onFocus(): void;
12
+ /**
13
+ * Function called when the control loses the focus
14
+ */
15
+ onBlur(): void;
16
+ /**
17
+ * Function called to let the control handle keyboard events
18
+ * @param evt defines the current keyboard event
19
+ */
20
+ processKeyboard(evt: IKeyboardEvent): void;
21
+ /**
22
+ * Function called to get the list of controls that should not steal the focus from this control
23
+ * @returns an array of controls
24
+ */
25
+ keepsFocusWith(): Nullable<Control[]>;
26
+ /**
27
+ * Function to focus the control programmatically
28
+ */
29
+ focus(): void;
30
+ /**
31
+ * Function to unfocus the control programmatically
32
+ */
33
+ blur(): void;
34
+ /**
35
+ * Gets or sets the tabIndex of the control
36
+ */
37
+ tabIndex?: number;
38
+ /**
39
+ * Gets or sets the color used to draw the focus border
40
+ * Defaults to "white"
41
+ */
42
+ focusBorderColor?: string;
43
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=focusableControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusableControl.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/focusableControl.ts"],"names":[],"mappings":"","sourcesContent":["import type { IKeyboardEvent } from \"core/Events/deviceInputEvents\";\r\nimport type { Nullable } from \"core/types\";\r\nimport type { Control } from \"./control\";\r\n\r\n/**\r\n * Interface used to define a control that can receive focus\r\n */\r\nexport interface IFocusableControl {\r\n /**\r\n * Function called when the control receives the focus\r\n */\r\n onFocus(): void;\r\n /**\r\n * Function called when the control loses the focus\r\n */\r\n onBlur(): void;\r\n /**\r\n * Function called to let the control handle keyboard events\r\n * @param evt defines the current keyboard event\r\n */\r\n processKeyboard(evt: IKeyboardEvent): void;\r\n /**\r\n * Function called to get the list of controls that should not steal the focus from this control\r\n * @returns an array of controls\r\n */\r\n keepsFocusWith(): Nullable<Control[]>;\r\n /**\r\n * Function to focus the control programmatically\r\n */\r\n focus(): void;\r\n /**\r\n * Function to unfocus the control programmatically\r\n */\r\n blur(): void;\r\n\r\n /**\r\n * Gets or sets the tabIndex of the control\r\n */\r\n tabIndex?: number;\r\n\r\n /**\r\n * Gets or sets the color used to draw the focus border\r\n * Defaults to \"white\"\r\n */\r\n focusBorderColor?: string;\r\n}\r\n"]}
@@ -0,0 +1,69 @@
1
+ import type { ICanvasGradient, ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
2
+ /**
3
+ * Type that represents a single stop on the gradient.
4
+ */
5
+ export type GradientColorStop = {
6
+ /**
7
+ * Offset from the start where the color will be applied.
8
+ */
9
+ offset: number;
10
+ /**
11
+ * Color to be applied.
12
+ */
13
+ color: string;
14
+ };
15
+ /**
16
+ * Class that serves as a base for all the gradients created from context.
17
+ */
18
+ export declare abstract class BaseGradient {
19
+ private _colorStops;
20
+ private _canvasGradient;
21
+ private _context;
22
+ private _gradientDirty;
23
+ /**
24
+ * Overwritten by child classes to create the canvas gradient.
25
+ * @param context
26
+ */
27
+ protected abstract _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;
28
+ private _addColorStopsToCanvasGradient;
29
+ /**
30
+ * If there are any changes or the context changed, regenerate the canvas gradient object. Else,
31
+ * reuse the existing gradient.
32
+ * @param context the context to create the gradient from
33
+ * @returns the canvas gradient
34
+ */
35
+ getCanvasGradient(context: ICanvasRenderingContext): CanvasGradient;
36
+ /**
37
+ * Adds a new color stop to the gradient.
38
+ * @param offset the offset of the stop on the gradient. Should be between 0 and 1
39
+ * @param color the color of the stop
40
+ */
41
+ addColorStop(offset: number, color: string): void;
42
+ /**
43
+ * Removes an existing color stop with the specified offset from the gradient
44
+ * @param offset the offset of the stop to be removed
45
+ */
46
+ removeColorStop(offset: number): void;
47
+ /**
48
+ * Removes all color stops from the gradient
49
+ */
50
+ clearColorStops(): void;
51
+ /**
52
+ * Color stops of the gradient
53
+ */
54
+ get colorStops(): GradientColorStop[];
55
+ /**
56
+ * @returns Type of the gradient
57
+ */
58
+ getClassName(): string;
59
+ /**
60
+ * Serialize into a json object
61
+ * @param serializationObject object to serialize into
62
+ */
63
+ serialize(serializationObject: any): void;
64
+ /**
65
+ * Parse from json object
66
+ * @param serializationObject object to parse from
67
+ */
68
+ parse(serializationObject: any): void;
69
+ }
@@ -0,0 +1,84 @@
1
+ /*
2
+ * Base Gradient class. Should not be used directly.
3
+ */
4
+ /**
5
+ * Class that serves as a base for all the gradients created from context.
6
+ */
7
+ export class BaseGradient {
8
+ constructor() {
9
+ this._colorStops = [];
10
+ this._gradientDirty = true;
11
+ }
12
+ _addColorStopsToCanvasGradient() {
13
+ for (const stop of this._colorStops) {
14
+ this._canvasGradient.addColorStop(stop.offset, stop.color);
15
+ }
16
+ }
17
+ /**
18
+ * If there are any changes or the context changed, regenerate the canvas gradient object. Else,
19
+ * reuse the existing gradient.
20
+ * @param context the context to create the gradient from
21
+ * @returns the canvas gradient
22
+ */
23
+ getCanvasGradient(context) {
24
+ if (this._gradientDirty || this._context !== context) {
25
+ this._context = context;
26
+ this._canvasGradient = this._createCanvasGradient(context);
27
+ this._addColorStopsToCanvasGradient();
28
+ this._gradientDirty = false;
29
+ }
30
+ return this._canvasGradient;
31
+ }
32
+ /**
33
+ * Adds a new color stop to the gradient.
34
+ * @param offset the offset of the stop on the gradient. Should be between 0 and 1
35
+ * @param color the color of the stop
36
+ */
37
+ addColorStop(offset, color) {
38
+ this._colorStops.push({ offset, color });
39
+ this._gradientDirty = true;
40
+ }
41
+ /**
42
+ * Removes an existing color stop with the specified offset from the gradient
43
+ * @param offset the offset of the stop to be removed
44
+ */
45
+ removeColorStop(offset) {
46
+ this._colorStops = this._colorStops.filter((colorStop) => colorStop.offset !== offset);
47
+ this._gradientDirty = true;
48
+ }
49
+ /**
50
+ * Removes all color stops from the gradient
51
+ */
52
+ clearColorStops() {
53
+ this._colorStops = [];
54
+ this._gradientDirty = true;
55
+ }
56
+ /**
57
+ * Color stops of the gradient
58
+ */
59
+ get colorStops() {
60
+ return this._colorStops;
61
+ }
62
+ /**
63
+ * @returns Type of the gradient
64
+ */
65
+ getClassName() {
66
+ return "BaseGradient";
67
+ }
68
+ /**
69
+ * Serialize into a json object
70
+ * @param serializationObject object to serialize into
71
+ */
72
+ serialize(serializationObject) {
73
+ serializationObject.colorStops = this._colorStops;
74
+ serializationObject.className = this.getClassName();
75
+ }
76
+ /**
77
+ * Parse from json object
78
+ * @param serializationObject object to parse from
79
+ */
80
+ parse(serializationObject) {
81
+ this._colorStops = serializationObject.colorStops;
82
+ }
83
+ }
84
+ //# sourceMappingURL=BaseGradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseGradient.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/2D/controls/gradient/BaseGradient.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,OAAgB,YAAY;IAAlC;QACY,gBAAW,GAAwB,EAAE,CAAC;QAItC,mBAAc,GAAY,IAAI,CAAC;IAuF3C,CAAC;IA/EW,8BAA8B;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,OAAgC;QACrD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,8BAA8B,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,MAAc,EAAE,KAAa;QAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,MAAc;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,eAAe;QAClB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,mBAAwB;QACrC,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QAClD,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACxD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAwB;QACjC,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC;IACtD,CAAC;CACJ","sourcesContent":["/*\r\n * Base Gradient class. Should not be used directly.\r\n */\r\n\r\nimport type { ICanvasGradient, ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Type that represents a single stop on the gradient.\r\n */\r\nexport type GradientColorStop = {\r\n /**\r\n * Offset from the start where the color will be applied.\r\n */\r\n offset: number;\r\n /**\r\n * Color to be applied.\r\n */\r\n color: string;\r\n};\r\n\r\n/**\r\n * Class that serves as a base for all the gradients created from context.\r\n */\r\nexport abstract class BaseGradient {\r\n private _colorStops: GradientColorStop[] = [];\r\n\r\n private _canvasGradient: CanvasGradient;\r\n private _context: ICanvasRenderingContext;\r\n private _gradientDirty: boolean = true;\r\n\r\n /**\r\n * Overwritten by child classes to create the canvas gradient.\r\n * @param context\r\n */\r\n protected abstract _createCanvasGradient(context: ICanvasRenderingContext): ICanvasGradient;\r\n\r\n private _addColorStopsToCanvasGradient() {\r\n for (const stop of this._colorStops) {\r\n this._canvasGradient.addColorStop(stop.offset, stop.color);\r\n }\r\n }\r\n\r\n /**\r\n * If there are any changes or the context changed, regenerate the canvas gradient object. Else,\r\n * reuse the existing gradient.\r\n * @param context the context to create the gradient from\r\n * @returns the canvas gradient\r\n */\r\n public getCanvasGradient(context: ICanvasRenderingContext) {\r\n if (this._gradientDirty || this._context !== context) {\r\n this._context = context;\r\n this._canvasGradient = this._createCanvasGradient(context);\r\n this._addColorStopsToCanvasGradient();\r\n this._gradientDirty = false;\r\n }\r\n return this._canvasGradient;\r\n }\r\n\r\n /**\r\n * Adds a new color stop to the gradient.\r\n * @param offset the offset of the stop on the gradient. Should be between 0 and 1\r\n * @param color the color of the stop\r\n */\r\n public addColorStop(offset: number, color: string) {\r\n this._colorStops.push({ offset, color });\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Removes an existing color stop with the specified offset from the gradient\r\n * @param offset the offset of the stop to be removed\r\n */\r\n public removeColorStop(offset: number) {\r\n this._colorStops = this._colorStops.filter((colorStop) => colorStop.offset !== offset);\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Removes all color stops from the gradient\r\n */\r\n public clearColorStops() {\r\n this._colorStops = [];\r\n this._gradientDirty = true;\r\n }\r\n\r\n /**\r\n * Color stops of the gradient\r\n */\r\n public get colorStops() {\r\n return this._colorStops;\r\n }\r\n\r\n /**\r\n * @returns Type of the gradient\r\n */\r\n public getClassName() {\r\n return \"BaseGradient\";\r\n }\r\n\r\n /**\r\n * Serialize into a json object\r\n * @param serializationObject object to serialize into\r\n */\r\n public serialize(serializationObject: any) {\r\n serializationObject.colorStops = this._colorStops;\r\n serializationObject.className = this.getClassName();\r\n }\r\n\r\n /**\r\n * Parse from json object\r\n * @param serializationObject object to parse from\r\n */\r\n public parse(serializationObject: any) {\r\n this._colorStops = serializationObject.colorStops;\r\n }\r\n}\r\n"]}