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
@@ -3,6 +3,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
3
3
 
4
4
  elation.component.add('engine.things.janusplayer', function() {
5
5
  //this.defaultavatar = '<FireBoxRoom>\n <Assets>\n <AssetObject id="screen" src="https://web.janusxr.org/media/assets/hoverscreen.obj" mtl="https://web.janusxr.org/media/assets/hoverscreen.mtl" />\n </Assets>\n <Room>\n <Ghost id="januswebuser" col="#ffffff" lighting="true" head_pos="0 1.4 0" body_id="" eye_pos="0 1.6 0" userid_pos="0 0.5 0" cull_face="back" screen_name="screen_Cube.004">\n <Object id="screen" js_id="head" />\n </Ghost>\n </Room>\n</FireBoxRoom>'
6
+ //this.defaultavatar = '<FireBoxRoom>\n<Assets>\n<AssetObject id="screen" src="https://vesta.janusxr.org/avatars/static/janusweb/janusweb.obj.gz" mtl="https://vesta.janusxr.org/user_avatar/12689/janusweb.mtl" /></Assets>\n<Room>\n<Ghost id="januswebuser" head_id="screen" head_pos="0 1.4 0" body_id="" eye_pos="0 1.6 0" userid_pos="0 0.5 0" cull_face="back" />\n</Room>\n</FireBoxRoom>';
6
7
  this.defaultavatar = `
7
8
  <FireBoxRoom>
8
9
  <assets>
@@ -18,7 +19,11 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
18
19
  this.postinit = function() {
19
20
  elation.engine.things.janusplayer.extendclass.postinit.call(this);
20
21
 
21
- this.settings = elation.collection.localindexed({storagekey: 'janusweb.player.settings', index: 'key'});
22
+ try {
23
+ this.settings = elation.collection.localindexed({storagekey: 'janusweb.player.settings', index: 'key'});
24
+ } catch (e) {
25
+ this.settings = elation.collection.indexed({storagekey: 'janusweb.player.settings', index: 'key'});
26
+ }
22
27
 
23
28
  this.defineProperties({
24
29
  janus: {type: 'object' },
@@ -31,6 +36,8 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
31
36
  party_mode: { type: 'boolean', set: this.updatePartyMode },
32
37
  avatarsrc: { type: 'string' },
33
38
  cameraview: { type: 'string', default: 'firstperson' },
39
+ camerazoom: { type: 'float', default: 0 },
40
+ cameraangle: { type: 'float', default: 0 },
34
41
  decouplehead: { type: 'boolean', default: false },
35
42
  });
36
43
 
@@ -46,9 +53,9 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
46
53
  elation.events.add(this.engine.client.view.container, 'touchend', elation.bind(this, this.handleTouchEnd));
47
54
 
48
55
  this.controlstate2 = this.engine.systems.controls.addContext('janusplayer', {
49
- 'toggle_view': ['keyboard_v,keyboard_shift_v', elation.bind(this, this.toggleCamera)],
50
- 'zoom_out': ['mouse_wheel_down', ev => this.zoomView(-1)],
51
- 'zoom_in': ['mouse_wheel_up', ev => this.zoomView(1)],
56
+ 'toggle_view': ['keyboard_nomod_v,keyboard_shift_v', elation.bind(this, this.toggleCamera)],
57
+ 'zoom_out': ['mouse_wheel_down', ev => this.zoomView(-1, ev)],
58
+ 'zoom_in': ['mouse_wheel_up', ev => this.zoomView(1, ev)],
52
59
  //'browse_back': ['gamepad_any_button_4', elation.bind(this, this.browseBack)],
53
60
  //'browse_forward': ['gamepad_any_button_5', elation.bind(this, this.browseForward)],
54
61
  });
@@ -97,6 +104,17 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
97
104
  this.cursor_style = 'default';
98
105
  this.cursor_object = '';
99
106
  this.lookat_object = '';
107
+ window.addEventListener('blur', ev => {
108
+ if (document.pointerLockElement && document.activeElement instanceof HTMLIFrameElement) {
109
+ document.pointerLockElement.focus();
110
+ //this.disable();
111
+ this.engine.systems.controls.deactivateContext('janusplayer');
112
+ this.engine.systems.controls.activateContext('janusplayer');
113
+ let click = new MouseEvent('click', { });
114
+ document.body.dispatchEvent(click);
115
+ //setTimeout(() => this.enable(), 100);
116
+ }
117
+ });
100
118
 
101
119
  if (this.usevoip) {
102
120
  this.voip = new JanusVOIPRecorder({audioScale: 1024});
@@ -127,6 +145,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
127
145
  this.party_mode = this.getSetting('partymode.enabled', false);
128
146
  this.currentavatar = '';
129
147
  this.getAvatarData().then(d => this.currentavatar = d);
148
+ this.morphtargetchanges = {};
130
149
  }
131
150
  this.createChildren = function() {
132
151
  elation.engine.things.janusplayer.extendclass.createChildren.call(this);
@@ -395,7 +414,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
395
414
  }
396
415
  if (this.controlstate.jump && !this.jumping) {
397
416
  let jumptime = 1;
398
- if (this.ghost && this.ghost.body.animations && this.ghost.body.animations.jump) {
417
+ if (this.ghost && this.ghost.body && this.ghost.body.animations && this.ghost.body.animations.jump) {
399
418
  let jumpanim = this.ghost.body.animations.jump;
400
419
  let jumpclip = jumpanim.getClip();
401
420
 
@@ -541,81 +560,83 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
541
560
  this.stop = function() {
542
561
  }
543
562
  this.getProxyObject = function() {
544
- var proxy = new elation.proxy(this, {
545
- parent: ['accessor', 'parent.getProxyObject'],
546
- room: ['property', 'room'],
547
- pos: ['property', 'position'],
548
- vel: ['property', 'velocity'],
549
- accel: ['property', 'acceleration'],
550
- eye_pos: ['property', 'vectors.eye_pos'],
551
- head_pos: ['property', 'vectors.head_pos'],
552
- cursor_pos: ['property', 'vectors.cursor_pos'],
553
- cursor_xdir: ['property', 'vectors.cursor_xdir'],
554
- cursor_ydir: ['property', 'vectors.cursor_ydir'],
555
- cursor_zdir: ['property', 'vectors.cursor_zdir'],
556
- view_dir: ['property', 'vectors.view_zdir'],
557
- dir: ['property', 'vectors.zdir'],
558
- up_dir: ['property', 'vectors.ydir'],
559
- userid: ['property', 'janus.userId'],
560
- enabled: ['property', 'enabled'],
561
- flying: ['property', 'flying'],
562
- walking: ['property', 'walking'],
563
- running: ['property', 'running'],
564
- //url: ['property', 'currenturl'],
565
- //hmd_enabled: ['property', 'hmd_enabled'],
566
- cursor_active: ['property', 'cursor_active'],
567
- cursor_visible: ['property', 'cursor_visible'],
568
- cursor_opacity: ['property', 'cursor_opacity'],
569
- cursor_style: ['property', 'cursor_style'],
570
- cursor_object: ['property', 'cursor_object'],
571
- lookat_object: ['property', 'lookat_object'],
572
- lookat_pos: ['property', 'vectors.lookat_pos'],
573
- //lookat_xdir: ['property', 'properties.lookat_xdir'],
574
- //lookat_ydir: ['property', 'properties.lookat_ydir'],
575
- //lookat_zdir: ['property', 'properties.lookat_zdir'],
576
- hand0_active: ['property', 'hands.left.isactive'],
577
- hand0_pos: ['property', 'hands.left.handpos'],
578
- hand0_xdir: ['property', 'hands.left.xdir'],
579
- hand0_ydir: ['property', 'hands.left.ydir'],
580
- hand0_zdir: ['property', 'hands.left.zdir'],
581
- hand0_p0: ['property', 'hands.left.p0'],
582
- hand0_p1: ['property', 'hands.left.p1'],
583
- hand0_p2: ['property', 'hands.left.p2'],
584
- hand0_p3: ['property', 'hands.left.p3'],
585
- hand0_p4: ['property', 'hands.left.p4'],
563
+ if (!this._proxyobject) {
564
+ this._proxyobject = new elation.proxy(this, {
565
+ parent: ['accessor', 'parent.getProxyObject'],
566
+ room: ['property', 'room'],
567
+ pos: ['property', 'position'],
568
+ vel: ['property', 'velocity'],
569
+ accel: ['property', 'acceleration'],
570
+ eye_pos: ['property', 'vectors.eye_pos'],
571
+ head_pos: ['property', 'vectors.head_pos'],
572
+ cursor_pos: ['property', 'vectors.cursor_pos'],
573
+ cursor_xdir: ['property', 'vectors.cursor_xdir'],
574
+ cursor_ydir: ['property', 'vectors.cursor_ydir'],
575
+ cursor_zdir: ['property', 'vectors.cursor_zdir'],
576
+ view_dir: ['property', 'vectors.view_zdir'],
577
+ dir: ['property', 'vectors.zdir'],
578
+ up_dir: ['property', 'vectors.ydir'],
579
+ userid: ['property', 'janus.userId'],
580
+ enabled: ['property', 'enabled'],
581
+ flying: ['property', 'flying'],
582
+ walking: ['property', 'walking'],
583
+ running: ['property', 'running'],
584
+ //url: ['property', 'currenturl'],
585
+ //hmd_enabled: ['property', 'hmd_enabled'],
586
+ cursor_active: ['property', 'cursor_active'],
587
+ cursor_visible: ['property', 'cursor_visible'],
588
+ cursor_opacity: ['property', 'cursor_opacity'],
589
+ cursor_style: ['property', 'cursor_style'],
590
+ cursor_object: ['property', 'cursor_object'],
591
+ lookat_object: ['property', 'lookat_object'],
592
+ lookat_pos: ['property', 'vectors.lookat_pos'],
593
+ //lookat_xdir: ['property', 'properties.lookat_xdir'],
594
+ //lookat_ydir: ['property', 'properties.lookat_ydir'],
595
+ //lookat_zdir: ['property', 'properties.lookat_zdir'],
596
+ hand0_active: ['property', 'hands.left.isactive'],
597
+ hand0_pos: ['property', 'hands.left.handpos'],
598
+ hand0_xdir: ['property', 'hands.left.xdir'],
599
+ hand0_ydir: ['property', 'hands.left.ydir'],
600
+ hand0_zdir: ['property', 'hands.left.zdir'],
601
+ hand0_p0: ['property', 'hands.left.p0'],
602
+ hand0_p1: ['property', 'hands.left.p1'],
603
+ hand0_p2: ['property', 'hands.left.p2'],
604
+ hand0_p3: ['property', 'hands.left.p3'],
605
+ hand0_p4: ['property', 'hands.left.p4'],
586
606
 
587
- hand1_active: ['property', 'hands.right.isactive'],
588
- hand1_pos: ['property', 'hands.right.handpos'],
589
- hand1_xdir: ['property', 'hands.right.xdir'],
590
- hand1_ydir: ['property', 'hands.right.ydir'],
591
- hand1_zdir: ['property', 'hands.right.zdir'],
592
- hand1_p0: ['property', 'hands.right.p0'],
593
- hand1_p1: ['property', 'hands.right.p1'],
594
- hand1_p2: ['property', 'hands.right.p2'],
595
- hand1_p3: ['property', 'hands.right.p3'],
596
- hand1_p4: ['property', 'hands.right.p4'],
597
- url: ['property', 'parent.currentroom.url'],
607
+ hand1_active: ['property', 'hands.right.isactive'],
608
+ hand1_pos: ['property', 'hands.right.handpos'],
609
+ hand1_xdir: ['property', 'hands.right.xdir'],
610
+ hand1_ydir: ['property', 'hands.right.ydir'],
611
+ hand1_zdir: ['property', 'hands.right.zdir'],
612
+ hand1_p0: ['property', 'hands.right.p0'],
613
+ hand1_p1: ['property', 'hands.right.p1'],
614
+ hand1_p2: ['property', 'hands.right.p2'],
615
+ hand1_p3: ['property', 'hands.right.p3'],
616
+ hand1_p4: ['property', 'hands.right.p4'],
617
+ url: ['property', 'parent.currentroom.url'],
598
618
 
599
- collision_radius: ['property', 'collision_radius'],
619
+ collision_radius: ['property', 'collision_radius'],
600
620
 
601
- currentavatar: ['property', 'currentavatar'],
602
- defaultanimation: ['property', 'defaultanimation'],
621
+ currentavatar: ['property', 'currentavatar'],
622
+ defaultanimation: ['property', 'defaultanimation'],
603
623
 
604
- localToWorld: ['function', 'localToWorld'],
605
- worldToLocal: ['function', 'worldToLocal'],
606
- appendChild: ['function', 'appendChild'],
607
- removeChild: ['function', 'removeChild'],
608
- addForce: ['function', 'addForce'],
609
- removeForce: ['function', 'removeForce'],
610
- raycast: ['function', 'raycast'],
611
- getViewFrustum:['function', 'getViewFrustum'],
612
- getUsername: ['function', 'getUsername'],
613
- setUsername: ['function', 'setUsername'],
614
- getSetting: ['function', 'getSetting'],
615
- setSetting: ['function', 'setSetting'],
616
- setAvatar: ['function', 'setAvatar'],
617
- });
618
- return proxy;
624
+ localToWorld: ['function', 'localToWorld'],
625
+ worldToLocal: ['function', 'worldToLocal'],
626
+ appendChild: ['function', 'appendChild'],
627
+ removeChild: ['function', 'removeChild'],
628
+ addForce: ['function', 'addForce'],
629
+ removeForce: ['function', 'removeForce'],
630
+ raycast: ['function', 'raycast'],
631
+ getViewFrustum:['function', 'getViewFrustum'],
632
+ getUsername: ['function', 'getUsername'],
633
+ setUsername: ['function', 'setUsername'],
634
+ getSetting: ['function', 'getSetting'],
635
+ setSetting: ['function', 'setSetting'],
636
+ setAvatar: ['function', 'setAvatar'],
637
+ });
638
+ }
639
+ return this._proxyobject;
619
640
  }
620
641
  this.getAvatarData = function() {
621
642
  return new Promise((resolve, reject) => {
@@ -725,6 +746,29 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
725
746
  }
726
747
  return handData;
727
748
  }
749
+ this.hasMorphTargetData = function() {
750
+ return Object.keys(this.morphtargetchanges).length > 0;
751
+ }
752
+ this.setMorphTargetInfluence = function(morphtarget, value) {
753
+ if (this.ghost && this.ghost.body) {
754
+ this.ghost.body.setMorphTargetInfluence(morphtarget, value);
755
+ //if (this.morphtargetchanges.indexOf(morphtarget) == -1) {
756
+ this.morphtargetchanges[morphtarget] = value;
757
+ //}
758
+ }
759
+ }
760
+ this.getMorphTargetData = function() {
761
+ if (this.hasMorphTargetData()) {
762
+ let data = {};
763
+ let body = this.ghost.body;
764
+ for (let morphtarget in this.morphtargetchanges) {
765
+ data[morphtarget] = this.morphtargetchanges[morphtarget];
766
+ delete this.morphtargetchanges[morphtarget];
767
+ }
768
+ return data;
769
+ }
770
+ return false;
771
+ }
728
772
  this.getRandomUsername = function() {
729
773
  var adjectives = [
730
774
  "Adorable", "Beautiful", "Clean", "Drab", "Elegant", "Fancy", "Glamorous", "Handsome", "Long", "Magnificent",
@@ -816,11 +860,18 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
816
860
  if (proxyobj) {
817
861
  //var realobj = this.room.getObjectFromProxy(proxyobj);
818
862
  if (proxyobj.parent) {
819
- proxyobj.parent.removeChild(proxyobj);
863
+ if (typeof proxyobj.parent.removeChild == 'function') {
864
+ proxyobj.parent.removeChild(proxyobj);
865
+ } else if (typeof proxyobj.parent.remove == 'function') {
866
+ proxyobj.parent.remove(proxyobj._target);
867
+ }
820
868
  }
821
869
  var realobj = proxyobj._target;
822
870
  if (realobj) {
823
871
  this.add(realobj);
872
+ if (typeof realobj.start == 'function') {
873
+ realobj.start();
874
+ }
824
875
  }
825
876
  }
826
877
  }
@@ -833,6 +884,9 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
833
884
  //var realobj = this.room.getObjectFromProxy(proxyobj);
834
885
  var realobj = proxyobj._target;
835
886
  if (realobj) {
887
+ if (typeof realobj.stop == 'function') {
888
+ realobj.stop();
889
+ }
836
890
  this.remove(realobj);
837
891
  }
838
892
  }
@@ -844,8 +898,9 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
844
898
  this.setCollider('sphere', {
845
899
  radius: this.collision_radius,
846
900
  });
847
- */
848
901
  this.pickable = false;
902
+ this.collidable = false;
903
+ */
849
904
  this.setCollider('capsule', {
850
905
  radius: this.collision_radius,
851
906
  length: 1,
@@ -921,6 +976,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
921
976
  }
922
977
  }
923
978
  this.handleTouchStart = function(ev) {
979
+ //if (!this.enabled) return;
924
980
  let halfscreenwidth = window.innerWidth / 2;
925
981
  this.enabled = true;
926
982
  for (let i = 0; i < ev.changedTouches.length; i++) {
@@ -999,16 +1055,23 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
999
1055
  return function(newscale, scaletime, scalecurve) {
1000
1056
  if (newscale != this.scale) {
1001
1057
  startscale.copy(this.properties.scale);
1002
- let start = performance.now();
1003
- let timer = setInterval(() => {
1004
- let n = (performance.now() - start) / scaletime;
1058
+ if (scaletime) {
1059
+ let start = performance.now();
1060
+ let timer = setInterval(() => {
1061
+ let n = (performance.now() - start) / scaletime;
1005
1062
 
1006
- this.scale = tmpvec.set(newscale, newscale, newscale).sub(startscale).multiplyScalar(n).add(startscale);
1063
+ this.scale = tmpvec.set(newscale, newscale, newscale).sub(startscale).multiplyScalar(n).add(startscale);
1064
+ this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1065
+ if (n >= 1) {
1066
+ clearInterval(timer);
1067
+ this.scale.set(newscale, newscale, newscale);
1068
+ this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1069
+ }
1070
+ }, 16);
1071
+ } else {
1072
+ this.scale.set(newscale, newscale, newscale);
1007
1073
  this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1008
- if (n >= 1) {
1009
- clearInterval(timer);
1010
- }
1011
- }, 16);
1074
+ }
1012
1075
  }
1013
1076
  };
1014
1077
  })();
@@ -1075,8 +1138,10 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
1075
1138
  elapsed = now - this.lookAtLERPstart,
1076
1139
  n = Math.min(1, Math.max(0, elapsed / this.lookAtLERPtime));
1077
1140
 
1078
- THREE.Quaternion.slerp(this.lookAtLERPq1body, this.lookAtLERPq2body, this.orientation, n);
1079
- THREE.Quaternion.slerp(this.lookAtLERPq1head, this.lookAtLERPq2head, this.head.orientation, n);
1141
+ //THREE.Quaternion.slerp(this.lookAtLERPq1body, this.lookAtLERPq2body, this.orientation, n);
1142
+ //THREE.Quaternion.slerp(this.lookAtLERPq1head, this.lookAtLERPq2head, this.head.orientation, n);
1143
+ this.orientation.slerpQuaternions(this.lookAtLERPq1body, this.lookAtLERPq2body, n);
1144
+ this.head.orientation.slerpQuaternions(this.lookAtLERPq1head, this.lookAtLERPq2head, n);
1080
1145
  if (n == 1) {
1081
1146
  this.lookAtLERPtime = 0;
1082
1147
  }
@@ -1099,16 +1164,35 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
1099
1164
  if (ev.value == 1) {
1100
1165
  if (this.cameraview == 'firstperson') {
1101
1166
  this.cameraview = 'thirdperson';
1102
- this.camera.position.z = 2;
1167
+ this.cameraangle = 0;
1168
+ this.camerazoom = 2;
1103
1169
  } else {
1104
1170
  this.cameraview = 'firstperson';
1105
- this.camera.position.z = 0;
1171
+ this.cameraangle = 0;
1172
+ this.camerazoom = 0;
1106
1173
  }
1174
+ this.updateCamera();
1107
1175
  }
1108
1176
  }
1109
- this.zoomView = function(amount) {
1177
+ this.zoomView = function(amount, ev) {
1110
1178
  if (this.cameraview == 'thirdperson') {
1111
- this.camera.position.z -= amount / 10;
1179
+ //this.camera.position.z -= amount / 10;
1180
+ //this.camera.position.z = Math.max(0.001, this.camera.position.z * (amount > 0 ? .95 : 1.05));
1181
+ let state = this.engine.systems.controls.state;
1182
+ if (state.keyboard_alt) {
1183
+ this.cameraangle += amount * Math.PI / 64;
1184
+ } else {
1185
+ this.camerazoom = Math.max(0.001, this.camerazoom * (amount > 0 ? .95 : 1.05));
1186
+ }
1187
+ this.updateCamera();
1188
+ }
1189
+ }
1190
+ this.updateCamera = function() {
1191
+ if (this.camera) {
1192
+ this.camera.fov = this.fov;
1193
+ this.camera.position.z = Math.cos(this.cameraangle) * this.camerazoom;
1194
+ this.camera.position.x = Math.sin(this.cameraangle) * this.camerazoom;
1195
+ this.camera.orientation.setFromEuler(new THREE.Euler(0, this.cameraangle, 0));
1112
1196
  }
1113
1197
  }
1114
1198
  this.setAnimationSequence = function(sequence) {
@@ -1,6 +1,6 @@
1
1
  elation.require([
2
2
  'janusweb.config', 'engine.things.generic','janusweb.remoteplayer', 'janusweb.room', 'janusweb.tracking', 'janusweb.multiplayermanager', 'janusweb.external.JanusFireboxParser', 'utils.proxy',
3
- 'janusweb.elements.raycaster', 'janusweb.elements.teleporter', 'janusweb.elements.linesegments'], function() {
3
+ 'janusweb.elements.raycaster', 'janusweb.elements.teleporter', 'janusweb.elements.linesegments', 'janusweb.elements.outliner'], function() {
4
4
 
5
5
  elation.requireCSS('janusweb.janusweb');
6
6
  elation.component.add('engine.things.janusweb', function() {
@@ -74,7 +74,11 @@ elation.require([
74
74
  });
75
75
  elation.events.add(window, 'popstate', elation.bind(this, this.handlePopstate));
76
76
 
77
- this.bookmarks = elation.collection.localindexed({index: 'url', storagekey: 'janusweb.bookmarks'});
77
+ try {
78
+ this.bookmarks = elation.collection.localindexed({index: 'url', storagekey: 'janusweb.bookmarks'});
79
+ } catch (e) {
80
+ this.bookmarks = elation.collection.indexed({index: 'url', storagekey: 'janusweb.bookmarks'});
81
+ }
78
82
 
79
83
  if (this.corsproxy != '') {
80
84
  elation.engine.assets.setCORSProxy(this.corsproxy);
@@ -86,7 +90,7 @@ elation.require([
86
90
  this.engine.systems.controls.addContext('janus', {
87
91
  //'load_url': [ 'keyboard_tab', elation.bind(this, this.showLoadURL) ],
88
92
  'toggle_menu': [ 'keyboard_esc', elation.bind(this, this.toggleMenu) ],
89
- 'room_debug': [ 'keyboard_f6', elation.bind(this, this.showRoomDebug) ],
93
+ //'room_debug': [ 'keyboard_f6', elation.bind(this, this.showRoomDebug) ],
90
94
  'chat': [ 'keyboard_t', elation.bind(this, this.showChat) ],
91
95
  'bookmark': [ 'keyboard_ctrl_b', elation.bind(this, this.addBookmark) ],
92
96
  'mute': [ 'keyboard_ctrl_m', elation.bind(this, this.mute) ]
@@ -108,7 +112,7 @@ elation.require([
108
112
 
109
113
  this.assetpack.executeWhenLoaded(() => {
110
114
  // TODO - this should be config-driven
111
- this.registerAdditionalElements(['raycaster', 'linesegments']);
115
+ this.registerAdditionalElements(['raycaster', 'linesegments', 'outliner']);
112
116
 
113
117
  if (this.networking) {
114
118
  this.network = elation.janusweb.multiplayermanager({
@@ -620,7 +624,7 @@ elation.require([
620
624
  this.registerElement = function(tagname, classobj, extendclass) {
621
625
  if (!extendclass || !elation.engine.things[extendclass]) extendclass = 'janusbase';
622
626
  tagname = tagname.toLowerCase();
623
- console.log('Register new SYSTEM tag type:', tagname, classobj, extendclass);
627
+ //console.log('Register new SYSTEM tag type:', tagname, classobj, extendclass);
624
628
  elation.component.add('engine.things.' + tagname, classobj, elation.engine.things[extendclass]);
625
629
  /*
626
630
  this.typemap[tagname] = tagname;