janusweb 1.5.41 → 1.5.43

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 (250) hide show
  1. package/CHANGELOG +23 -0
  2. package/css/janusweb.css +7 -2
  3. package/media/assets/webui/apps/buttons/buttons.js +17 -43
  4. package/media/assets/webui/apps/comms/chat.html +1 -0
  5. package/media/assets/webui/apps/comms/chat_message.html +1 -1
  6. package/media/assets/webui/apps/comms/comms.js +14 -7
  7. package/media/assets/webui/apps/comms/external/naf-shim.js +1 -1
  8. package/media/assets/webui/apps/comms/voip.css +32 -3
  9. package/media/assets/webui/apps/comms/voip.js +191 -12
  10. package/media/assets/webui/apps/editor/editor.css +1 -0
  11. package/media/assets/webui/apps/editor/editor.js +97 -20
  12. package/media/assets/webui/apps/inventory/inventory.css +2 -1
  13. package/media/assets/webui/apps/locomotion/teleporter.js +21 -10
  14. package/media/assets/webui/apps/xrmenu/images/audio-settings.png +0 -0
  15. package/media/assets/webui/apps/xrmenu/xrmenu-assets.json +2 -1
  16. package/media/assets/webui/apps/xrmenu/xrmenu.js +119 -32
  17. package/media/assets/webui/themes/default.css +42 -0
  18. package/media/lib/basis/basis_transcoder.js +8 -8
  19. package/media/lib/basis/basis_transcoder.wasm +0 -0
  20. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-fragment.glsl +284 -0
  21. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-vertex.glsl +60 -0
  22. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-fragment.glsl +334 -0
  23. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-vertex.glsl +46 -0
  24. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-fragment.glsl +248 -0
  25. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-vertex.glsl +60 -0
  26. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-MainTex.png +0 -0
  27. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-fragment.glsl +34 -0
  28. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-vertex.glsl +120 -0
  29. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-MainTex.png +0 -0
  30. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-fragment.glsl +89 -0
  31. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-vertex.glsl +60 -0
  32. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-fragment.glsl +69 -0
  33. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-vertex.glsl +60 -0
  34. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-MainTex.png +0 -0
  35. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-fragment.glsl +289 -0
  36. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-vertex.glsl +60 -0
  37. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-MainTex.png +0 -0
  38. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-fragment.glsl +292 -0
  39. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-vertex.glsl +60 -0
  40. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-AlphaMask.png +0 -0
  41. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-MainTex.png +0 -0
  42. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-fragment.glsl +65 -0
  43. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-vertex.glsl +60 -0
  44. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-MainTex.png +0 -0
  45. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-fragment.glsl +481 -0
  46. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-vertex.glsl +57 -0
  47. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +290 -0
  48. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +70 -0
  49. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-MainTex.png +0 -0
  50. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-fragment.glsl +113 -0
  51. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-vertex.glsl +60 -0
  52. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-MainTex.png +0 -0
  53. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-fragment.glsl +35 -0
  54. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-vertex.glsl +120 -0
  55. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-fragment.glsl +286 -0
  56. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-vertex.glsl +54 -0
  57. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-fragment.glsl +81 -0
  58. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-vertex.glsl +54 -0
  59. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-BumpMap.png +0 -0
  60. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-MainTex.png +0 -0
  61. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-fragment.glsl +376 -0
  62. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-vertex.glsl +60 -0
  63. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-BumpMap.png +0 -0
  64. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-MainTex.png +0 -0
  65. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-fragment.glsl +378 -0
  66. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-vertex.glsl +60 -0
  67. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-fragment.glsl +50 -0
  68. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-vertex.glsl +79 -0
  69. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-MainTex.png +0 -0
  70. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-fragment.glsl +32 -0
  71. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-vertex.glsl +152 -0
  72. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-fragment.glsl +288 -0
  73. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-vertex.glsl +47 -0
  74. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-fragment.glsl +288 -0
  75. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-vertex.glsl +50 -0
  76. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-MainTex.png +0 -0
  77. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-fragment.glsl +61 -0
  78. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-vertex.glsl +60 -0
  79. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-fragment.glsl +285 -0
  80. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-vertex.glsl +60 -0
  81. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-fragment.glsl +286 -0
  82. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-vertex.glsl +60 -0
  83. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-fragment.glsl +285 -0
  84. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-vertex.glsl +60 -0
  85. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-MainTex.png +0 -0
  86. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-fragment.glsl +40 -0
  87. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-vertex.glsl +60 -0
  88. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-MainTex.png +0 -0
  89. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-fragment.glsl +33 -0
  90. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-vertex.glsl +60 -0
  91. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-BumpMap.png +0 -0
  92. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-MainTex.png +0 -0
  93. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-fragment.glsl +386 -0
  94. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-vertex.glsl +60 -0
  95. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-BumpMap.png +0 -0
  96. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-MainTex.png +0 -0
  97. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-fragment.glsl +385 -0
  98. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-vertex.glsl +60 -0
  99. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-BumpMap.png +0 -0
  100. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-fragment.glsl +376 -0
  101. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-vertex.glsl +60 -0
  102. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-BumpMap.png +0 -0
  103. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-MainTex.png +0 -0
  104. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-fragment.glsl +376 -0
  105. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-vertex.glsl +60 -0
  106. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-BumpMap.png +0 -0
  107. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-MainTex.png +0 -0
  108. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-fragment.glsl +377 -0
  109. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-vertex.glsl +60 -0
  110. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-BumpMap.png +0 -0
  111. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-MainTex.png +0 -0
  112. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-fragment.glsl +319 -0
  113. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-vertex.glsl +60 -0
  114. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-MainTex.png +0 -0
  115. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-fragment.glsl +47 -0
  116. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-vertex.glsl +60 -0
  117. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-MainTex.png +0 -0
  118. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +330 -0
  119. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +64 -0
  120. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-fragment.glsl +285 -0
  121. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-vertex.glsl +60 -0
  122. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-MainTex.png +0 -0
  123. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-fragment.glsl +87 -0
  124. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-vertex.glsl +60 -0
  125. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-fragment.glsl +285 -0
  126. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-vertex.glsl +60 -0
  127. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-fragment.glsl +267 -0
  128. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-vertex.glsl +60 -0
  129. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-BumpMap.png +0 -0
  130. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-MainTex.png +0 -0
  131. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-fragment.glsl +377 -0
  132. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-vertex.glsl +60 -0
  133. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-BumpMap.png +0 -0
  134. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-MainTex.png +0 -0
  135. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-fragment.glsl +376 -0
  136. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-vertex.glsl +60 -0
  137. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-BumpMap.png +0 -0
  138. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-MainTex.png +0 -0
  139. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-fragment.glsl +377 -0
  140. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-vertex.glsl +60 -0
  141. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-fragment.glsl +370 -0
  142. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-vertex.glsl +48 -0
  143. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-fragment.glsl +374 -0
  144. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-vertex.glsl +48 -0
  145. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-fragment.glsl +367 -0
  146. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-vertex.glsl +60 -0
  147. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-MainTex.png +0 -0
  148. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-fragment.glsl +64 -0
  149. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-vertex.glsl +60 -0
  150. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-fragment.glsl +70 -0
  151. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-vertex.glsl +60 -0
  152. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-fragment.glsl +367 -0
  153. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-vertex.glsl +60 -0
  154. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-MainTex.png +0 -0
  155. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-fragment.glsl +30 -0
  156. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-vertex.glsl +125 -0
  157. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-MainTex.png +0 -0
  158. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-fragment.glsl +31 -0
  159. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-vertex.glsl +143 -0
  160. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-MainTex.png +0 -0
  161. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-fragment.glsl +34 -0
  162. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-vertex.glsl +60 -0
  163. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-fragment.glsl +285 -0
  164. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-vertex.glsl +60 -0
  165. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-MainTex.png +0 -0
  166. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-fragment.glsl +290 -0
  167. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-vertex.glsl +60 -0
  168. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-MainTex.png +0 -0
  169. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-fragment.glsl +291 -0
  170. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-vertex.glsl +60 -0
  171. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-MainTex.png +0 -0
  172. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-fragment.glsl +31 -0
  173. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-vertex.glsl +128 -0
  174. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-MainTex.png +0 -0
  175. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-fragment.glsl +63 -0
  176. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-vertex.glsl +60 -0
  177. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-MainTex.png +0 -0
  178. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-fragment.glsl +113 -0
  179. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-vertex.glsl +62 -0
  180. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-MainTex.png +0 -0
  181. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-fragment.glsl +292 -0
  182. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-vertex.glsl +60 -0
  183. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-MainTex.png +0 -0
  184. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-fragment.glsl +287 -0
  185. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-vertex.glsl +58 -0
  186. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-MainTex.png +0 -0
  187. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-fragment.glsl +113 -0
  188. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-vertex.glsl +60 -0
  189. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-MainTex.png +0 -0
  190. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-fragment.glsl +314 -0
  191. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-vertex.glsl +60 -0
  192. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-BumpMap.png +0 -0
  193. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-MainTex.png +0 -0
  194. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-fragment.glsl +378 -0
  195. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-vertex.glsl +60 -0
  196. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-BumpMap.png +0 -0
  197. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-MainTex.png +0 -0
  198. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-fragment.glsl +380 -0
  199. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-vertex.glsl +58 -0
  200. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +85 -0
  201. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  202. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-fragment.glsl +81 -0
  203. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-vertex.glsl +60 -0
  204. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-MainTex.png +0 -0
  205. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-fragment.glsl +80 -0
  206. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-vertex.glsl +60 -0
  207. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-MainTex.png +0 -0
  208. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-fragment.glsl +82 -0
  209. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-vertex.glsl +55 -0
  210. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-BumpMap.png +0 -0
  211. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-MainTex.png +0 -0
  212. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-fragment.glsl +376 -0
  213. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-vertex.glsl +60 -0
  214. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-BumpMap.png +0 -0
  215. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-MainTex.png +0 -0
  216. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-fragment.glsl +313 -0
  217. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-vertex.glsl +58 -0
  218. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-MainTex.png +0 -0
  219. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-fragment.glsl +377 -0
  220. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-vertex.glsl +60 -0
  221. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-MainTex.png +0 -0
  222. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-fragment.glsl +107 -0
  223. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-vertex.glsl +58 -0
  224. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +75 -0
  225. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  226. package/media/manifest.json +1 -1
  227. package/package.json +2 -2
  228. package/scripts/client.js +20 -3
  229. package/scripts/elements/outliner.js +182 -0
  230. package/scripts/external/JanusClientConnection.js +14 -8
  231. package/scripts/external/JanusFireboxParser.js +1 -1
  232. package/scripts/image.js +1 -1
  233. package/scripts/janusbase.js +40 -17
  234. package/scripts/janusghost.js +17 -6
  235. package/scripts/januslight.js +46 -4
  236. package/scripts/janusparticle.js +121 -15
  237. package/scripts/janusplayer.js +176 -92
  238. package/scripts/janusweb.js +9 -5
  239. package/scripts/janusxrplayer.js +152 -20
  240. package/scripts/multiplayermanager.js +4 -0
  241. package/scripts/object.js +83 -38
  242. package/scripts/parts.js +1 -1
  243. package/scripts/portal.js +13 -9
  244. package/scripts/remoteplayer.js +3 -2
  245. package/scripts/room.js +109 -32
  246. package/scripts/sound.js +8 -3
  247. package/scripts/text.js +9 -2
  248. package/scripts/tracking.js +1 -1
  249. package/scripts/ui/main.js +6 -2
  250. package/scripts/websurface.js +3 -3
package/scripts/room.js CHANGED
@@ -27,6 +27,7 @@ elation.require([
27
27
  'baseurl': { type: 'string', default: false },
28
28
  'source': { type: 'string' },
29
29
  'skybox': { type: 'boolean', default: true, set: this.toggleSkybox },
30
+ 'skybox_intensity': { type: 'float', set: this.setSkybox, default: 1.0 },
30
31
  'skybox_equi': { type: 'string', set: this.setSkybox },
31
32
  'skybox_left_id': { type: 'string', set: this.setSkybox },
32
33
  'skybox_right_id': { type: 'string', set: this.setSkybox },
@@ -53,8 +54,8 @@ elation.require([
53
54
  'defaultlights': { type: 'bool', default: true, set: this.updateLights },
54
55
  'shadows': { type: 'bool', default: false, set: this.updateShadows },
55
56
  'party_mode': { type: 'bool', default: true },
56
- 'walk_speed': { type: 'float', default: 1.8 },
57
- 'run_speed': { type: 'float', default: 5.4 },
57
+ 'walk_speed': { type: 'float', default: 1.8, set: this.updatePlayerSpeed },
58
+ 'run_speed': { type: 'float', default: 5.4, set: this.updatePlayerSpeed },
58
59
  'jump_velocity': { type: 'float', default: 5.0 },
59
60
  'flying': { type: 'boolean', default: true, set: this.updateFlying },
60
61
  'gravity': { type: 'float', default: 0, set: this.updateGravity },
@@ -68,7 +69,7 @@ elation.require([
68
69
  'server': { type: 'string' },
69
70
  'port': { type: 'int' },
70
71
  'rate': { type: 'int', default: 200 },
71
- 'voip': { type: 'string', default: 'janus' },
72
+ 'voip': { type: 'string', default: 'none' },
72
73
  'voipid': { type: 'string' },
73
74
  'voiprange': { type: 'float', default: 1 },
74
75
  'voipserver': { type: 'string', default: 'voip.janusxr.org' },
@@ -79,7 +80,7 @@ elation.require([
79
80
  'requires': { type: 'string' },
80
81
  'onload': { type: 'string' },
81
82
  'sync': { type: 'boolean', default: false },
82
- 'pointerlock': { type: 'boolean', default: true },
83
+ 'pointerlock': { type: 'boolean', default: true, set: this.updatePointerLock },
83
84
  });
84
85
  this.translators = {
85
86
  '^janus-vfs:': elation.janusweb.translators.janusvfs({janus: this.janus}),
@@ -113,6 +114,7 @@ elation.require([
113
114
  this.customElements = {};
114
115
  this.unknownElements = {};
115
116
  this.eventlistenerproxies = {};
117
+ this.pendingScriptMap = {};
116
118
 
117
119
  // FIXME - binding functions to this instance so we can unbind events later. Should be done at a lower level
118
120
  this.onRoomEdit = elation.bind(this, this.onRoomEdit);
@@ -138,6 +140,7 @@ elation.require([
138
140
  let hashidx = this.url.indexOf('#');
139
141
  if (hashidx != -1) {
140
142
  this.urlhash = this.url.substr(hashidx+1);
143
+ this.setHash(this.urlhash)
141
144
  this.url = this.url.substr(0, hashidx);
142
145
  }
143
146
  this.roomid = md5(this.url);
@@ -274,7 +277,7 @@ elation.require([
274
277
  let obj = this.getObjectById(this.urlhash);
275
278
  if (obj) {
276
279
  obj.localToWorld(spawnpoint.position.set(0,0,0));
277
- spawnpoint.orientation.setFromRotationMatrix(obj.objects['3d'].matrixWorld);
280
+ spawnpoint.orientation.setFromRotationMatrix(obj.objects['3d'].matrixWorld.lookAt(spawnpoint.position, obj.localToWorld(V(0,0,1)), obj.localToWorld(V(0,1,0).sub(spawnpoint.position))));
278
281
  }
279
282
  }
280
283
  return spawnpoint;
@@ -307,9 +310,11 @@ elation.require([
307
310
  elation.events.add(equi, 'asset_load', ev => {
308
311
  this.skyboxtexture = ev.target._texture;
309
312
  this.skyboxtexture.mapping = THREE.EquirectangularReflectionMapping;
313
+ this.skyboxtexture.encoding = THREE.sRGBEncoding;
310
314
  if (this.janus.currentroom === this) {
311
315
  this.skyboxobj.setTexture(this.skyboxtexture);
312
316
  }
317
+ elation.events.fire({element: this, type: 'skybox_update'});
313
318
  });
314
319
  equi.getInstance();
315
320
  } else if (hasSkybox) {
@@ -706,9 +711,9 @@ elation.require([
706
711
  }
707
712
  this.parseSource = function(data) {
708
713
  this.fullsource = data;
709
- var titlere = /<title>([\s\S]*?)<\/title>/mi;
710
- var re = /<fireboxroom>[\s\S]*?<\/fireboxroom>/mi;
711
- var re2 = /<janus-viewer[^>]*>[\s\S]*?<\/janus-viewer>/mi;
714
+ var titlere = /<title>([\s\S]*?)<\/title>/si;
715
+ var re = /<fireboxroom>[\s\S]*?<\/fireboxroom>/si;
716
+ var re2 = /<janus-viewer[^>]*>[\s\S]*?<\/janus-viewer>/si;
712
717
  var mtitle = data.match(titlere);
713
718
  var parsed = {
714
719
  title: 'Untitled Room',
@@ -885,9 +890,9 @@ elation.require([
885
890
  // If no reciprocal link was found, spawn one so we can find our way back
886
891
  let linkrot = new EulerDegrees();
887
892
  linkrot.radians.copy(this.spawnpoint.rotation);
888
- //linkrot.x *= THREE.Math.RAD2DEG;
893
+ //linkrot.x *= THREE.MathUtils.RAD2DEG;
889
894
  linkrot.y = linkrot.y + 180;
890
- //linkrot.z *= THREE.Math.RAD2DEG;
895
+ //linkrot.z *= THREE.MathUtils.RAD2DEG;
891
896
  let linkpos = this.spawnpoint.localToWorld(V(0,0,player.fatness/2));
892
897
  this.createObject('link', {
893
898
  pos: linkpos,
@@ -958,8 +963,12 @@ elation.require([
958
963
  this.properties.cursor_opacity = room.cursor_opacity;
959
964
 
960
965
  let cookieStorageID = 'cookies.' + this.url;
961
- if (cookieStorageID in localStorage) {
962
- this.cookies = JSON.parse(localStorage['cookies.' + this.url]);
966
+ try {
967
+ if (cookieStorageID in localStorage) {
968
+ this.cookies = JSON.parse(localStorage['cookies.' + this.url]);
969
+ }
970
+ } catch (e) {
971
+ this.cookies = [];
963
972
  }
964
973
 
965
974
  if (room.onload) {
@@ -969,7 +978,6 @@ elation.require([
969
978
 
970
979
  if (assets.scripts) {
971
980
  this.pendingScripts = 0;
972
- this.pendingScriptMap = {};
973
981
  this.loadScripts(assets.scripts);
974
982
  }
975
983
 
@@ -1060,7 +1068,7 @@ elation.require([
1060
1068
 
1061
1069
  if (this.audionodes) {
1062
1070
  this.audionodes.gain.connect(this.audionodes.listener.getInput());
1063
- console.log('connect room audio to graph', this.audionodes.gain, this.audionodes.listener.getInput(), this);
1071
+ //console.log('connect room audio to graph', this.audionodes.gain, this.audionodes.listener.getInput(), this);
1064
1072
  this.fadeAudioIn(2);
1065
1073
  }
1066
1074
  this.engine.systems.controls.pointerLockEnabled = this.pointerlock;
@@ -1504,6 +1512,7 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
1504
1512
  type: args.type,
1505
1513
  format: args.format,
1506
1514
  hls: args.hls,
1515
+ proxy: args.proxy,
1507
1516
  baseurl: this.baseurl
1508
1517
  });
1509
1518
  }
@@ -1633,7 +1642,10 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
1633
1642
  }
1634
1643
  this.addCookie = function(name, value) {
1635
1644
  this.cookies[name] = value;
1636
- localStorage['cookies.' + this.url] = JSON.stringify(this.cookies);
1645
+ try {
1646
+ localStorage['cookies.' + this.url] = JSON.stringify(this.cookies);
1647
+ } catch (e) {
1648
+ }
1637
1649
  }
1638
1650
  this.doScriptOnload = function() {
1639
1651
  if (--this.pendingScripts <= 0) {
@@ -1972,11 +1984,17 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
1972
1984
  this.updateFlying = function() {
1973
1985
  if (typeof player != 'undefined') {
1974
1986
  player.flying = this.flying;
1975
- console.log('Toggle player flying', this.flying);
1987
+ //console.log('Toggle player flying', this.flying);
1988
+ }
1989
+ }
1990
+ this.updatePlayerSpeed = function() {
1991
+ if (typeof player != 'undefined') {
1992
+ player.properties.movestrength = 80 * this.properties.walk_speed;
1993
+ player.properties.runstrength = 80 * this.properties.run_speed;
1976
1994
  }
1977
1995
  }
1978
1996
  this.updateTeleport = function() {
1979
- console.log('Toggle player teleport', this.teleport);
1997
+ //console.log('Toggle player teleport', this.teleport);
1980
1998
  }
1981
1999
  this.updateGravity = function() {
1982
2000
  if (this.loaded) {
@@ -2058,6 +2076,7 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
2058
2076
  pickable: ['property', 'pickable'],
2059
2077
 
2060
2078
  skybox: ['property', 'skybox'],
2079
+ skybox_intensity: ['property', 'skybox_intensity'],
2061
2080
  skybox_equi: ['property', 'skybox_equi'],
2062
2081
  skybox_left_id: ['property', 'skybox_left_id'],
2063
2082
  skybox_right_id:['property', 'skybox_right_id'],
@@ -2153,29 +2172,72 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
2153
2172
  //changestr += this.currentroom.changes[id];
2154
2173
  var change = this.changes[id];
2155
2174
  var real = this.getObjectFromProxy(change);
2175
+ let propdefs = real._thingdef.properties,
2176
+ proxydefs = change._proxydefs;
2156
2177
  if (real) {
2157
- var xmltype = typemap[real.type] || 'Object';
2178
+ var xmltype = false;
2179
+ if (room.customElements) {
2180
+ for (let k in room.customElements) {
2181
+ if (room.customElements[k].classname == real.type) {
2182
+ xmltype = k;
2183
+ break;
2184
+ }
2185
+ }
2186
+ }
2187
+ if (!xmltype) {
2188
+ if (real.type in janus.customElements) {
2189
+ xmltype = real.type;
2190
+ }
2191
+ }
2192
+ if (!xmltype) {
2193
+ xmltype = typemap[real.type] || 'Object';
2194
+ }
2158
2195
  let xmlnode = xmldoc.createElement(xmltype);
2159
2196
 
2160
2197
  var attrs = Object.keys(change);
2161
2198
  for (var i = 0; i < attrs.length; i++) {
2162
2199
  var k = attrs[i];
2163
2200
 
2201
+ let propdef = propdefs[proxydefs[k][1]];
2202
+
2164
2203
  if (ignoreattributes.indexOf(k) != -1) continue;
2165
2204
 
2205
+ let defaultval = (propdef ? propdef.default : null);
2166
2206
  var val = change[k];
2167
- if (val instanceof THREE.Vector2 ||
2168
- val instanceof THREE.Quaternion ||
2169
- val instanceof THREE.Vector3) {
2170
- val = val.toArray().map(function(n) { return (+n).toFixed(4); }).join(' ');
2207
+ if (val instanceof THREE.Vector2) {
2208
+ if (defaultval instanceof THREE.Vector2) defaultval = defaultval.toArray();
2209
+ //if (!('default' in propdef) || ('default' in propdef && !(val.x == defaultval[0] && val.y == defaultval[1]))) {
2210
+ val = val.toArray().map(function(n) { return (+n).toFixed(4); }).join(' ');
2211
+ //} else {
2212
+ // val = null;
2213
+ //}
2214
+ } else if (val instanceof THREE.Quaternion) {
2215
+ //if (defaultval instanceof THREE.Quaternion) defaultval = defaultval.toArray();
2216
+ //if (!('default' in propdef) || ('default' in propdef && !(val.x == defaultval[0] && val.y == defaultval[1] && val.z == defaultval[2] && val.w == defaultval[3]))) {
2217
+ val = val.toArray().map(function(n) { return (+n).toFixed(4); }).join(' ');
2218
+ //} else {
2219
+ // val = null;
2220
+ //}
2221
+ } else if (val instanceof THREE.Vector3) {
2222
+ if (defaultval instanceof THREE.Vector3) defaultval = defaultval.toArray();
2223
+ //if (!('default' in propdef) || ('default' in propdef && !(val.x == defaultval[0] && val.y == defaultval[1] && val.z == defaultval[2]))) {
2224
+ val = val.toArray().map(function(n) { return (+n).toFixed(4); }).join(' ');
2225
+ //} else {
2226
+ // val = null;
2227
+ //}
2171
2228
  } else if (val instanceof THREE.Euler) {
2172
- val = [val.x.toFixed(4), val.y.toFixed(4), val.z.toFixed(4)].join(' ');
2229
+ if (defaultval instanceof THREE.Euler) defaultval = defaultval.toArray();
2230
+ //if (!('default' in propdef) || ('default' in propdef && !(val.x == defaultval[0] && val.y == defaultval[1] && val.z == defaultval[2]))) {
2231
+ val = [val.x.toFixed(4), val.y.toFixed(4), val.z.toFixed(4)].join(' ');
2232
+ //} else {
2233
+ // val = null;
2234
+ //}
2173
2235
  } else if (val instanceof THREE.Color) {
2174
- if (k == 'col' && real.colorIsDefault) {
2175
- val = null;
2176
- } else {
2236
+ //if (k == 'col' && real.colorIsDefault) {
2237
+ // val = null;
2238
+ //} else {
2177
2239
  val = val.toArray().map(function(n) { return +n.toFixed(4); }).join(' ');
2178
- }
2240
+ //}
2179
2241
  } else if (elation.utils.isString(val) && val.indexOf('blob:') == 0) {
2180
2242
  var xhr = new XMLHttpRequest();
2181
2243
 
@@ -2198,6 +2260,15 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
2198
2260
  }
2199
2261
  val = 'data:image/png;base64,' + btoa(binary);
2200
2262
  */
2263
+ } else if (elation.utils.isArray(val)) {
2264
+ //if ('default' in propdef && val.length == 0) {
2265
+ // FIXME - this assumes if a default array is provided, it's probably empty. This may not always be true.
2266
+ // val = null;
2267
+ //}
2268
+ } else {
2269
+ //if ('default' in propdef && val == defaultval) {
2270
+ // val = null;
2271
+ //}
2201
2272
  }
2202
2273
 
2203
2274
  if (val !== null && val !== undefined && typeof val != 'function') {
@@ -2390,7 +2461,7 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
2390
2461
  } else if (val instanceof THREE.Euler) {
2391
2462
  if (defaultval instanceof THREE.Euler) defaultval = defaultval.toArray();
2392
2463
  if (!('default' in propdef) || ('default' in propdef && !(val.x == defaultval[0] && val.y == defaultval[1] && val.z == defaultval[2]))) {
2393
- objectsrc += ' ' + k + '="' + val.toArray().slice(0, 3).map(n => Math.round((n * THREE.Math.RAD2DEG) * 10000) / 10000).join(' ') + '"';
2464
+ objectsrc += ' ' + k + '="' + val.toArray().slice(0, 3).map(n => Math.round((n * THREE.MathUtils.RAD2DEG) * 10000) / 10000).join(' ') + '"';
2394
2465
  }
2395
2466
  } else if (val instanceof THREE.Quaternion) {
2396
2467
  if (defaultval instanceof THREE.Quaternion) defaultval = defaultval.toArray();
@@ -2499,10 +2570,11 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
2499
2570
  _ray = new THREE.Raycaster();
2500
2571
  _ray.params.Line.threshold = 3;
2501
2572
  _ray.params.Points.threshold = 3;
2502
- return function(dir, pos, classname, maxdist) {
2573
+ return function(dir, pos, classname, maxdist, colliderroot=null) {
2503
2574
  _ray.set(pos, dir);
2504
2575
  _ray.far = maxdist || Infinity;
2505
- var intersections = _ray.intersectObject(this.colliders, true);
2576
+ if (!colliderroot) colliderroot = this.colliders;
2577
+ var intersections = _ray.intersectObject(colliderroot, true);
2506
2578
  var hits = [];
2507
2579
  if (classname) {
2508
2580
  for (var i = 0; i < intersections.length; i++) {
@@ -2585,17 +2657,19 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
2585
2657
  });
2586
2658
  if (!this.loaded && this.pendingScripts) {
2587
2659
  // We're still waiting for the room to finish loading, so wait for the room_load_complete event before checking if we need to load anything else
2588
- this.addEventListener('room_load_complete', (ev) => {
2660
+ let func = (ev) => {
2589
2661
  // Room and all of its assets have finished loading. If our required component still isn't available, check the master package list and autoload if possible
2590
2662
  if (!finished) {
2591
2663
  this.loadComponentList().then(components => {
2592
2664
  if (components[k]) {
2593
2665
  this.loadNewAsset('script', { src: components[k].url, override: { room: this.getProxyObject() } });
2594
2666
  this._target.loadScripts([{src: components[k].url}]);
2667
+ this.removeEventListener('room_load_complete', func);
2595
2668
  }
2596
2669
  });
2597
2670
  }
2598
- });
2671
+ }
2672
+ this.addEventListener('room_load_complete', func);
2599
2673
  } else {
2600
2674
  // Room is already loaded and scripts are processed - we still don't know about this component, so load it up
2601
2675
  this.loadComponentList().then(components => {
@@ -2857,6 +2931,9 @@ console.log('unknown material', mat);
2857
2931
  }
2858
2932
  return stats;
2859
2933
  }
2934
+ this.updatePointerLock = function() {
2935
+ this.engine.systems.controls.pointerLockEnabled = this.pointerlock;
2936
+ }
2860
2937
  }, elation.engine.things.generic);
2861
2938
  });
2862
2939
 
package/scripts/sound.js CHANGED
@@ -7,6 +7,7 @@ elation.require(['janusweb.janusbase'], function() {
7
7
  this.defineProperties({
8
8
  sound_id: { type: 'string', set: this.updateSound },
9
9
  singleshot: { type: 'boolean', default: false },
10
+ positional: { type: 'boolean', default: null },
10
11
  loop: { type: 'boolean', default: false },
11
12
  auto_play: { type: 'boolean', default: false },
12
13
  play_once: { type: 'boolean', default: false },
@@ -54,7 +55,7 @@ elation.require(['janusweb.janusbase'], function() {
54
55
  if (!audionodes) {
55
56
  audionodes = await this.room.getAudioNodes();
56
57
  }
57
- if (!this.hasposition) {
58
+ if (!this.hasposition && this.positional !== true) {
58
59
  this.audio = new THREE.Audio(audionodes.listener);
59
60
  } else {
60
61
  this.audio = new THREE.PositionalAudio(audionodes.listener);
@@ -209,8 +210,11 @@ elation.require(['janusweb.janusbase'], function() {
209
210
  }
210
211
  this.updatePlaying = function(ev) {
211
212
  this.playing = (this.audio ? this.audio.isPlaying : false);
212
- if (ev.type == 'ended' && this.singleshot) {
213
- this.die();
213
+ if (ev.type == 'ended') {
214
+ this.dispatchEvent({type: 'sound_ended'});
215
+ if (this.singleshot) {
216
+ this.die();
217
+ }
214
218
  }
215
219
  return this.playing;
216
220
  }
@@ -223,6 +227,7 @@ elation.require(['janusweb.janusbase'], function() {
223
227
  playing: [ 'property', 'playing', 'sound.isPlaying'],
224
228
  pitch: [ 'property', 'pitch'],
225
229
  auto_play: [ 'property', 'auto_play'],
230
+ positional: [ 'property', 'positional'],
226
231
  play: [ 'function', 'play'],
227
232
  pause: [ 'function', 'pause'],
228
233
  stop: [ 'function', 'stop'],
package/scripts/text.js CHANGED
@@ -14,7 +14,8 @@ elation.require(['engine.things.label'], function() {
14
14
  'zalign': { type: 'string', default: 'back', refreshGeometry: true },
15
15
  'emissive': { type: 'color', default: 0x000000 },
16
16
  'opacity': { type: 'float', default: 1.0 },
17
- 'depthTest': { type: 'bool', default: true },
17
+ 'depth_write': { type: 'bool', default: true },
18
+ 'depth_test': { type: 'bool', default: true },
18
19
  'thickness': { type: 'float', refreshGeometry: true },
19
20
  'segments': { type: 'int', default: 6, refreshGeometry: true },
20
21
  'bevel': { type: 'bool', default: false, refreshGeometry: true },
@@ -82,6 +83,9 @@ elation.require(['engine.things.label'], function() {
82
83
  this.mesh = mesh;
83
84
  }
84
85
  this.objects['3d'].add(mesh);
86
+ setTimeout(() => {
87
+ //this.setCollider('box', this.getBoundingBox(true));
88
+ }, 0);
85
89
  this.refresh();
86
90
  }
87
91
  this.createTextMaterial = function() {
@@ -91,7 +95,8 @@ elation.require(['engine.things.label'], function() {
91
95
  transparent: this.properties.opacity < 1,
92
96
  emissive: this.properties.emissive,
93
97
  flatShading: false,
94
- depthTest: this.properties.depthTest,
98
+ depthTest: this.depth_test,
99
+ depthWrite: this.depth_write,
95
100
  reflectivity: .5,
96
101
  wireframe: this.wireframe,
97
102
  };
@@ -219,6 +224,8 @@ elation.require(['engine.things.label'], function() {
219
224
 
220
225
  this._proxyobject._proxydefs = {
221
226
  text: [ 'property', 'text'],
227
+ thickness: [ 'property', 'thickness'],
228
+ segments: [ 'property', 'segments'],
222
229
  col: [ 'property', 'color'],
223
230
  emissive: [ 'property', 'emissive'],
224
231
  bevel: [ 'property', 'bevel'],
@@ -9,7 +9,7 @@ elation.require([], function() {
9
9
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
10
10
 
11
11
  ga('create', elation.config.get('janusweb.tracking.clientid'), 'auto');
12
- ga('set', 'page', "/");
12
+ ga('set', 'page', document.location.pathname || "/");
13
13
  //ga('send', 'pageview');
14
14
 
15
15
  elation.events.add(null, 'room_change', function(ev) {
@@ -167,8 +167,12 @@ elation.require(['utils.template', 'elements.elements', 'elements.ui.all', 'elem
167
167
  create() {
168
168
  var datapath = elation.config.get('janusweb.datapath', '/media/janusweb');
169
169
  var configurl = this.config || datapath + (datapath[datapath.length - 1] != '/' ? '/' : '') + 'assets/webui/default.json';
170
- this.installedapps = elation.elements.create('collection.localindexed', {index: 'name', storagekey: 'janusweb.ui.installedapps'});
171
- this.installedapps.load();
170
+ try {
171
+ this.installedapps = elation.elements.create('collection.localindexed', {index: 'name', storagekey: 'janusweb.ui.installedapps'});
172
+ this.installedapps.load();
173
+ } catch (e) {
174
+ this.installedapps = elation.elements.create('collection.indexed', {index: 'name', storagekey: 'janusweb.ui.installedapps'});
175
+ }
172
176
  this.container = elation.elements.create('div', {
173
177
  append: this,
174
178
  class: 'janus-ui-container'
@@ -45,7 +45,7 @@ elation.require(['engine.things.generic'], function() {
45
45
  elation.events.add(this, 'click', elation.bind(this, this.click));
46
46
  }
47
47
  this.createObject3D = function() {
48
- var plane = new THREE.PlaneBufferGeometry(1,1);
48
+ var plane = new THREE.PlaneGeometry(1,1);
49
49
 
50
50
  var mat = new THREE.MeshBasicMaterial({
51
51
  color: 0x000000,
@@ -113,7 +113,7 @@ elation.require(['engine.things.generic'], function() {
113
113
  if (!this.active) {
114
114
  var canvas = this.engine.client.view.rendersystem.renderer.domElement;
115
115
  canvas.style.pointerEvents = 'none';
116
- canvas.style.position = 'absolute';
116
+ //canvas.style.position = 'absolute';
117
117
  this.engine.systems.controls.releasePointerLock();
118
118
  this.active = true;
119
119
  this.selectionmaterial.color.copy(this.activecolor);
@@ -127,7 +127,7 @@ setTimeout(elation.bind(this, function() {
127
127
  if (this.active) {
128
128
  var canvas = this.engine.client.view.rendersystem.renderer.domElement;
129
129
  canvas.style.pointerEvents = 'all';
130
- canvas.style.position = 'static';
130
+ //canvas.style.position = 'static';
131
131
  this.engine.systems.controls.requestPointerLock();
132
132
  ev.stopPropagation();
133
133
  ev.preventDefault();