x_ite 11.5.11 → 11.5.14

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 (54) hide show
  1. package/README.md +4 -4
  2. package/dist/assets/components/AnnotationComponent.js +2 -378
  3. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  4. package/dist/assets/components/CADGeometryComponent.js +2 -378
  5. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  6. package/dist/assets/components/CubeMapTexturingComponent.js +4 -333
  7. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  8. package/dist/assets/components/DISComponent.js +2 -331
  9. package/dist/assets/components/DISComponent.min.js +2 -2
  10. package/dist/assets/components/EventUtilitiesComponent.js +2 -472
  11. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  12. package/dist/assets/components/Geometry2DComponent.js +2 -707
  13. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  14. package/dist/assets/components/GeospatialComponent.js +4 -897
  15. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  16. package/dist/assets/components/HAnimComponent.js +9 -338
  17. package/dist/assets/components/HAnimComponent.min.js +2 -2
  18. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -237
  19. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  20. package/dist/assets/components/LayoutComponent.js +2 -425
  21. package/dist/assets/components/LayoutComponent.min.js +2 -2
  22. package/dist/assets/components/NURBSComponent.js +3 -896
  23. package/dist/assets/components/NURBSComponent.min.js +2 -2
  24. package/dist/assets/components/ParticleSystemsComponent.js +9 -715
  25. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  26. package/dist/assets/components/PickingComponent.js +2 -566
  27. package/dist/assets/components/PickingComponent.min.js +2 -2
  28. package/dist/assets/components/RigidBodyPhysicsComponent.js +2 -942
  29. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  30. package/dist/assets/components/ScriptingComponent.js +2 -190
  31. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  32. package/dist/assets/components/TextComponent.js +2 -379
  33. package/dist/assets/components/TextComponent.min.js +2 -2
  34. package/dist/assets/components/TextureProjectionComponent.js +8 -196
  35. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  36. package/dist/assets/components/Texturing3DComponent.js +4303 -4867
  37. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  38. package/dist/assets/components/VolumeRenderingComponent.js +5 -900
  39. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  40. package/dist/assets/components/WebXRComponent.js +5 -145
  41. package/dist/assets/components/WebXRComponent.min.js +2 -2
  42. package/dist/assets/components/X_ITEComponent.js +18 -853
  43. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  44. package/dist/assets/fonts/PT_Sans/OFL.txt +94 -94
  45. package/dist/assets/lib/libktx.js +1 -1
  46. package/dist/assets/lib/libktx.wasm +0 -0
  47. package/dist/example.html +1 -1
  48. package/dist/x_ite.css +1 -1
  49. package/dist/x_ite.js +51129 -70574
  50. package/dist/x_ite.min.js +2 -2
  51. package/dist/x_ite.min.mjs +2 -2
  52. package/dist/x_ite.mjs +51013 -70458
  53. package/dist/x_ite.zip +0 -0
  54. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- /* X_ITE v11.5.11 */
2
- const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-11.5.11")];
1
+ /* X_ITE v11.5.14 */
2
+ const __X_ITE_X3D__ = window [Symbol .for ("X_ITE.X3D-11.5.14")];
3
3
  /******/ (() => { // webpackBootstrap
4
4
  /******/ "use strict";
5
5
  /******/ // The require scope
@@ -58,53 +58,6 @@ var external_X_ITE_X3D_ViewVolume_default = /*#__PURE__*/__webpack_require__.n(e
58
58
  const external_X_ITE_X3D_Namespace_namespaceObject = __X_ITE_X3D__ .Namespace;
59
59
  var external_X_ITE_X3D_Namespace_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Namespace_namespaceObject);
60
60
  ;// ./src/x_ite/Browser/Layout/X3DLayoutContext.js
61
- /*******************************************************************************
62
- *
63
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
64
- *
65
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
66
- *
67
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
68
- *
69
- * The copyright notice above does not evidence any actual of intended
70
- * publication of such source code, and is an unpublished work by create3000.
71
- * This material contains CONFIDENTIAL INFORMATION that is the property of
72
- * create3000.
73
- *
74
- * No permission is granted to copy, distribute, or create derivative works from
75
- * the contents of this software, in whole or in part, without the prior written
76
- * permission of create3000.
77
- *
78
- * NON-MILITARY USE ONLY
79
- *
80
- * All create3000 software are effectively free software with a non-military use
81
- * restriction. It is free. Well commented source is provided. You may reuse the
82
- * source in any way you please with the exception anything that uses it must be
83
- * marked to indicate is contains 'non-military use only' components.
84
- *
85
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
86
- *
87
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
88
- *
89
- * This file is part of the X_ITE Project.
90
- *
91
- * X_ITE is free software: you can redistribute it and/or modify it under the
92
- * terms of the GNU General Public License version 3 only, as published by the
93
- * Free Software Foundation.
94
- *
95
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
96
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
97
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
98
- * details (a copy is included in the LICENSE file that accompanied this code).
99
- *
100
- * You should have received a copy of the GNU General Public License version 3
101
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
102
- * copy of the GPLv3 License.
103
- *
104
- * For Silvio, Joy and Adi.
105
- *
106
- ******************************************************************************/
107
-
108
61
 
109
62
 
110
63
 
@@ -211,53 +164,6 @@ var external_X_ITE_X3D_X3DChildNode_default = /*#__PURE__*/__webpack_require__.n
211
164
  const external_X_ITE_X3D_X3DConstants_namespaceObject = __X_ITE_X3D__ .X3DConstants;
212
165
  var external_X_ITE_X3D_X3DConstants_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DConstants_namespaceObject);
213
166
  ;// ./src/x_ite/Components/Layout/X3DLayoutNode.js
214
- /*******************************************************************************
215
- *
216
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
217
- *
218
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
219
- *
220
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
221
- *
222
- * The copyright notice above does not evidence any actual of intended
223
- * publication of such source code, and is an unpublished work by create3000.
224
- * This material contains CONFIDENTIAL INFORMATION that is the property of
225
- * create3000.
226
- *
227
- * No permission is granted to copy, distribute, or create derivative works from
228
- * the contents of this software, in whole or in part, without the prior written
229
- * permission of create3000.
230
- *
231
- * NON-MILITARY USE ONLY
232
- *
233
- * All create3000 software are effectively free software with a non-military use
234
- * restriction. It is free. Well commented source is provided. You may reuse the
235
- * source in any way you please with the exception anything that uses it must be
236
- * marked to indicate is contains 'non-military use only' components.
237
- *
238
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
239
- *
240
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
241
- *
242
- * This file is part of the X_ITE Project.
243
- *
244
- * X_ITE is free software: you can redistribute it and/or modify it under the
245
- * terms of the GNU General Public License version 3 only, as published by the
246
- * Free Software Foundation.
247
- *
248
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
249
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
250
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
251
- * details (a copy is included in the LICENSE file that accompanied this code).
252
- *
253
- * You should have received a copy of the GNU General Public License version 3
254
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
255
- * copy of the GPLv3 License.
256
- *
257
- * For Silvio, Joy and Adi.
258
- *
259
- ******************************************************************************/
260
-
261
167
 
262
168
 
263
169
 
@@ -284,53 +190,6 @@ var external_X_ITE_X3D_Vector2_default = /*#__PURE__*/__webpack_require__.n(exte
284
190
  const external_X_ITE_X3D_Rotation4_namespaceObject = __X_ITE_X3D__ .Rotation4;
285
191
  var external_X_ITE_X3D_Rotation4_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Rotation4_namespaceObject);
286
192
  ;// ./src/x_ite/Components/Layout/Layout.js
287
- /*******************************************************************************
288
- *
289
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
290
- *
291
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
292
- *
293
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
294
- *
295
- * The copyright notice above does not evidence any actual of intended
296
- * publication of such source code, and is an unpublished work by create3000.
297
- * This material contains CONFIDENTIAL INFORMATION that is the property of
298
- * create3000.
299
- *
300
- * No permission is granted to copy, distribute, or create derivative works from
301
- * the contents of this software, in whole or in part, without the prior written
302
- * permission of create3000.
303
- *
304
- * NON-MILITARY USE ONLY
305
- *
306
- * All create3000 software are effectively free software with a non-military use
307
- * restriction. It is free. Well commented source is provided. You may reuse the
308
- * source in any way you please with the exception anything that uses it must be
309
- * marked to indicate is contains 'non-military use only' components.
310
- *
311
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
312
- *
313
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
314
- *
315
- * This file is part of the X_ITE Project.
316
- *
317
- * X_ITE is free software: you can redistribute it and/or modify it under the
318
- * terms of the GNU General Public License version 3 only, as published by the
319
- * Free Software Foundation.
320
- *
321
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
322
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
323
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
324
- * details (a copy is included in the LICENSE file that accompanied this code).
325
- *
326
- * You should have received a copy of the GNU General Public License version 3
327
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
328
- * copy of the GPLv3 License.
329
- *
330
- * For Silvio, Joy and Adi.
331
- *
332
- ******************************************************************************/
333
-
334
193
 
335
194
 
336
195
 
@@ -920,53 +779,6 @@ var external_X_ITE_X3D_X3DGroupingNode_default = /*#__PURE__*/__webpack_require_
920
779
  const external_X_ITE_X3D_X3DCast_namespaceObject = __X_ITE_X3D__ .X3DCast;
921
780
  var external_X_ITE_X3D_X3DCast_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DCast_namespaceObject);
922
781
  ;// ./src/x_ite/Components/Layout/LayoutGroup.js
923
- /*******************************************************************************
924
- *
925
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
926
- *
927
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
928
- *
929
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
930
- *
931
- * The copyright notice above does not evidence any actual of intended
932
- * publication of such source code, and is an unpublished work by create3000.
933
- * This material contains CONFIDENTIAL INFORMATION that is the property of
934
- * create3000.
935
- *
936
- * No permission is granted to copy, distribute, or create derivative works from
937
- * the contents of this software, in whole or in part, without the prior written
938
- * permission of create3000.
939
- *
940
- * NON-MILITARY USE ONLY
941
- *
942
- * All create3000 software are effectively free software with a non-military use
943
- * restriction. It is free. Well commented source is provided. You may reuse the
944
- * source in any way you please with the exception anything that uses it must be
945
- * marked to indicate is contains 'non-military use only' components.
946
- *
947
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
948
- *
949
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
950
- *
951
- * This file is part of the X_ITE Project.
952
- *
953
- * X_ITE is free software: you can redistribute it and/or modify it under the
954
- * terms of the GNU General Public License version 3 only, as published by the
955
- * Free Software Foundation.
956
- *
957
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
958
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
959
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
960
- * details (a copy is included in the LICENSE file that accompanied this code).
961
- *
962
- * You should have received a copy of the GNU General Public License version 3
963
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
964
- * copy of the GPLv3 License.
965
- *
966
- * For Silvio, Joy and Adi.
967
- *
968
- ******************************************************************************/
969
-
970
782
 
971
783
 
972
784
 
@@ -1089,53 +901,6 @@ var external_X_ITE_X3D_X3DLayerNode_default = /*#__PURE__*/__webpack_require__.n
1089
901
  const external_X_ITE_X3D_OrthoViewpoint_namespaceObject = __X_ITE_X3D__ .OrthoViewpoint;
1090
902
  var external_X_ITE_X3D_OrthoViewpoint_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_OrthoViewpoint_namespaceObject);
1091
903
  ;// ./src/x_ite/Components/Layout/LayoutLayer.js
1092
- /*******************************************************************************
1093
- *
1094
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1095
- *
1096
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1097
- *
1098
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1099
- *
1100
- * The copyright notice above does not evidence any actual of intended
1101
- * publication of such source code, and is an unpublished work by create3000.
1102
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1103
- * create3000.
1104
- *
1105
- * No permission is granted to copy, distribute, or create derivative works from
1106
- * the contents of this software, in whole or in part, without the prior written
1107
- * permission of create3000.
1108
- *
1109
- * NON-MILITARY USE ONLY
1110
- *
1111
- * All create3000 software are effectively free software with a non-military use
1112
- * restriction. It is free. Well commented source is provided. You may reuse the
1113
- * source in any way you please with the exception anything that uses it must be
1114
- * marked to indicate is contains 'non-military use only' components.
1115
- *
1116
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1117
- *
1118
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1119
- *
1120
- * This file is part of the X_ITE Project.
1121
- *
1122
- * X_ITE is free software: you can redistribute it and/or modify it under the
1123
- * terms of the GNU General Public License version 3 only, as published by the
1124
- * Free Software Foundation.
1125
- *
1126
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1127
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1128
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1129
- * details (a copy is included in the LICENSE file that accompanied this code).
1130
- *
1131
- * You should have received a copy of the GNU General Public License version 3
1132
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1133
- * copy of the GPLv3 License.
1134
- *
1135
- * For Silvio, Joy and Adi.
1136
- *
1137
- ******************************************************************************/
1138
-
1139
904
 
1140
905
 
1141
906
 
@@ -1222,53 +987,6 @@ var external_X_ITE_X3D_Box3_default = /*#__PURE__*/__webpack_require__.n(externa
1222
987
  const external_X_ITE_X3D_Algorithm_namespaceObject = __X_ITE_X3D__ .Algorithm;
1223
988
  var external_X_ITE_X3D_Algorithm_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_Algorithm_namespaceObject);
1224
989
  ;// ./src/x_ite/Browser/Layout/ScreenText.js
1225
- /*******************************************************************************
1226
- *
1227
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1228
- *
1229
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1230
- *
1231
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1232
- *
1233
- * The copyright notice above does not evidence any actual of intended
1234
- * publication of such source code, and is an unpublished work by create3000.
1235
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1236
- * create3000.
1237
- *
1238
- * No permission is granted to copy, distribute, or create derivative works from
1239
- * the contents of this software, in whole or in part, without the prior written
1240
- * permission of create3000.
1241
- *
1242
- * NON-MILITARY USE ONLY
1243
- *
1244
- * All create3000 software are effectively free software with a non-military use
1245
- * restriction. It is free. Well commented source is provided. You may reuse the
1246
- * source in any way you please with the exception anything that uses it must be
1247
- * marked to indicate is contains 'non-military use only' components.
1248
- *
1249
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1250
- *
1251
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1252
- *
1253
- * This file is part of the X_ITE Project.
1254
- *
1255
- * X_ITE is free software: you can redistribute it and/or modify it under the
1256
- * terms of the GNU General Public License version 3 only, as published by the
1257
- * Free Software Foundation.
1258
- *
1259
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1260
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1261
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1262
- * details (a copy is included in the LICENSE file that accompanied this code).
1263
- *
1264
- * You should have received a copy of the GNU General Public License version 3
1265
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1266
- * copy of the GPLv3 License.
1267
- *
1268
- * For Silvio, Joy and Adi.
1269
- *
1270
- ******************************************************************************/
1271
-
1272
990
 
1273
991
 
1274
992
 
@@ -1655,53 +1373,6 @@ const ScreenText_default_ = ScreenText;
1655
1373
 
1656
1374
  /* harmony default export */ const Layout_ScreenText = (external_X_ITE_X3D_Namespace_default().add ("ScreenText", ScreenText_default_));
1657
1375
  ;// ./src/x_ite/Components/Layout/ScreenFontStyle.js
1658
- /*******************************************************************************
1659
- *
1660
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1661
- *
1662
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1663
- *
1664
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1665
- *
1666
- * The copyright notice above does not evidence any actual of intended
1667
- * publication of such source code, and is an unpublished work by create3000.
1668
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1669
- * create3000.
1670
- *
1671
- * No permission is granted to copy, distribute, or create derivative works from
1672
- * the contents of this software, in whole or in part, without the prior written
1673
- * permission of create3000.
1674
- *
1675
- * NON-MILITARY USE ONLY
1676
- *
1677
- * All create3000 software are effectively free software with a non-military use
1678
- * restriction. It is free. Well commented source is provided. You may reuse the
1679
- * source in any way you please with the exception anything that uses it must be
1680
- * marked to indicate is contains 'non-military use only' components.
1681
- *
1682
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1683
- *
1684
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1685
- *
1686
- * This file is part of the X_ITE Project.
1687
- *
1688
- * X_ITE is free software: you can redistribute it and/or modify it under the
1689
- * terms of the GNU General Public License version 3 only, as published by the
1690
- * Free Software Foundation.
1691
- *
1692
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1693
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1694
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1695
- * details (a copy is included in the LICENSE file that accompanied this code).
1696
- *
1697
- * You should have received a copy of the GNU General Public License version 3
1698
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1699
- * copy of the GPLv3 License.
1700
- *
1701
- * For Silvio, Joy and Adi.
1702
- *
1703
- ******************************************************************************/
1704
-
1705
1376
 
1706
1377
 
1707
1378
 
@@ -1771,53 +1442,6 @@ var external_X_ITE_X3D_TraverseType_default = /*#__PURE__*/__webpack_require__.n
1771
1442
  const external_X_ITE_X3D_X3DProtoDeclaration_namespaceObject = __X_ITE_X3D__ .X3DProtoDeclaration;
1772
1443
  var external_X_ITE_X3D_X3DProtoDeclaration_default = /*#__PURE__*/__webpack_require__.n(external_X_ITE_X3D_X3DProtoDeclaration_namespaceObject);
1773
1444
  ;// ./src/x_ite/Components/Layout/ScreenGroup.js
1774
- /*******************************************************************************
1775
- *
1776
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1777
- *
1778
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1779
- *
1780
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1781
- *
1782
- * The copyright notice above does not evidence any actual of intended
1783
- * publication of such source code, and is an unpublished work by create3000.
1784
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1785
- * create3000.
1786
- *
1787
- * No permission is granted to copy, distribute, or create derivative works from
1788
- * the contents of this software, in whole or in part, without the prior written
1789
- * permission of create3000.
1790
- *
1791
- * NON-MILITARY USE ONLY
1792
- *
1793
- * All create3000 software are effectively free software with a non-military use
1794
- * restriction. It is free. Well commented source is provided. You may reuse the
1795
- * source in any way you please with the exception anything that uses it must be
1796
- * marked to indicate is contains 'non-military use only' components.
1797
- *
1798
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1799
- *
1800
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1801
- *
1802
- * This file is part of the X_ITE Project.
1803
- *
1804
- * X_ITE is free software: you can redistribute it and/or modify it under the
1805
- * terms of the GNU General Public License version 3 only, as published by the
1806
- * Free Software Foundation.
1807
- *
1808
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1809
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1810
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1811
- * details (a copy is included in the LICENSE file that accompanied this code).
1812
- *
1813
- * You should have received a copy of the GNU General Public License version 3
1814
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1815
- * copy of the GPLv3 License.
1816
- *
1817
- * For Silvio, Joy and Adi.
1818
- *
1819
- ******************************************************************************/
1820
-
1821
1445
 
1822
1446
 
1823
1447
 
@@ -1915,53 +1539,6 @@ const ScreenGroup_default_ = ScreenGroup;
1915
1539
 
1916
1540
  /* harmony default export */ const Layout_ScreenGroup = (external_X_ITE_X3D_Namespace_default().add ("ScreenGroup", ScreenGroup_default_));
1917
1541
  ;// ./src/assets/components/LayoutComponent.js
1918
- /*******************************************************************************
1919
- *
1920
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1921
- *
1922
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
1923
- *
1924
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1925
- *
1926
- * The copyright notice above does not evidence any actual of intended
1927
- * publication of such source code, and is an unpublished work by create3000.
1928
- * This material contains CONFIDENTIAL INFORMATION that is the property of
1929
- * create3000.
1930
- *
1931
- * No permission is granted to copy, distribute, or create derivative works from
1932
- * the contents of this software, in whole or in part, without the prior written
1933
- * permission of create3000.
1934
- *
1935
- * NON-MILITARY USE ONLY
1936
- *
1937
- * All create3000 software are effectively free software with a non-military use
1938
- * restriction. It is free. Well commented source is provided. You may reuse the
1939
- * source in any way you please with the exception anything that uses it must be
1940
- * marked to indicate is contains 'non-military use only' components.
1941
- *
1942
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1943
- *
1944
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
1945
- *
1946
- * This file is part of the X_ITE Project.
1947
- *
1948
- * X_ITE is free software: you can redistribute it and/or modify it under the
1949
- * terms of the GNU General Public License version 3 only, as published by the
1950
- * Free Software Foundation.
1951
- *
1952
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1953
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1954
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1955
- * details (a copy is included in the LICENSE file that accompanied this code).
1956
- *
1957
- * You should have received a copy of the GNU General Public License version 3
1958
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
1959
- * copy of the GPLv3 License.
1960
- *
1961
- * For Silvio, Joy and Adi.
1962
- *
1963
- ******************************************************************************/
1964
-
1965
1542
 
1966
1543
 
1967
1544
 
@@ -1,2 +1,2 @@
1
- /* X_ITE v11.5.11 */
2
- const t=window[Symbol.for("X_ITE.X3D-11.5.11")];(()=>{var e={n:t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},d:(t,i)=>{for(var s in i)e.o(i,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)};const i=t.Components;var s=e.n(i);const n=t.TextureProperties;var o=e.n(n);const a=t.Vector3;var r=e.n(a);const h=t.Matrix4;var l=e.n(h);const c=t.ViewVolume;var u=e.n(c);const d=t.Namespace;var p=e.n(d);const g=Symbol();function y(){}Object.assign(y.prototype,{getScreenTextureProperties(){return this[g]??=(()=>{const t=new(o())(this.getPrivateScene());return t._boundaryModeS="CLAMP_TO_EDGE",t._boundaryModeT="CLAMP_TO_EDGE",t._boundaryModeR="CLAMP_TO_EDGE",t._minificationFilter="NEAREST_PIXEL",t._magnificationFilter="NEAREST_PIXEL",t._generateMipMaps=!1,t._textureCompression="DEFAULT",t.setup(),t})()},getScreenScaleMatrix:(()=>{const t=new(r()),e=new(r()),i=new(l());return function(s,n,o,a){const h=s.getModelViewMatrix().get(),l=s.getProjectionMatrix().get(),c=s.getViewVolume().getViewport();s.getViewpoint().getScreenScale(h.origin,c,t);const d=h.xAxis.normalize().multiply(t.x*o),p=h.yAxis.normalize().multiply(t.y*o),g=h.zAxis.normalize().multiply(t.x*o);i.set(d.x,d.y,d.z,0,p.x,p.y,p.z,0,g.x,g.y,g.z,0,h[12],h[13],h[14],1),a&&(u().projectPoint(r().Zero,i,l,c,e),e.x=Math.round(e.x),e.y=Math.round(e.y),u().unProjectPoint(e.x,e.y,e.z,i,l,c,e),e.z=0,i.translate(e)),n.assign(h).inverse().multLeft(i)}})()});const x=y,f=p().add("X3DLayoutContext",x),w=t.Fields;var _=e.n(w);const M=t.X3DFieldDefinition;var S=e.n(M);const O=t.FieldDefinitionArray;var b=e.n(O);const z=t.X3DNode;var m=e.n(z);const v=t.X3DChildNode;var X=e.n(v);const F=t.X3DConstants;var N=e.n(F);function U(t){X().call(this,t),this.addType(N().X3DLayoutNode)}Object.setPrototypeOf(U.prototype,X().prototype),Object.defineProperties(U,m().getStaticProperties("X3DLayoutNode","Layout",1));const P=U,T=p().add("X3DLayoutNode",P),Y=t.Vector2;var L=e.n(Y);const B=t.Rotation4;var C=e.n(B);let E=0;const D=E++,V=E++,I=E++,j=E++,R=E++,A=E++,k=E++,G=E++,W=E++,H=E++;function q(t){T.call(this,t),this.addType(N().Layout),this.alignX=V,this.alignY=V,this.offsetUnitX=A,this.offsetUnitY=A,this.offsetX=0,this.offsetY=0,this.sizeUnitX=A,this.sizeUnitY=A,this.sizeX=1,this.sizeY=1,this.scaleModeX=W,this.scaleModeY=W,this.parent=null,this.rectangleCenter=new(L()),this.rectangleSize=new(L()),this.matrix=new(l())}Object.assign(Object.setPrototypeOf(q.prototype,T.prototype),{viewportPixel:new(L()),pixelSize:new(L()),translation:new(r()),offset:new(r()),scale:new(r())(1),currentTranslation:new(r()),currentRotation:new(C()),currentScale:new(r()),modelViewMatrix:new(l()),initialize(){T.prototype.initialize.call(this),this._align.addInterest("set_align__",this),this._offsetUnits.addInterest("set_offsetUnits__",this),this._offset.addInterest("set_offset__",this),this._sizeUnits.addInterest("set_sizeUnits__",this),this._size.addInterest("set_size__",this),this._scaleMode.addInterest("set_scaleMode__",this),this.set_align__(),this.set_offsetUnits__(),this.set_offset__(),this.set_sizeUnits__(),this.set_size__(),this.set_scaleMode__()},set_align__(){this._align.length>0?"LEFT"===this._align[0]?this.alignX=D:"RIGHT"===this._align[0]?this.alignX=I:this.alignX=V:this.alignX=V,this._align.length>1?"BOTTOM"===this._align[1]?this.alignY=j:"TOP"===this._align[1]?this.alignY=R:this.alignY=V:this.alignY=V},set_offsetUnits__(){this._offsetUnits.length>0?("FRACTION"===this._offsetUnits[0]?this.offsetUnitX=k:"PIXEL"===this._offsetUnits[0]?this.offsetUnitX=G:this.offsetUnitX=A,this._offsetUnits.length>1?"FRACTION"===this._offsetUnits[1]?this.offsetUnitY=k:"PIXEL"===this._offsetUnits[1]?this.offsetUnitY=G:this.offsetUnitY=A:this.offsetUnitY=this.offsetUnitX):(this.offsetUnitX=A,this.offsetUnitY=A)},set_offset__(){this._offset.length>0?(this.offsetX=this._offset[0],this._offset.length>1?this.offsetY=this._offset[1]:this.offsetY=offsetX):(this.offsetX=0,this.offsetY=0)},set_sizeUnits__(){this._sizeUnits.length>0?("FRACTION"===this._sizeUnits[0]?this.sizeUnitX=k:"PIXEL"===this._sizeUnits[0]?this.sizeUnitX=G:this.sizeUnitX=A,this._sizeUnits.length>1?"FRACTION"===this._sizeUnits[1]?this.sizeUnitY=k:"PIXEL"===this._sizeUnits[1]?this.sizeUnitY=G:this.sizeUnitY=A:this.sizeUnitY=this.sizeUnitX):(this.sizeUnitX=A,this.sizeUnitY=A)},set_size__(){this._size.length>0?(this.sizeX=this._size[0],this._size.length>1?this.sizeY=this._size[1]:this.sizeY=this.sizeX):(this.sizeX=0,this.sizeY=0)},set_scaleMode__(){this._scaleMode.length>0?("FRACTION"===this._scaleMode[0]?this.scaleModeX=k:"PIXEL"===this._scaleMode[0]?this.scaleModeX=G:"STRETCH"===this._scaleMode[0]?this.scaleModeX=H:this.scaleModeX=W,this._scaleMode.length>1?"FRACTION"===this._scaleMode[1]?this.scaleModeY=k:"PIXEL"===this._scaleMode[1]?this.scaleModeY=G:"STRETCH"===this._scaleMode[1]?this.scaleModeY=H:this.scaleModeY=W:this.scaleModeY=this.scaleModeX):(this.scaleModeX=W,this.scaleModeY=W)},getRectangleCenter(){return this.rectangleCenter},getRectangleSize(){return this.rectangleSize},getAlignX(){return this.alignX},getAlignY(){return this.alignY},getOffsetUnitX(){return this.offsetUnitX===A?this.parent?this.parent.getOffsetUnitX():k:this.offsetUnitX},getOffsetUnitY(){return this.offsetUnitY===A?this.parent?this.parent.getOffsetUnitY():k:this.offsetUnitY},getOffsetX(){return this.offsetX},getOffsetY(){return this.offsetY},getSizeUnitX(){return this.sizeUnitX===A?this.parent?this.parent.getSizeUnitX():k:this.sizeUnitX},getSizeUnitY(){return this.sizeUnitY===A?this.parent?this.parent.getSizeUnitY():k:this.sizeUnitY},getSizeX(){return this.sizeX},getSizeY(){return this.sizeY},getScaleModeX(){return this.parent?this.scaleModeX:this.scaleModeX===W?k:this.scaleModeX},getScaleModeY(){return this.parent?this.scaleModeY:this.scaleModeY===W?k:this.scaleModeY},transform(t,e){const i=this.parent=e.getParentLayout(),s=this.getBrowser().getRenderingProperty("ContentScale"),n=this.matrix,o=e.getNavigationInfo(),a=e.getViewpoint(),r=a.getNearDistance(o),h=e.getViewVolume().getViewport(),l=a.getViewportSize(h,r),c=this.viewportPixel,u=this.pixelSize,d=i?i.getRectangleSize():l,p=this.rectangleSize,g=this.rectangleCenter;switch(c.set(h[2],h[3]).divide(s),u.assign(l).divVec(c),this.getSizeUnitX()){case k:p.x=this.sizeX*d.x;break;case G:p.x=this.sizeX*u.x}switch(this.getSizeUnitY()){case k:p.y=this.sizeY*d.y;break;case G:p.y=this.sizeY*u.y}const y=this.translation.set(0);switch(this.getAlignX()){case D:y.x=-(d.x-p.x)/2;break;case V:this.getSizeUnitX()===G&&1&c.x&&(y.x=-u.x/2);break;case I:y.x=(d.x-p.x)/2}switch(this.getAlignY()){case j:y.y=-(d.y-p.y)/2;break;case V:this.getSizeUnitX()===G&&1&c.y&&(y.y=-u.y/2);break;case R:y.y=(d.y-p.y)/2}const x=this.offset.set(0);switch(this.getOffsetUnitX()){case k:x.x=this.offsetX*d.x;break;case G:x.x=this.offsetX*l.x/c.x}switch(this.getOffsetUnitY()){case k:x.y=this.offsetY*d.y;break;case G:x.y=this.offsetY*l.y/c.y}const f=this.scale.set(1),w=this.currentTranslation,_=this.currentRotation,M=this.currentScale;switch(e.getModelViewMatrix().get().get(w,_,M),this.getScaleModeX()){case W:f.x=M.x;break;case k:f.x=p.x;break;case H:break;case G:f.x=l.x/c.x}switch(this.getScaleModeY()){case W:f.y=M.y;break;case k:f.y=p.y;break;case H:break;case G:f.y=l.y/c.y}return this.getScaleModeX()===H?this.getScaleModeY()===H?p.x>p.y?(f.x=p.x,f.y=f.x):(f.y=p.y,f.x=f.y):f.x=f.y:this.getScaleModeY()===H&&(f.y=f.x),g.assign(y.add(x)),n.set(w,_),n.translate(y),n.scale(f),n}}),Object.defineProperties(q,{...m().getStaticProperties("Layout","Layout",1,"layout","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"align",new(_().MFString)("CENTER","CENTER")),new(S())(N().inputOutput,"offsetUnits",new(_().MFString)("WORLD","WORLD")),new(S())(N().inputOutput,"offset",new(_().MFFloat)(0,0)),new(S())(N().inputOutput,"sizeUnits",new(_().MFString)("WORLD","WORLD")),new(S())(N().inputOutput,"size",new(_().MFFloat)(1,1)),new(S())(N().inputOutput,"scaleMode",new(_().MFString)("NONE","NONE"))]),enumerable:!0}});const K=q,Z=p().add("Layout",K),Q=t.X3DGroupingNode;var J=e.n(Q);const $=t.X3DCast;var tt=e.n($);function et(t){J().call(this,t),this.addType(N().LayoutGroup),this.setCollisionObject(!1),this.matrix=new(l()),this.modelViewMatrix=new(l()),this.screenMatrix=new(l())}Object.assign(Object.setPrototypeOf(et.prototype,J().prototype),{initialize(){J().prototype.initialize.call(this),this._viewport.addInterest("set_viewport__",this),this._layout.addInterest("set_layout__",this),this._bboxSize.addInterest("set_visibleObjects__",this),this.set_viewport__(),this.set_layout__()},set_viewport__(){this.viewportNode=tt()(N().X3DViewportNode,this._viewport)},set_layout__(){this.layoutNode=tt()(N().X3DLayoutNode,this._layout)},set_collisionObjects__(){},set_visibleObjects__(){this.setVisibleObject(this.visibleObjects.size||this.bboxObjects.size||this.boundedObjects.size||!this.isDefaultBBoxSize())},getBBox(t,e){return J().prototype.getBBox.call(this,t,e).multRight(this.getMatrix())},getMatrix(){return this.layoutNode?this.matrix.assign(this.modelViewMatrix).inverse().multLeft(this.screenMatrix):this.matrix.identity()},traverse(t,e){if(this.viewportNode?.push(),this.layoutNode){const i=e.getModelViewMatrix();this.modelViewMatrix.assign(i.get()),this.screenMatrix.assign(this.layoutNode.transform(t,e)),i.push(this.screenMatrix),e.getLayouts().push(this.layoutNode),J().prototype.traverse.call(this,t,e),e.getLayouts().pop(),i.pop()}else J().prototype.traverse.call(this,t,e);this.viewportNode?.pop()}}),Object.defineProperties(et,{...m().getStaticProperties("LayoutGroup","Layout",1,"children","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"layout",new(_().SFNode)),new(S())(N().inputOutput,"viewport",new(_().SFNode)),new(S())(N().inputOutput,"visible",new(_().SFBool)(!0)),new(S())(N().inputOutput,"bboxDisplay",new(_().SFBool)),new(S())(N().initializeOnly,"bboxSize",new(_().SFVec3f)(-1,-1,-1)),new(S())(N().initializeOnly,"bboxCenter",new(_().SFVec3f)),new(S())(N().inputOnly,"addChildren",new(_().MFNode)),new(S())(N().inputOnly,"removeChildren",new(_().MFNode)),new(S())(N().inputOutput,"children",new(_().MFNode))]),enumerable:!0}});const it=et,st=p().add("LayoutGroup",it),nt=t.X3DLayerNode;var ot=e.n(nt);const at=t.OrthoViewpoint;var rt=e.n(at);function ht(t){ot().call(this,t,new(rt())(t),new st(t)),this.addType(N().LayoutLayer)}Object.assign(Object.setPrototypeOf(ht.prototype,ot().prototype),{initialize(){ot().prototype.initialize.call(this);const t=this.getGroups()._children[0].getValue();this._layout.addFieldInterest(t._layout),this._addChildren.addFieldInterest(t._addChildren),this._removeChildren.addFieldInterest(t._removeChildren),this._children.addFieldInterest(t._children),t._layout=this._layout,t._children=this._children,t.setPrivate(!0),t.setup(),this.getGroups().setup()}}),Object.defineProperties(ht,{...m().getStaticProperties("LayoutLayer","Layout",1,"layers","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"pickable",new(_().SFBool)(!0)),new(S())(N().inputOutput,"objectType",new(_().MFString)("ALL")),new(S())(N().inputOutput,"pointerEvents",new(_().SFBool)(!0)),new(S())(N().inputOutput,"visible",new(_().SFBool)(!0)),new(S())(N().inputOutput,"layout",new(_().SFNode)),new(S())(N().inputOutput,"viewport",new(_().SFNode)),new(S())(N().inputOnly,"addChildren",new(_().MFNode)),new(S())(N().inputOnly,"removeChildren",new(_().MFNode)),new(S())(N().inputOutput,"children",new(_().MFNode))]),enumerable:!0}});const lt=ht,ct=p().add("LayoutLayer",lt),ut=t.X3DFontStyleNode;var dt=e.n(ut);const pt=t.X3DTextGeometry;var gt=e.n(pt);const yt=t.TextAlignment;var xt=e.n(yt);const ft=t.PixelTexture;var wt=e.n(ft);const _t=t.Box3;var Mt=e.n(_t);const St=t.Algorithm;var Ot=e.n(St);function bt(t,e){gt().call(this,t,e),t.setTransparent(!0),this.textureNode=new(wt())(t.getExecutionContext()),this.context=document.createElement("canvas").getContext("2d",{willReadFrequently:!0}),this.modelViewMatrix=new(l()),this.matrix=new(l()),this.textureNode._textureProperties=e.getBrowser().getScreenTextureProperties(),this.textureNode.setup()}Object.assign(Object.setPrototypeOf(bt.prototype,gt().prototype),{modelViewMatrix:new(l()),getMatrix(){return this.matrix},update:(()=>{const t=new(r()),e=new(r())(1,1,0);return function(){gt().prototype.update.call(this);const i=this.getFontStyle(),s=this.getText();switch(s._textBounds.x=Math.ceil(s._textBounds.x)+1,s._textBounds.y=Math.ceil(s._textBounds.y)+1,this.getBBox().getExtents(t,e),t.x-=1,t.y-=1,i.getMajorAlignment()){case xt().BEGIN:case xt().FIRST:t.x=Math.floor(t.x),e.x=t.x+s._textBounds.x;break;case xt().MIDDLE:t.x=Math.round(t.x),e.x=t.x+s._textBounds.x;break;case xt().END:e.x=Math.ceil(e.x),t.x=e.x-s._textBounds.x}switch(i.getMinorAlignment()){case xt().BEGIN:case xt().FIRST:e.y=Math.ceil(e.y),t.y=e.y-s._textBounds.y;break;case xt().MIDDLE:e.y=Math.round(e.y),t.y=e.y-s._textBounds.y;break;case xt().END:t.y=Math.floor(t.y),e.y=t.y+s._textBounds.y}s._origin.x=t.x,s._origin.y=e.y,this.getBBox().setExtents(t,e)}})(),build:(()=>{const t=new(r()),e=new(r())(1,1,0);return function(){const i=this.getFontStyle(),s=i.getFont();if(!s)return;const n=this.getText(),o=this.getGlyphs(),a=this.getMinorAlignment(),r=this.getTranslations(),h=this.getCharSpacings(),l=this.getScales(),c=i.getScale(),u=c/s.unitsPerEm,d=n.getTexCoords(),p=n.getNormals(),g=n.getVertices(),y=this.context.canvas,x=this.context;n.getMultiTexCoords().push(d),this.getBBox().getExtents(t,e),p.push(0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1),g.push(t.x,t.y,0,1,e.x,t.y,0,1,e.x,e.y,0,1,t.x,t.y,0,1,e.x,e.y,0,1,t.x,e.y,0,1);const f=n._textBounds.x,w=n._textBounds.y;y.width=Ot().nextPowerOfTwo(f),y.height=Ot().nextPowerOfTwo(w);const _=f/y.width,M=1-w/y.height;if(d.push(0,M,0,1,_,M,0,1,_,1,0,1,0,M,0,1,_,1,0,1,0,1,0,1),x.fillStyle="rgba(255,255,255,0)",x.fillRect(0,0,y.width,y.height),x.fillStyle="rgba(255,255,255,1)",x.save(),x.translate(0,y.height),x.scale(1,-1),i._horizontal.getValue())for(let i=0,n=o.length;i<n;++i){const n=o[i],d=r[i],p=h[i],g=l[i];let y=0;for(let i=0,o=n.length;i<o;++i){const o=n[i],r=a.x+d.x+y*g+i*p-t.x,h=a.y+d.y-e.y;x.save(),x.translate(r,-h),x.scale(g,1),this.drawGlyph(x,s,o,c),x.restore();let l=0;i+1<n.length&&(l=s.getKerningValue(o,n[i+1])),y+=(o.advanceWidth+l)*u}}else{const u=i._leftToRight.getValue(),d=i._topToBottom.getValue(),p=u?0:n._string.length-1,g=u?n._string.length:-1,y=u?1:-1;for(let i=p,n=0;i!==g;i+=y){const u=o[i],p=u.length,g=d?0:p-1,y=d?p:-1,f=d?1:-1,w=h[i],_=l[i];for(let i=g;i!==y;i+=f,++n){const o=r[n],h=a.x+o.x-t.x,l=a.y+o.y*_-i*w-e.y;x.save(),x.translate(h,-l),x.scale(1,_),this.drawGlyph(x,s,u[i],c),x.restore()}}}x.restore();const S=x.getImageData(0,0,y.width,y.height);S?this.textureNode.setTextureData(y.width,y.height,!0,!0,new Uint8Array(S.data.buffer)):this.textureNode.clear()}})(),drawGlyph(t,e,i,s){const n=i.getPath(0,0,s),o=n.commands;t.beginPath();for(let e=0,i=o.length;e<i;++e){const i=o[e];switch(i.type){case"M":t.moveTo(i.x,i.y);continue;case"Z":t.closePath();continue;case"L":t.lineTo(i.x,i.y);continue;case"Q":t.quadraticCurveTo(i.x1,i.y1,i.x,i.y);continue;case"C":t.bezierCurveTo(i.x1,i.y1,i.x2,i.y2,i.x,i.y);continue}}n.fill&&t.fill(),n.stroke&&(t.lineWidth=n.strokeWidth,t.stroke())},getGlyphExtents(t,e,i,s,n){const o=t.unitsPerEm;s.set((e.xMin||0)/o,(e.yMin||0)/o,0),n.set((e.xMax||0)/o,(e.yMax||0)/o,0)},traverse:(()=>{const t=new(Mt());return function(e,i){this.getBrowser().getScreenScaleMatrix(i,this.matrix,1,!0),this.modelViewMatrix.assign(i.getModelViewMatrix().get()).multLeft(this.matrix),t.assign(this.getBBox()).multRight(this.matrix),this.getText().setBBox(t)}})(),displaySimple(t,e,i){e.modelViewMatrix.set(this.modelViewMatrix),t.uniformMatrix4fv(i.x3d_ModelViewMatrix,!1,e.modelViewMatrix)},display(t,e){e.modelViewMatrix.set(this.modelViewMatrix),e.textureNode=this.textureNode},transformLine:(()=>{const t=new(l());return function(e){return e.multLineMatrix(t.assign(this.matrix).inverse())}})(),transformMatrix(t){return t.multLeft(this.matrix)}});const zt=bt,mt=p().add("ScreenText",zt);function vt(t){dt().call(this,t),this.addType(N().ScreenFontStyle)}Object.assign(Object.setPrototypeOf(vt.prototype,dt().prototype),{initialize(){dt().prototype.initialize.call(this),this.getBrowser().getRenderingProperties()._ContentScale.addInterest("addNodeEvent",this)},getTextGeometry(t){return new mt(t,this)},getScale(){return this._pointSize.getValue()*this.getBrowser().getRenderingProperty("PixelsPerPoint")},getContentScale(){return this.getBrowser().getRenderingProperty("ContentScale")}}),Object.defineProperties(vt,{...m().getStaticProperties("ScreenFontStyle","Layout",2,"fontStyle","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"language",new(_().SFString)),new(S())(N().inputOutput,"family",new(_().MFString)("SERIF")),new(S())(N().inputOutput,"style",new(_().SFString)("PLAIN")),new(S())(N().inputOutput,"pointSize",new(_().SFFloat)(12)),new(S())(N().inputOutput,"spacing",new(_().SFFloat)(1)),new(S())(N().inputOutput,"horizontal",new(_().SFBool)(!0)),new(S())(N().inputOutput,"leftToRight",new(_().SFBool)(!0)),new(S())(N().inputOutput,"topToBottom",new(_().SFBool)(!0)),new(S())(N().inputOutput,"justify",new(_().MFString)("BEGIN"))]),enumerable:!0}});const Xt=vt,Ft=p().add("ScreenFontStyle",Xt),Nt=t.TraverseType;var Ut=e.n(Nt);const Pt=t.X3DProtoDeclaration;var Tt=e.n(Pt);function Yt(t){J().call(this,t),this.addType(N().ScreenGroup),t.getOuterNode()instanceof Tt()?this.matrix=new(l()):this.matrix=new(l())(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}Object.assign(Object.setPrototypeOf(Yt.prototype,J().prototype),{initialize(){J().prototype.initialize.call(this),this._bboxSize.addInterest("set_visibleObjects__",this)},set_visibleObjects__(){this.setVisibleObject(this.visibleObjects.size||this.bboxObjects.size||this.boundedObjects.size||!this.isDefaultBBoxSize())},getBBox(t,e){return this.getSubBBox(t,e).multRight(this.matrix)},getMatrix(){return this.matrix},traverse(t,e){switch(t){case Ut().CAMERA:case Ut().PICKING:case Ut().SHADOW:break;default:{const t=this.getBrowser();t.getScreenScaleMatrix(e,this.matrix,t.getRenderingProperty("ContentScale"),!1);break}}const i=e.getModelViewMatrix();i.push(),i.multLeft(this.matrix),J().prototype.traverse.call(this,t,e),i.pop()}}),Object.defineProperties(Yt,{...m().getStaticProperties("ScreenGroup","Layout",2,"children","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"visible",new(_().SFBool)(!0)),new(S())(N().inputOutput,"bboxDisplay",new(_().SFBool)),new(S())(N().initializeOnly,"bboxSize",new(_().SFVec3f)(-1,-1,-1)),new(S())(N().initializeOnly,"bboxCenter",new(_().SFVec3f)),new(S())(N().inputOnly,"addChildren",new(_().MFNode)),new(S())(N().inputOnly,"removeChildren",new(_().MFNode)),new(S())(N().inputOutput,"children",new(_().MFNode))]),enumerable:!0}});const Lt=Yt,Bt=p().add("ScreenGroup",Lt);s().add({name:"Layout",concreteNodes:[Z,st,ct,Ft,Bt],abstractNodes:[T],browserContext:f});p().add("LayoutComponent",undefined)})();
1
+ /* X_ITE v11.5.14 */
2
+ const t=window[Symbol.for("X_ITE.X3D-11.5.14")];(()=>{var e={n:t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},d:(t,i)=>{for(var s in i)e.o(i,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)};const i=t.Components;var s=e.n(i);const n=t.TextureProperties;var o=e.n(n);const a=t.Vector3;var r=e.n(a);const h=t.Matrix4;var l=e.n(h);const c=t.ViewVolume;var u=e.n(c);const d=t.Namespace;var p=e.n(d);const g=Symbol();function y(){}Object.assign(y.prototype,{getScreenTextureProperties(){return this[g]??=(()=>{const t=new(o())(this.getPrivateScene());return t._boundaryModeS="CLAMP_TO_EDGE",t._boundaryModeT="CLAMP_TO_EDGE",t._boundaryModeR="CLAMP_TO_EDGE",t._minificationFilter="NEAREST_PIXEL",t._magnificationFilter="NEAREST_PIXEL",t._generateMipMaps=!1,t._textureCompression="DEFAULT",t.setup(),t})()},getScreenScaleMatrix:(()=>{const t=new(r()),e=new(r()),i=new(l());return function(s,n,o,a){const h=s.getModelViewMatrix().get(),l=s.getProjectionMatrix().get(),c=s.getViewVolume().getViewport();s.getViewpoint().getScreenScale(h.origin,c,t);const d=h.xAxis.normalize().multiply(t.x*o),p=h.yAxis.normalize().multiply(t.y*o),g=h.zAxis.normalize().multiply(t.x*o);i.set(d.x,d.y,d.z,0,p.x,p.y,p.z,0,g.x,g.y,g.z,0,h[12],h[13],h[14],1),a&&(u().projectPoint(r().Zero,i,l,c,e),e.x=Math.round(e.x),e.y=Math.round(e.y),u().unProjectPoint(e.x,e.y,e.z,i,l,c,e),e.z=0,i.translate(e)),n.assign(h).inverse().multLeft(i)}})()});const x=y,f=p().add("X3DLayoutContext",x),w=t.Fields;var _=e.n(w);const M=t.X3DFieldDefinition;var S=e.n(M);const O=t.FieldDefinitionArray;var b=e.n(O);const z=t.X3DNode;var m=e.n(z);const v=t.X3DChildNode;var X=e.n(v);const F=t.X3DConstants;var N=e.n(F);function U(t){X().call(this,t),this.addType(N().X3DLayoutNode)}Object.setPrototypeOf(U.prototype,X().prototype),Object.defineProperties(U,m().getStaticProperties("X3DLayoutNode","Layout",1));const P=U,T=p().add("X3DLayoutNode",P),Y=t.Vector2;var L=e.n(Y);const B=t.Rotation4;var C=e.n(B);let E=0;const D=E++,V=E++,I=E++,j=E++,R=E++,A=E++,k=E++,G=E++,W=E++,H=E++;function q(t){T.call(this,t),this.addType(N().Layout),this.alignX=V,this.alignY=V,this.offsetUnitX=A,this.offsetUnitY=A,this.offsetX=0,this.offsetY=0,this.sizeUnitX=A,this.sizeUnitY=A,this.sizeX=1,this.sizeY=1,this.scaleModeX=W,this.scaleModeY=W,this.parent=null,this.rectangleCenter=new(L()),this.rectangleSize=new(L()),this.matrix=new(l())}Object.assign(Object.setPrototypeOf(q.prototype,T.prototype),{viewportPixel:new(L()),pixelSize:new(L()),translation:new(r()),offset:new(r()),scale:new(r())(1),currentTranslation:new(r()),currentRotation:new(C()),currentScale:new(r()),modelViewMatrix:new(l()),initialize(){T.prototype.initialize.call(this),this._align.addInterest("set_align__",this),this._offsetUnits.addInterest("set_offsetUnits__",this),this._offset.addInterest("set_offset__",this),this._sizeUnits.addInterest("set_sizeUnits__",this),this._size.addInterest("set_size__",this),this._scaleMode.addInterest("set_scaleMode__",this),this.set_align__(),this.set_offsetUnits__(),this.set_offset__(),this.set_sizeUnits__(),this.set_size__(),this.set_scaleMode__()},set_align__(){this._align.length>0?"LEFT"===this._align[0]?this.alignX=D:"RIGHT"===this._align[0]?this.alignX=I:this.alignX=V:this.alignX=V,this._align.length>1?"BOTTOM"===this._align[1]?this.alignY=j:"TOP"===this._align[1]?this.alignY=R:this.alignY=V:this.alignY=V},set_offsetUnits__(){this._offsetUnits.length>0?("FRACTION"===this._offsetUnits[0]?this.offsetUnitX=k:"PIXEL"===this._offsetUnits[0]?this.offsetUnitX=G:this.offsetUnitX=A,this._offsetUnits.length>1?"FRACTION"===this._offsetUnits[1]?this.offsetUnitY=k:"PIXEL"===this._offsetUnits[1]?this.offsetUnitY=G:this.offsetUnitY=A:this.offsetUnitY=this.offsetUnitX):(this.offsetUnitX=A,this.offsetUnitY=A)},set_offset__(){this._offset.length>0?(this.offsetX=this._offset[0],this._offset.length>1?this.offsetY=this._offset[1]:this.offsetY=offsetX):(this.offsetX=0,this.offsetY=0)},set_sizeUnits__(){this._sizeUnits.length>0?("FRACTION"===this._sizeUnits[0]?this.sizeUnitX=k:"PIXEL"===this._sizeUnits[0]?this.sizeUnitX=G:this.sizeUnitX=A,this._sizeUnits.length>1?"FRACTION"===this._sizeUnits[1]?this.sizeUnitY=k:"PIXEL"===this._sizeUnits[1]?this.sizeUnitY=G:this.sizeUnitY=A:this.sizeUnitY=this.sizeUnitX):(this.sizeUnitX=A,this.sizeUnitY=A)},set_size__(){this._size.length>0?(this.sizeX=this._size[0],this._size.length>1?this.sizeY=this._size[1]:this.sizeY=this.sizeX):(this.sizeX=0,this.sizeY=0)},set_scaleMode__(){this._scaleMode.length>0?("FRACTION"===this._scaleMode[0]?this.scaleModeX=k:"PIXEL"===this._scaleMode[0]?this.scaleModeX=G:"STRETCH"===this._scaleMode[0]?this.scaleModeX=H:this.scaleModeX=W,this._scaleMode.length>1?"FRACTION"===this._scaleMode[1]?this.scaleModeY=k:"PIXEL"===this._scaleMode[1]?this.scaleModeY=G:"STRETCH"===this._scaleMode[1]?this.scaleModeY=H:this.scaleModeY=W:this.scaleModeY=this.scaleModeX):(this.scaleModeX=W,this.scaleModeY=W)},getRectangleCenter(){return this.rectangleCenter},getRectangleSize(){return this.rectangleSize},getAlignX(){return this.alignX},getAlignY(){return this.alignY},getOffsetUnitX(){return this.offsetUnitX===A?this.parent?this.parent.getOffsetUnitX():k:this.offsetUnitX},getOffsetUnitY(){return this.offsetUnitY===A?this.parent?this.parent.getOffsetUnitY():k:this.offsetUnitY},getOffsetX(){return this.offsetX},getOffsetY(){return this.offsetY},getSizeUnitX(){return this.sizeUnitX===A?this.parent?this.parent.getSizeUnitX():k:this.sizeUnitX},getSizeUnitY(){return this.sizeUnitY===A?this.parent?this.parent.getSizeUnitY():k:this.sizeUnitY},getSizeX(){return this.sizeX},getSizeY(){return this.sizeY},getScaleModeX(){return this.parent?this.scaleModeX:this.scaleModeX===W?k:this.scaleModeX},getScaleModeY(){return this.parent?this.scaleModeY:this.scaleModeY===W?k:this.scaleModeY},transform(t,e){const i=this.parent=e.getParentLayout(),s=this.getBrowser().getRenderingProperty("ContentScale"),n=this.matrix,o=e.getNavigationInfo(),a=e.getViewpoint(),r=a.getNearDistance(o),h=e.getViewVolume().getViewport(),l=a.getViewportSize(h,r),c=this.viewportPixel,u=this.pixelSize,d=i?i.getRectangleSize():l,p=this.rectangleSize,g=this.rectangleCenter;switch(c.set(h[2],h[3]).divide(s),u.assign(l).divVec(c),this.getSizeUnitX()){case k:p.x=this.sizeX*d.x;break;case G:p.x=this.sizeX*u.x}switch(this.getSizeUnitY()){case k:p.y=this.sizeY*d.y;break;case G:p.y=this.sizeY*u.y}const y=this.translation.set(0);switch(this.getAlignX()){case D:y.x=-(d.x-p.x)/2;break;case V:this.getSizeUnitX()===G&&1&c.x&&(y.x=-u.x/2);break;case I:y.x=(d.x-p.x)/2}switch(this.getAlignY()){case j:y.y=-(d.y-p.y)/2;break;case V:this.getSizeUnitX()===G&&1&c.y&&(y.y=-u.y/2);break;case R:y.y=(d.y-p.y)/2}const x=this.offset.set(0);switch(this.getOffsetUnitX()){case k:x.x=this.offsetX*d.x;break;case G:x.x=this.offsetX*l.x/c.x}switch(this.getOffsetUnitY()){case k:x.y=this.offsetY*d.y;break;case G:x.y=this.offsetY*l.y/c.y}const f=this.scale.set(1),w=this.currentTranslation,_=this.currentRotation,M=this.currentScale;switch(e.getModelViewMatrix().get().get(w,_,M),this.getScaleModeX()){case W:f.x=M.x;break;case k:f.x=p.x;break;case H:break;case G:f.x=l.x/c.x}switch(this.getScaleModeY()){case W:f.y=M.y;break;case k:f.y=p.y;break;case H:break;case G:f.y=l.y/c.y}return this.getScaleModeX()===H?this.getScaleModeY()===H?p.x>p.y?(f.x=p.x,f.y=f.x):(f.y=p.y,f.x=f.y):f.x=f.y:this.getScaleModeY()===H&&(f.y=f.x),g.assign(y.add(x)),n.set(w,_),n.translate(y),n.scale(f),n}}),Object.defineProperties(q,{...m().getStaticProperties("Layout","Layout",1,"layout","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"align",new(_().MFString)("CENTER","CENTER")),new(S())(N().inputOutput,"offsetUnits",new(_().MFString)("WORLD","WORLD")),new(S())(N().inputOutput,"offset",new(_().MFFloat)(0,0)),new(S())(N().inputOutput,"sizeUnits",new(_().MFString)("WORLD","WORLD")),new(S())(N().inputOutput,"size",new(_().MFFloat)(1,1)),new(S())(N().inputOutput,"scaleMode",new(_().MFString)("NONE","NONE"))]),enumerable:!0}});const K=q,Z=p().add("Layout",K),Q=t.X3DGroupingNode;var J=e.n(Q);const $=t.X3DCast;var tt=e.n($);function et(t){J().call(this,t),this.addType(N().LayoutGroup),this.setCollisionObject(!1),this.matrix=new(l()),this.modelViewMatrix=new(l()),this.screenMatrix=new(l())}Object.assign(Object.setPrototypeOf(et.prototype,J().prototype),{initialize(){J().prototype.initialize.call(this),this._viewport.addInterest("set_viewport__",this),this._layout.addInterest("set_layout__",this),this._bboxSize.addInterest("set_visibleObjects__",this),this.set_viewport__(),this.set_layout__()},set_viewport__(){this.viewportNode=tt()(N().X3DViewportNode,this._viewport)},set_layout__(){this.layoutNode=tt()(N().X3DLayoutNode,this._layout)},set_collisionObjects__(){},set_visibleObjects__(){this.setVisibleObject(this.visibleObjects.size||this.bboxObjects.size||this.boundedObjects.size||!this.isDefaultBBoxSize())},getBBox(t,e){return J().prototype.getBBox.call(this,t,e).multRight(this.getMatrix())},getMatrix(){return this.layoutNode?this.matrix.assign(this.modelViewMatrix).inverse().multLeft(this.screenMatrix):this.matrix.identity()},traverse(t,e){if(this.viewportNode?.push(),this.layoutNode){const i=e.getModelViewMatrix();this.modelViewMatrix.assign(i.get()),this.screenMatrix.assign(this.layoutNode.transform(t,e)),i.push(this.screenMatrix),e.getLayouts().push(this.layoutNode),J().prototype.traverse.call(this,t,e),e.getLayouts().pop(),i.pop()}else J().prototype.traverse.call(this,t,e);this.viewportNode?.pop()}}),Object.defineProperties(et,{...m().getStaticProperties("LayoutGroup","Layout",1,"children","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"layout",new(_().SFNode)),new(S())(N().inputOutput,"viewport",new(_().SFNode)),new(S())(N().inputOutput,"visible",new(_().SFBool)(!0)),new(S())(N().inputOutput,"bboxDisplay",new(_().SFBool)),new(S())(N().initializeOnly,"bboxSize",new(_().SFVec3f)(-1,-1,-1)),new(S())(N().initializeOnly,"bboxCenter",new(_().SFVec3f)),new(S())(N().inputOnly,"addChildren",new(_().MFNode)),new(S())(N().inputOnly,"removeChildren",new(_().MFNode)),new(S())(N().inputOutput,"children",new(_().MFNode))]),enumerable:!0}});const it=et,st=p().add("LayoutGroup",it),nt=t.X3DLayerNode;var ot=e.n(nt);const at=t.OrthoViewpoint;var rt=e.n(at);function ht(t){ot().call(this,t,new(rt())(t),new st(t)),this.addType(N().LayoutLayer)}Object.assign(Object.setPrototypeOf(ht.prototype,ot().prototype),{initialize(){ot().prototype.initialize.call(this);const t=this.getGroups()._children[0].getValue();this._layout.addFieldInterest(t._layout),this._addChildren.addFieldInterest(t._addChildren),this._removeChildren.addFieldInterest(t._removeChildren),this._children.addFieldInterest(t._children),t._layout=this._layout,t._children=this._children,t.setPrivate(!0),t.setup(),this.getGroups().setup()}}),Object.defineProperties(ht,{...m().getStaticProperties("LayoutLayer","Layout",1,"layers","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"pickable",new(_().SFBool)(!0)),new(S())(N().inputOutput,"objectType",new(_().MFString)("ALL")),new(S())(N().inputOutput,"pointerEvents",new(_().SFBool)(!0)),new(S())(N().inputOutput,"visible",new(_().SFBool)(!0)),new(S())(N().inputOutput,"layout",new(_().SFNode)),new(S())(N().inputOutput,"viewport",new(_().SFNode)),new(S())(N().inputOnly,"addChildren",new(_().MFNode)),new(S())(N().inputOnly,"removeChildren",new(_().MFNode)),new(S())(N().inputOutput,"children",new(_().MFNode))]),enumerable:!0}});const lt=ht,ct=p().add("LayoutLayer",lt),ut=t.X3DFontStyleNode;var dt=e.n(ut);const pt=t.X3DTextGeometry;var gt=e.n(pt);const yt=t.TextAlignment;var xt=e.n(yt);const ft=t.PixelTexture;var wt=e.n(ft);const _t=t.Box3;var Mt=e.n(_t);const St=t.Algorithm;var Ot=e.n(St);function bt(t,e){gt().call(this,t,e),t.setTransparent(!0),this.textureNode=new(wt())(t.getExecutionContext()),this.context=document.createElement("canvas").getContext("2d",{willReadFrequently:!0}),this.modelViewMatrix=new(l()),this.matrix=new(l()),this.textureNode._textureProperties=e.getBrowser().getScreenTextureProperties(),this.textureNode.setup()}Object.assign(Object.setPrototypeOf(bt.prototype,gt().prototype),{modelViewMatrix:new(l()),getMatrix(){return this.matrix},update:(()=>{const t=new(r()),e=new(r())(1,1,0);return function(){gt().prototype.update.call(this);const i=this.getFontStyle(),s=this.getText();switch(s._textBounds.x=Math.ceil(s._textBounds.x)+1,s._textBounds.y=Math.ceil(s._textBounds.y)+1,this.getBBox().getExtents(t,e),t.x-=1,t.y-=1,i.getMajorAlignment()){case xt().BEGIN:case xt().FIRST:t.x=Math.floor(t.x),e.x=t.x+s._textBounds.x;break;case xt().MIDDLE:t.x=Math.round(t.x),e.x=t.x+s._textBounds.x;break;case xt().END:e.x=Math.ceil(e.x),t.x=e.x-s._textBounds.x}switch(i.getMinorAlignment()){case xt().BEGIN:case xt().FIRST:e.y=Math.ceil(e.y),t.y=e.y-s._textBounds.y;break;case xt().MIDDLE:e.y=Math.round(e.y),t.y=e.y-s._textBounds.y;break;case xt().END:t.y=Math.floor(t.y),e.y=t.y+s._textBounds.y}s._origin.x=t.x,s._origin.y=e.y,this.getBBox().setExtents(t,e)}})(),build:(()=>{const t=new(r()),e=new(r())(1,1,0);return function(){const i=this.getFontStyle(),s=i.getFont();if(!s)return;const n=this.getText(),o=this.getGlyphs(),a=this.getMinorAlignment(),r=this.getTranslations(),h=this.getCharSpacings(),l=this.getScales(),c=i.getScale(),u=c/s.unitsPerEm,d=n.getTexCoords(),p=n.getNormals(),g=n.getVertices(),y=this.context.canvas,x=this.context;n.getMultiTexCoords().push(d),this.getBBox().getExtents(t,e),p.push(0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1),g.push(t.x,t.y,0,1,e.x,t.y,0,1,e.x,e.y,0,1,t.x,t.y,0,1,e.x,e.y,0,1,t.x,e.y,0,1);const f=n._textBounds.x,w=n._textBounds.y;y.width=Ot().nextPowerOfTwo(f),y.height=Ot().nextPowerOfTwo(w);const _=f/y.width,M=1-w/y.height;if(d.push(0,M,0,1,_,M,0,1,_,1,0,1,0,M,0,1,_,1,0,1,0,1,0,1),x.fillStyle="rgba(255,255,255,0)",x.fillRect(0,0,y.width,y.height),x.fillStyle="rgba(255,255,255,1)",x.save(),x.translate(0,y.height),x.scale(1,-1),i._horizontal.getValue())for(let i=0,n=o.length;i<n;++i){const n=o[i],d=r[i],p=h[i],g=l[i];let y=0;for(let i=0,o=n.length;i<o;++i){const o=n[i],r=a.x+d.x+y*g+i*p-t.x,h=a.y+d.y-e.y;x.save(),x.translate(r,-h),x.scale(g,1),this.drawGlyph(x,s,o,c),x.restore();let l=0;i+1<n.length&&(l=s.getKerningValue(o,n[i+1])),y+=(o.advanceWidth+l)*u}}else{const u=i._leftToRight.getValue(),d=i._topToBottom.getValue(),p=u?0:n._string.length-1,g=u?n._string.length:-1,y=u?1:-1;for(let i=p,n=0;i!==g;i+=y){const u=o[i],p=u.length,g=d?0:p-1,y=d?p:-1,f=d?1:-1,w=h[i],_=l[i];for(let i=g;i!==y;i+=f,++n){const o=r[n],h=a.x+o.x-t.x,l=a.y+o.y*_-i*w-e.y;x.save(),x.translate(h,-l),x.scale(1,_),this.drawGlyph(x,s,u[i],c),x.restore()}}}x.restore();const S=x.getImageData(0,0,y.width,y.height);S?this.textureNode.setTextureData(y.width,y.height,!0,!0,new Uint8Array(S.data.buffer)):this.textureNode.clear()}})(),drawGlyph(t,e,i,s){const n=i.getPath(0,0,s),o=n.commands;t.beginPath();for(let e=0,i=o.length;e<i;++e){const i=o[e];switch(i.type){case"M":t.moveTo(i.x,i.y);continue;case"Z":t.closePath();continue;case"L":t.lineTo(i.x,i.y);continue;case"Q":t.quadraticCurveTo(i.x1,i.y1,i.x,i.y);continue;case"C":t.bezierCurveTo(i.x1,i.y1,i.x2,i.y2,i.x,i.y);continue}}n.fill&&t.fill(),n.stroke&&(t.lineWidth=n.strokeWidth,t.stroke())},getGlyphExtents(t,e,i,s,n){const o=t.unitsPerEm;s.set((e.xMin||0)/o,(e.yMin||0)/o,0),n.set((e.xMax||0)/o,(e.yMax||0)/o,0)},traverse:(()=>{const t=new(Mt());return function(e,i){this.getBrowser().getScreenScaleMatrix(i,this.matrix,1,!0),this.modelViewMatrix.assign(i.getModelViewMatrix().get()).multLeft(this.matrix),t.assign(this.getBBox()).multRight(this.matrix),this.getText().setBBox(t)}})(),displaySimple(t,e,i){e.modelViewMatrix.set(this.modelViewMatrix),t.uniformMatrix4fv(i.x3d_ModelViewMatrix,!1,e.modelViewMatrix)},display(t,e){e.modelViewMatrix.set(this.modelViewMatrix),e.textureNode=this.textureNode},transformLine:(()=>{const t=new(l());return function(e){return e.multLineMatrix(t.assign(this.matrix).inverse())}})(),transformMatrix(t){return t.multLeft(this.matrix)}});const zt=bt,mt=p().add("ScreenText",zt);function vt(t){dt().call(this,t),this.addType(N().ScreenFontStyle)}Object.assign(Object.setPrototypeOf(vt.prototype,dt().prototype),{initialize(){dt().prototype.initialize.call(this),this.getBrowser().getRenderingProperties()._ContentScale.addInterest("addNodeEvent",this)},getTextGeometry(t){return new mt(t,this)},getScale(){return this._pointSize.getValue()*this.getBrowser().getRenderingProperty("PixelsPerPoint")},getContentScale(){return this.getBrowser().getRenderingProperty("ContentScale")}}),Object.defineProperties(vt,{...m().getStaticProperties("ScreenFontStyle","Layout",2,"fontStyle","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"language",new(_().SFString)),new(S())(N().inputOutput,"family",new(_().MFString)("SERIF")),new(S())(N().inputOutput,"style",new(_().SFString)("PLAIN")),new(S())(N().inputOutput,"pointSize",new(_().SFFloat)(12)),new(S())(N().inputOutput,"spacing",new(_().SFFloat)(1)),new(S())(N().inputOutput,"horizontal",new(_().SFBool)(!0)),new(S())(N().inputOutput,"leftToRight",new(_().SFBool)(!0)),new(S())(N().inputOutput,"topToBottom",new(_().SFBool)(!0)),new(S())(N().inputOutput,"justify",new(_().MFString)("BEGIN"))]),enumerable:!0}});const Xt=vt,Ft=p().add("ScreenFontStyle",Xt),Nt=t.TraverseType;var Ut=e.n(Nt);const Pt=t.X3DProtoDeclaration;var Tt=e.n(Pt);function Yt(t){J().call(this,t),this.addType(N().ScreenGroup),t.getOuterNode()instanceof Tt()?this.matrix=new(l()):this.matrix=new(l())(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}Object.assign(Object.setPrototypeOf(Yt.prototype,J().prototype),{initialize(){J().prototype.initialize.call(this),this._bboxSize.addInterest("set_visibleObjects__",this)},set_visibleObjects__(){this.setVisibleObject(this.visibleObjects.size||this.bboxObjects.size||this.boundedObjects.size||!this.isDefaultBBoxSize())},getBBox(t,e){return this.getSubBBox(t,e).multRight(this.matrix)},getMatrix(){return this.matrix},traverse(t,e){switch(t){case Ut().CAMERA:case Ut().PICKING:case Ut().SHADOW:break;default:{const t=this.getBrowser();t.getScreenScaleMatrix(e,this.matrix,t.getRenderingProperty("ContentScale"),!1);break}}const i=e.getModelViewMatrix();i.push(),i.multLeft(this.matrix),J().prototype.traverse.call(this,t,e),i.pop()}}),Object.defineProperties(Yt,{...m().getStaticProperties("ScreenGroup","Layout",2,"children","3.2"),fieldDefinitions:{value:new(b())([new(S())(N().inputOutput,"metadata",new(_().SFNode)),new(S())(N().inputOutput,"visible",new(_().SFBool)(!0)),new(S())(N().inputOutput,"bboxDisplay",new(_().SFBool)),new(S())(N().initializeOnly,"bboxSize",new(_().SFVec3f)(-1,-1,-1)),new(S())(N().initializeOnly,"bboxCenter",new(_().SFVec3f)),new(S())(N().inputOnly,"addChildren",new(_().MFNode)),new(S())(N().inputOnly,"removeChildren",new(_().MFNode)),new(S())(N().inputOutput,"children",new(_().MFNode))]),enumerable:!0}});const Lt=Yt,Bt=p().add("ScreenGroup",Lt);s().add({name:"Layout",concreteNodes:[Z,st,ct,Ft,Bt],abstractNodes:[T],browserContext:f});p().add("LayoutComponent",undefined)})();