janusweb 1.5.41 → 1.5.42

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 (237) hide show
  1. package/media/assets/webui/apps/buttons/buttons.js +0 -40
  2. package/media/assets/webui/apps/comms/chat.html +1 -0
  3. package/media/assets/webui/apps/comms/chat_message.html +1 -1
  4. package/media/assets/webui/apps/comms/comms.js +13 -6
  5. package/media/assets/webui/apps/comms/external/naf-shim.js +1 -1
  6. package/media/assets/webui/apps/comms/voip.css +20 -0
  7. package/media/assets/webui/apps/comms/voip.js +175 -6
  8. package/media/assets/webui/apps/editor/editor.js +78 -8
  9. package/media/assets/webui/apps/inventory/inventory.css +2 -1
  10. package/media/assets/webui/apps/locomotion/teleporter.js +18 -8
  11. package/media/assets/webui/apps/xrmenu/xrmenu.js +10 -5
  12. package/media/lib/basis/basis_transcoder.js +8 -8
  13. package/media/lib/basis/basis_transcoder.wasm +0 -0
  14. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-fragment.glsl +284 -0
  15. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-vertex.glsl +60 -0
  16. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-fragment.glsl +334 -0
  17. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-vertex.glsl +46 -0
  18. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-fragment.glsl +248 -0
  19. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-vertex.glsl +60 -0
  20. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-MainTex.png +0 -0
  21. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-fragment.glsl +34 -0
  22. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-vertex.glsl +120 -0
  23. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-MainTex.png +0 -0
  24. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-fragment.glsl +89 -0
  25. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-vertex.glsl +60 -0
  26. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-fragment.glsl +69 -0
  27. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-vertex.glsl +60 -0
  28. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-MainTex.png +0 -0
  29. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-fragment.glsl +289 -0
  30. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-vertex.glsl +60 -0
  31. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-MainTex.png +0 -0
  32. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-fragment.glsl +292 -0
  33. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-vertex.glsl +60 -0
  34. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-AlphaMask.png +0 -0
  35. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-MainTex.png +0 -0
  36. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-fragment.glsl +65 -0
  37. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-vertex.glsl +60 -0
  38. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-MainTex.png +0 -0
  39. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-fragment.glsl +481 -0
  40. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-vertex.glsl +57 -0
  41. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +290 -0
  42. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +70 -0
  43. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-MainTex.png +0 -0
  44. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-fragment.glsl +113 -0
  45. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-vertex.glsl +60 -0
  46. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-MainTex.png +0 -0
  47. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-fragment.glsl +35 -0
  48. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-vertex.glsl +120 -0
  49. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-fragment.glsl +286 -0
  50. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-vertex.glsl +54 -0
  51. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-fragment.glsl +81 -0
  52. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-vertex.glsl +54 -0
  53. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-BumpMap.png +0 -0
  54. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-MainTex.png +0 -0
  55. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-fragment.glsl +376 -0
  56. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-vertex.glsl +60 -0
  57. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-BumpMap.png +0 -0
  58. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-MainTex.png +0 -0
  59. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-fragment.glsl +378 -0
  60. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-vertex.glsl +60 -0
  61. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-fragment.glsl +50 -0
  62. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-vertex.glsl +79 -0
  63. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-MainTex.png +0 -0
  64. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-fragment.glsl +32 -0
  65. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-vertex.glsl +152 -0
  66. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-fragment.glsl +288 -0
  67. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-vertex.glsl +47 -0
  68. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-fragment.glsl +288 -0
  69. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-vertex.glsl +50 -0
  70. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-MainTex.png +0 -0
  71. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-fragment.glsl +61 -0
  72. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-vertex.glsl +60 -0
  73. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-fragment.glsl +285 -0
  74. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-vertex.glsl +60 -0
  75. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-fragment.glsl +286 -0
  76. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-vertex.glsl +60 -0
  77. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-fragment.glsl +285 -0
  78. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-vertex.glsl +60 -0
  79. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-MainTex.png +0 -0
  80. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-fragment.glsl +40 -0
  81. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-vertex.glsl +60 -0
  82. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-MainTex.png +0 -0
  83. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-fragment.glsl +33 -0
  84. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-vertex.glsl +60 -0
  85. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-BumpMap.png +0 -0
  86. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-MainTex.png +0 -0
  87. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-fragment.glsl +386 -0
  88. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-vertex.glsl +60 -0
  89. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-BumpMap.png +0 -0
  90. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-MainTex.png +0 -0
  91. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-fragment.glsl +385 -0
  92. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-vertex.glsl +60 -0
  93. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-BumpMap.png +0 -0
  94. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-fragment.glsl +376 -0
  95. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-vertex.glsl +60 -0
  96. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-BumpMap.png +0 -0
  97. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-MainTex.png +0 -0
  98. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-fragment.glsl +376 -0
  99. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-vertex.glsl +60 -0
  100. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-BumpMap.png +0 -0
  101. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-MainTex.png +0 -0
  102. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-fragment.glsl +377 -0
  103. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-vertex.glsl +60 -0
  104. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-BumpMap.png +0 -0
  105. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-MainTex.png +0 -0
  106. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-fragment.glsl +319 -0
  107. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-vertex.glsl +60 -0
  108. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-MainTex.png +0 -0
  109. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-fragment.glsl +47 -0
  110. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-vertex.glsl +60 -0
  111. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-MainTex.png +0 -0
  112. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +330 -0
  113. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +64 -0
  114. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-fragment.glsl +285 -0
  115. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-vertex.glsl +60 -0
  116. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-MainTex.png +0 -0
  117. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-fragment.glsl +87 -0
  118. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-vertex.glsl +60 -0
  119. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-fragment.glsl +285 -0
  120. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-vertex.glsl +60 -0
  121. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-fragment.glsl +267 -0
  122. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-vertex.glsl +60 -0
  123. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-BumpMap.png +0 -0
  124. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-MainTex.png +0 -0
  125. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-fragment.glsl +377 -0
  126. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-vertex.glsl +60 -0
  127. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-BumpMap.png +0 -0
  128. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-MainTex.png +0 -0
  129. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-fragment.glsl +376 -0
  130. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-vertex.glsl +60 -0
  131. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-BumpMap.png +0 -0
  132. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-MainTex.png +0 -0
  133. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-fragment.glsl +377 -0
  134. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-vertex.glsl +60 -0
  135. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-fragment.glsl +370 -0
  136. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-vertex.glsl +48 -0
  137. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-fragment.glsl +374 -0
  138. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-vertex.glsl +48 -0
  139. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-fragment.glsl +367 -0
  140. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-vertex.glsl +60 -0
  141. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-MainTex.png +0 -0
  142. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-fragment.glsl +64 -0
  143. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-vertex.glsl +60 -0
  144. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-fragment.glsl +70 -0
  145. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-vertex.glsl +60 -0
  146. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-fragment.glsl +367 -0
  147. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-vertex.glsl +60 -0
  148. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-MainTex.png +0 -0
  149. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-fragment.glsl +30 -0
  150. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-vertex.glsl +125 -0
  151. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-MainTex.png +0 -0
  152. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-fragment.glsl +31 -0
  153. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-vertex.glsl +143 -0
  154. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-MainTex.png +0 -0
  155. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-fragment.glsl +34 -0
  156. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-vertex.glsl +60 -0
  157. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-fragment.glsl +285 -0
  158. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-vertex.glsl +60 -0
  159. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-MainTex.png +0 -0
  160. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-fragment.glsl +290 -0
  161. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-vertex.glsl +60 -0
  162. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-MainTex.png +0 -0
  163. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-fragment.glsl +291 -0
  164. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-vertex.glsl +60 -0
  165. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-MainTex.png +0 -0
  166. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-fragment.glsl +31 -0
  167. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-vertex.glsl +128 -0
  168. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-MainTex.png +0 -0
  169. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-fragment.glsl +63 -0
  170. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-vertex.glsl +60 -0
  171. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-MainTex.png +0 -0
  172. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-fragment.glsl +113 -0
  173. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-vertex.glsl +62 -0
  174. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-MainTex.png +0 -0
  175. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-fragment.glsl +292 -0
  176. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-vertex.glsl +60 -0
  177. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-MainTex.png +0 -0
  178. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-fragment.glsl +287 -0
  179. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-vertex.glsl +58 -0
  180. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-MainTex.png +0 -0
  181. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-fragment.glsl +113 -0
  182. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-vertex.glsl +60 -0
  183. 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
  184. 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
  185. 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
  186. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-BumpMap.png +0 -0
  187. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-MainTex.png +0 -0
  188. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-fragment.glsl +378 -0
  189. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-vertex.glsl +60 -0
  190. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-BumpMap.png +0 -0
  191. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-MainTex.png +0 -0
  192. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-fragment.glsl +380 -0
  193. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-vertex.glsl +58 -0
  194. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +85 -0
  195. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  196. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-fragment.glsl +81 -0
  197. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-vertex.glsl +60 -0
  198. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-MainTex.png +0 -0
  199. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-fragment.glsl +80 -0
  200. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-vertex.glsl +60 -0
  201. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-MainTex.png +0 -0
  202. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-fragment.glsl +82 -0
  203. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-vertex.glsl +55 -0
  204. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-BumpMap.png +0 -0
  205. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-MainTex.png +0 -0
  206. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-fragment.glsl +376 -0
  207. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-vertex.glsl +60 -0
  208. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-BumpMap.png +0 -0
  209. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-MainTex.png +0 -0
  210. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-fragment.glsl +313 -0
  211. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-vertex.glsl +58 -0
  212. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-MainTex.png +0 -0
  213. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-fragment.glsl +377 -0
  214. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-vertex.glsl +60 -0
  215. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-MainTex.png +0 -0
  216. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-fragment.glsl +107 -0
  217. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-vertex.glsl +58 -0
  218. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +75 -0
  219. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  220. package/media/manifest.json +1 -1
  221. package/package.json +1 -1
  222. package/scripts/client.js +19 -2
  223. package/scripts/elements/outliner.js +176 -0
  224. package/scripts/external/JanusFireboxParser.js +1 -1
  225. package/scripts/janusbase.js +3 -2
  226. package/scripts/janusghost.js +9 -0
  227. package/scripts/janusparticle.js +5 -2
  228. package/scripts/janusplayer.js +117 -80
  229. package/scripts/janusweb.js +8 -4
  230. package/scripts/janusxrplayer.js +49 -7
  231. package/scripts/multiplayermanager.js +4 -0
  232. package/scripts/object.js +21 -9
  233. package/scripts/room.js +23 -10
  234. package/scripts/sound.js +8 -3
  235. package/scripts/text.js +2 -0
  236. package/scripts/tracking.js +1 -1
  237. package/scripts/ui/main.js +6 -2
@@ -0,0 +1,60 @@
1
+ #version 300 es
2
+ // Copyright 2020 The Tilt Brush Authors
3
+ // Updated to OpenGL ES 3.0 by the Icosa Gallery Authors
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+
17
+ // Copyright 2020 The Tilt Brush Authors
18
+ //
19
+ // Licensed under the Apache License, Version 2.0 (the "License");
20
+ // you may not use this file except in compliance with the License.
21
+ // You may obtain a copy of the License at
22
+ //
23
+ // http://www.apache.org/licenses/LICENSE-2.0
24
+ //
25
+ // Unless required by applicable law or agreed to in writing, software
26
+ // distributed under the License is distributed on an "AS IS" BASIS,
27
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
+ // See the License for the specific language governing permissions and
29
+ // limitations under the License.
30
+
31
+ // DefaultVS.glsl
32
+ in vec4 a_position;
33
+ in vec3 a_normal;
34
+ in vec4 a_color;
35
+ in vec2 a_texcoord0;
36
+
37
+ out vec4 v_color;
38
+ out vec3 v_normal; // Camera-space normal.
39
+ out vec3 v_position; // Camera-space position.
40
+ out vec2 v_texcoord0;
41
+ out vec3 v_light_dir_0; // Camera-space light direction, main light.
42
+ out vec3 v_light_dir_1; // Camera-space light direction, other light.
43
+ out float f_fog_coord;
44
+
45
+ uniform mat4 modelViewMatrix;
46
+ uniform mat4 projectionMatrix;
47
+ uniform mat3 normalMatrix;
48
+ uniform mat4 u_SceneLight_0_matrix;
49
+ uniform mat4 u_SceneLight_1_matrix;
50
+
51
+ void main() {
52
+ gl_Position = projectionMatrix * modelViewMatrix * a_position;
53
+ f_fog_coord = gl_Position.z;
54
+ v_normal = normalMatrix * a_normal;
55
+ v_position = (modelViewMatrix * a_position).xyz;
56
+ v_light_dir_0 = mat3(u_SceneLight_0_matrix) * vec3(0, 0, 1);
57
+ v_light_dir_1 = mat3(u_SceneLight_1_matrix) * vec3(0, 0, 1);
58
+ v_color = a_color;
59
+ v_texcoord0 = a_texcoord0;
60
+ }
@@ -5,7 +5,7 @@
5
5
  "theme_color": "#2f363b",
6
6
  "lang": "en-US",
7
7
  "orientation": "any",
8
- "start_url": "https://web.janusxr.org/",
8
+ "start_url": "index.html",
9
9
  "description": "Webpages become 3D spaces interconnected by portals. Explore, collaborate and build, with or without a headset.",
10
10
  "ovr_package_name": "web.JanusXR.org",
11
11
  "icons": [
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "janusweb",
3
3
  "description": "Web client for JanusVR worlds",
4
- "version": "1.5.41",
4
+ "version": "1.5.42",
5
5
  "main": "scripts/janusweb.js",
6
6
  "author": "James Baicoianu",
7
7
  "license": "MIT",
package/scripts/client.js CHANGED
@@ -47,8 +47,12 @@ elation.require(['elements.elements', 'elements', 'engine.engine', 'engine.asset
47
47
  }
48
48
  elation.config.set('dependencies.path', fullpath);
49
49
 
50
- var usetracking = elation.utils.any(args.tracking, elation.config.get('janusweb.tracking.enabled'), false);
50
+ var usetracking = elation.utils.any(args.tracking, elation.config.get('janusweb.tracking.enabled'), false),
51
+ trackingid = elation.utils.any(args.trackingid, elation.config.get('janusweb.tracking.clientid'), '');
51
52
  if (usetracking && usetracking != 'false') {
53
+ elation.config.set('janusweb.tracking.enabled', true);
54
+ elation.config.set('janusweb.tracking.clientid', trackingid);
55
+
52
56
  var tracking = elation.janusweb.tracking({});
53
57
  }
54
58
  var link = document.createElement('link');
@@ -76,6 +80,7 @@ elation.require(['elements.elements', 'elements', 'engine.engine', 'engine.asset
76
80
  useWebVRPolyfill: args.useWebVRPolyfill,
77
81
  server: args.server,
78
82
  tracking: usetracking,
83
+ trackingid: trackingid,
79
84
  avatarsrc: args.avatarsrc,
80
85
  });
81
86
  return new Promise(function(resolve, reject) {
@@ -191,6 +196,7 @@ elation.require(['elements.elements', 'elements', 'engine.engine', 'engine.asset
191
196
 
192
197
  elation.engine.assets.initTextureLoaders(this.engine.systems.render, elation.config.get('janusweb.datapath') + 'lib/basis/');
193
198
  elation.engine.assets.setDracoPath(elation.config.get('janusweb.datapath') + 'lib/draco/');
199
+ elation.engine.assets.icosapath = elation.config.get('janusweb.datapath') + 'lib/three-icosa/brushes/';
194
200
  }
195
201
  createUI() {
196
202
  if (!this.ui) {
@@ -305,7 +311,8 @@ elation.require(['elements.elements', 'elements', 'engine.engine', 'engine.asset
305
311
  homepage: { type: 'string' },
306
312
  width: { type: 'integer', default: 640 },
307
313
  height: { type: 'integer', default: 480 },
308
- tracking: { type: 'boolean', default: true },
314
+ tracking: { type: 'boolean', default: false },
315
+ trackingid: { type: 'string' },
309
316
  networking: { type: 'boolean', default: true },
310
317
  avatarsrc: { type: 'string', default: false },
311
318
  uiconfig: { type: 'string', default: false },
@@ -333,6 +340,7 @@ elation.require(['elements.elements', 'elements', 'engine.engine', 'engine.asset
333
340
  url: this.getRoomURL(),
334
341
  homepage: this.homepage || this.src,
335
342
  tracking: this.tracking,
343
+ trackingid: this.trackingid,
336
344
  networking: this.networking,
337
345
  corsproxy: this.corsproxy,
338
346
  //resolution: width + 'x' + height,
@@ -456,11 +464,20 @@ elation.require(['elements.elements', 'elements', 'engine.engine', 'engine.asset
456
464
  }
457
465
  show() {
458
466
  super.show();
467
+ if (this.oldparent && !this.parentNode) {
468
+ this.oldparent.appendChild(this);
469
+ }
459
470
  elation.events.fire({type: 'overlay_show', element: this});
460
471
  }
461
472
  hide() {
462
473
  super.hide();
463
474
  elation.events.fire({type: 'overlay_hide', element: this});
475
+ setTimeout(() => {
476
+ if (this.parentNode) {
477
+ this.oldparent = this.parentNode;
478
+ this.parentNode.removeChild(this);
479
+ }
480
+ }, 1000);
464
481
  }
465
482
  });
466
483
  }
@@ -0,0 +1,176 @@
1
+ elation.require(['janusweb.janusbase'], function() {
2
+ elation.component.add('janusweb.elements.outliner', {
3
+ create() {
4
+ this.defineProperties({
5
+ 'target': { type: 'string', set: this.updateTarget },
6
+ 'outline': { type: 'float', default: 2, set: this.updateOutlineSize },
7
+ });
8
+ this.meshes = [];
9
+ this.skinnedmeshes = [];
10
+ // Shader used to outline the selected object. Based on https://www.videopoetics.com/tutorials/pixel-perfect-outline-shaders-unity/
11
+ // Thanks to @donrmccurdy for the example of how to include skinning in a custom shader https://github.com/mrdoob/three.js/issues/4800#issuecomment-580901344
12
+ this.outlinematerial = new THREE.ShaderMaterial({
13
+ vertexShader: `
14
+ uniform float offset;
15
+ uniform vec2 screenSize;
16
+
17
+ ${THREE.ShaderChunk.skinning_pars_vertex}
18
+
19
+ void main() {
20
+ mat4 modelViewProjectionMatrix = projectionMatrix * modelViewMatrix;
21
+
22
+ // If USE_SKINNING is set, this will transform our vertices by any skinned mesh attributes
23
+ // Otherwise, it'll just use our regular vertex positions
24
+ ${THREE.ShaderChunk.beginnormal_vertex}
25
+ ${THREE.ShaderChunk.skinbase_vertex}
26
+ ${THREE.ShaderChunk.skinnormal_vertex}
27
+ vec3 transformed = vec3( position );
28
+ ${THREE.ShaderChunk.skinning_vertex}
29
+
30
+ // Transform our new vertex position into clip space
31
+ vec4 pos = modelViewProjectionMatrix * vec4(transformed, 1.0);
32
+
33
+ // Offset our vertices along the normal direction, scaled to the specified pixel offset in screen space
34
+ vec3 clipNormal = mat3(projectionMatrix) * (mat3(modelViewMatrix) * normal);
35
+ pos.xy += normalize(clipNormal.xy) / screenSize * offset * pos.w * 2.0;
36
+ gl_Position = pos;
37
+ }
38
+ `,
39
+
40
+ fragmentShader: `
41
+ uniform vec3 color;
42
+ uniform float opacity;
43
+ void main(){
44
+ gl_FragColor = vec4( color, opacity );
45
+ }
46
+ `,
47
+
48
+ uniforms: {
49
+ offset: { type: "f", value: this.outline },
50
+ color: { value: this.col},
51
+ opacity: { value: this.opacity },
52
+ screenSize: { type: 'v2', value: new THREE.Vector2(window.innerWidth, window.innerHeight) },
53
+ },
54
+ });
55
+ this.col = '#00ff00';
56
+ this.outlinematerial.transparent = true;
57
+ this.outlinematerial.uniforms.color.value = this.col;
58
+ this.outlinematerial.depthWrite = false;
59
+ this.outlinematerial.side = THREE.BackSide;
60
+ //this.outlinematerial.blending = THREE.AdditiveBlending;
61
+
62
+ if (this.target) this.updateTarget();
63
+ },
64
+ select(object) {
65
+ this.selected = object;
66
+ let objmeshes = [], skinnedmeshes = [];
67
+ object.traverseObjects(n => {
68
+ if (n instanceof THREE.Mesh && n.material !== this.outlinematerial) {
69
+ if (n.isSkinnedMesh)
70
+ skinnedmeshes.push(n);
71
+ else
72
+ objmeshes.push(n);
73
+ }
74
+ });
75
+ // Create and update regular Meshes
76
+ let meshIdx = 0;
77
+ for (; meshIdx < objmeshes.length; meshIdx++) {
78
+ let n = objmeshes[meshIdx],
79
+ m = this.getMesh(n, this.meshes[meshIdx]);
80
+ this.meshes[meshIdx] = m;
81
+ n.parent.add(m);
82
+ }
83
+ // Hide all unused Meshes
84
+ if (meshIdx < this.meshes.length) {
85
+ for (; meshIdx < this.meshes.length; meshIdx++) {
86
+ this.meshes[meshIdx].geometry = null;
87
+ if (this.meshes[meshIdx].parent) {
88
+ this.meshes[meshIdx].parent.remove(this.meshes[meshIdx]);
89
+ }
90
+ }
91
+ }
92
+ // Create and update SkinnedMeshes
93
+ let skinnedMeshIdx = 0;
94
+ for (; skinnedMeshIdx < skinnedmeshes.length; skinnedMeshIdx++) {
95
+ let n = skinnedmeshes[skinnedMeshIdx],
96
+ m = this.getSkinnedMesh(n, this.skinnedmeshes[skinnedMeshIdx]);
97
+ this.skinnedmeshes[skinnedMeshIdx] = m;
98
+ n.parent.add(m);
99
+ }
100
+ // Hide all unused Meshes
101
+ if (skinnedMeshIdx < this.skinnedmeshes.length) {
102
+ for (; skinnedMeshIdx < this.skinnedmeshes.length; skinnedMeshIdx++) {
103
+ this.skinnedmeshes[skinnedMeshIdx].geometry = null;
104
+ if (this.skinnedmeshes[skinnedMeshIdx].parent) {
105
+ this.skinnedmeshes[skinnedMeshIdx].parent.remove(this.skinnedmeshes[skinnedMeshIdx]);
106
+ }
107
+ }
108
+ }
109
+ this.refresh();
110
+ },
111
+ deselect() {
112
+ for (let meshIdx = 0; meshIdx < this.meshes.length; meshIdx++) {
113
+ this.meshes[meshIdx].geometry = null;
114
+ if (this.meshes[meshIdx].parent) {
115
+ this.meshes[meshIdx].parent.remove(this.meshes[meshIdx]);
116
+ }
117
+ }
118
+ for (let skinnedMeshIdx = 0; skinnedMeshIdx < this.skinnedmeshes.length; skinnedMeshIdx++) {
119
+ this.skinnedmeshes[skinnedMeshIdx].geometry = null;
120
+ if (this.skinnedmeshes[skinnedMeshIdx].parent) {
121
+ this.skinnedmeshes[skinnedMeshIdx].parent.remove(this.skinnedmeshes[skinnedMeshIdx]);
122
+ }
123
+ }
124
+ this.refresh();
125
+ },
126
+ updateOutlineSize() {
127
+ if (this.outlinematerial) {
128
+ this.outlinematerial.uniforms.offset.value = this.outline;
129
+ this.refresh();
130
+ }
131
+ },
132
+ setOpacity() {
133
+ if (this.outlinematerial) {
134
+ this.outlinematerial.uniforms.opacity.value = this.opacity;
135
+ this.refresh();
136
+ }
137
+ },
138
+ updateTarget() {
139
+ if (this.target && this.outlinematerial) {
140
+ let obj = room.objects[this.target];
141
+ if (obj) {
142
+ this.select(obj);
143
+ if (!obj.loaded) {
144
+ obj.addEventListener('asset_load_complete', ev => this.select(obj));
145
+ }
146
+ } else if (!room.loaded) {
147
+ room.addEventListener('room_load_complete', ev => this.updateTarget());
148
+ }
149
+ }
150
+ },
151
+ getMesh(n, m) {
152
+ if (!m) {
153
+ m = new THREE.Mesh(n.geometry, this.outlinematerial);
154
+ m.matrixAutoUpdate = false;
155
+ } else {
156
+ m.geometry = n.geometry;
157
+ m.material = this.outlinematerial;
158
+ }
159
+ m.matrix.copy(n.matrix);
160
+ return m;
161
+ },
162
+ getSkinnedMesh(n, m) {
163
+ if (!m) {
164
+ m = new THREE.SkinnedMesh(n.geometry, this.outlinematerial);
165
+ m.skeleton = n.skeleton;
166
+ m.matrixAutoUpdate = false;
167
+ } else {
168
+ m.geometry = n.geometry;
169
+ m.material = this.outlinematerial;
170
+ }
171
+ m.matrix.copy(n.matrix);
172
+ return m;
173
+ }
174
+ }, elation.janusweb.janusbase);
175
+
176
+ });
@@ -305,7 +305,7 @@ JanusFireboxParser.prototype.parseXML = function(imgxml, leaf, forceLower) {
305
305
  } else if (child.nodeName) {
306
306
  if (child.nodeName == "#text" || child.nodeName == "#cdata-section") {
307
307
  // this gets confused if you have multiple text/cdata nodes...
308
- if (!child.nodeValue.match(/^[\s\n]*$/m)) {
308
+ if (!child.nodeValue.match(/^[\s\n]*$/s)) {
309
309
  parent._content = child.nodeValue;
310
310
  }
311
311
  } else {
@@ -383,8 +383,9 @@ elation.require(['engine.things.generic', 'utils.template', 'janusweb.parts'], f
383
383
  rotate_deg_per_sec: [ 'property', 'rotate_deg_per_sec'],
384
384
  rotate_axis: [ 'property', 'rotate_axis'],
385
385
 
386
- anim_id: ['property', 'anim_id'],
387
- anim_transition_time: ['property', 'anim_transition_time'],
386
+ anim_id: ['property', 'anim_id'],
387
+ anim_transition_time: ['property', 'anim_transition_time'],
388
+ activeanimation: ['property', 'activeanimation'],
388
389
 
389
390
  fwd: ['property', 'zdir'],
390
391
  xdir: ['property', 'xdir'],
@@ -611,6 +611,15 @@ elation.require(['janusweb.janusbase', 'engine.things.leapmotion'], function() {
611
611
  if (isNaN(this.head.orientation.x) || isNaN(this.head.orientation.y) || isNaN(this.head.orientation.z) || isNaN(this.head.orientation.w)) this.head.orientation.set(0,0,0,1);
612
612
  }
613
613
 
614
+ if (movedata.morphtargets) {
615
+ if (this.body) {
616
+ let morphtargets = movedata.morphtargets;
617
+ for (let target in morphtargets) {
618
+ this.body.setMorphTargetInfluence(target, morphtargets[target]);
619
+ }
620
+ }
621
+ }
622
+
614
623
  this.objects.dynamics.updateState();
615
624
  this.refresh();
616
625
  }
@@ -256,7 +256,7 @@ elation.require(['janusweb.janusbase'], function() {
256
256
  geo.setAttribute('size', new THREE.BufferAttribute(size, 1));
257
257
 
258
258
  this.created = true;
259
- this.emitted = 0;
259
+ this.spawncount = 0;
260
260
  this.currentpoint = 0;
261
261
  this.lasttime = performance.now();
262
262
 
@@ -282,6 +282,7 @@ elation.require(['janusweb.janusbase'], function() {
282
282
  color[i*4+2] = point.color.b;
283
283
  color[i*4+3] = point.opacity;
284
284
  }
285
+ this.emitted = 0;
285
286
  }
286
287
  this.updateParticles = function(ev) {
287
288
  if (!this.loaded || !this.started || !this.parent) return;
@@ -290,7 +291,7 @@ elation.require(['janusweb.janusbase'], function() {
290
291
  endtime = now + this.duration * 1000,
291
292
  emitted = 0,
292
293
  startpoint = this.currentpoint,
293
- spawncount = this.rate * elapsed / 1000,
294
+ spawncount = this.spawncount + this.rate * elapsed / 1000,
294
295
  count = this.count,
295
296
  loop = this.loop;
296
297
 
@@ -315,10 +316,12 @@ elation.require(['janusweb.janusbase'], function() {
315
316
  p.endtime = (this.duration > 0 ? endtime : Infinity);
316
317
  p.active = 1;
317
318
  emitted++;
319
+ spawncount--;
318
320
  this.currentpoint = (this.currentpoint + 1) % count;
319
321
  }
320
322
  }
321
323
  }
324
+ this.spawncount = spawncount;
322
325
  this.lasttime = now;
323
326
  // Notify the renderer of our changes, but only if we're visible to the player
324
327
  // We also rate limit here, so if nothing else in the scene is changing, we
@@ -18,7 +18,11 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
18
18
  this.postinit = function() {
19
19
  elation.engine.things.janusplayer.extendclass.postinit.call(this);
20
20
 
21
- this.settings = elation.collection.localindexed({storagekey: 'janusweb.player.settings', index: 'key'});
21
+ try {
22
+ this.settings = elation.collection.localindexed({storagekey: 'janusweb.player.settings', index: 'key'});
23
+ } catch (e) {
24
+ this.settings = elation.collection.indexed({storagekey: 'janusweb.player.settings', index: 'key'});
25
+ }
22
26
 
23
27
  this.defineProperties({
24
28
  janus: {type: 'object' },
@@ -127,6 +131,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
127
131
  this.party_mode = this.getSetting('partymode.enabled', false);
128
132
  this.currentavatar = '';
129
133
  this.getAvatarData().then(d => this.currentavatar = d);
134
+ this.morphtargetchanges = {};
130
135
  }
131
136
  this.createChildren = function() {
132
137
  elation.engine.things.janusplayer.extendclass.createChildren.call(this);
@@ -541,81 +546,83 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
541
546
  this.stop = function() {
542
547
  }
543
548
  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'],
549
+ if (!this._proxyobject) {
550
+ this._proxyobject = new elation.proxy(this, {
551
+ parent: ['accessor', 'parent.getProxyObject'],
552
+ room: ['property', 'room'],
553
+ pos: ['property', 'position'],
554
+ vel: ['property', 'velocity'],
555
+ accel: ['property', 'acceleration'],
556
+ eye_pos: ['property', 'vectors.eye_pos'],
557
+ head_pos: ['property', 'vectors.head_pos'],
558
+ cursor_pos: ['property', 'vectors.cursor_pos'],
559
+ cursor_xdir: ['property', 'vectors.cursor_xdir'],
560
+ cursor_ydir: ['property', 'vectors.cursor_ydir'],
561
+ cursor_zdir: ['property', 'vectors.cursor_zdir'],
562
+ view_dir: ['property', 'vectors.view_zdir'],
563
+ dir: ['property', 'vectors.zdir'],
564
+ up_dir: ['property', 'vectors.ydir'],
565
+ userid: ['property', 'janus.userId'],
566
+ enabled: ['property', 'enabled'],
567
+ flying: ['property', 'flying'],
568
+ walking: ['property', 'walking'],
569
+ running: ['property', 'running'],
570
+ //url: ['property', 'currenturl'],
571
+ //hmd_enabled: ['property', 'hmd_enabled'],
572
+ cursor_active: ['property', 'cursor_active'],
573
+ cursor_visible: ['property', 'cursor_visible'],
574
+ cursor_opacity: ['property', 'cursor_opacity'],
575
+ cursor_style: ['property', 'cursor_style'],
576
+ cursor_object: ['property', 'cursor_object'],
577
+ lookat_object: ['property', 'lookat_object'],
578
+ lookat_pos: ['property', 'vectors.lookat_pos'],
579
+ //lookat_xdir: ['property', 'properties.lookat_xdir'],
580
+ //lookat_ydir: ['property', 'properties.lookat_ydir'],
581
+ //lookat_zdir: ['property', 'properties.lookat_zdir'],
582
+ hand0_active: ['property', 'hands.left.isactive'],
583
+ hand0_pos: ['property', 'hands.left.handpos'],
584
+ hand0_xdir: ['property', 'hands.left.xdir'],
585
+ hand0_ydir: ['property', 'hands.left.ydir'],
586
+ hand0_zdir: ['property', 'hands.left.zdir'],
587
+ hand0_p0: ['property', 'hands.left.p0'],
588
+ hand0_p1: ['property', 'hands.left.p1'],
589
+ hand0_p2: ['property', 'hands.left.p2'],
590
+ hand0_p3: ['property', 'hands.left.p3'],
591
+ hand0_p4: ['property', 'hands.left.p4'],
586
592
 
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'],
593
+ hand1_active: ['property', 'hands.right.isactive'],
594
+ hand1_pos: ['property', 'hands.right.handpos'],
595
+ hand1_xdir: ['property', 'hands.right.xdir'],
596
+ hand1_ydir: ['property', 'hands.right.ydir'],
597
+ hand1_zdir: ['property', 'hands.right.zdir'],
598
+ hand1_p0: ['property', 'hands.right.p0'],
599
+ hand1_p1: ['property', 'hands.right.p1'],
600
+ hand1_p2: ['property', 'hands.right.p2'],
601
+ hand1_p3: ['property', 'hands.right.p3'],
602
+ hand1_p4: ['property', 'hands.right.p4'],
603
+ url: ['property', 'parent.currentroom.url'],
598
604
 
599
- collision_radius: ['property', 'collision_radius'],
605
+ collision_radius: ['property', 'collision_radius'],
600
606
 
601
- currentavatar: ['property', 'currentavatar'],
602
- defaultanimation: ['property', 'defaultanimation'],
607
+ currentavatar: ['property', 'currentavatar'],
608
+ defaultanimation: ['property', 'defaultanimation'],
603
609
 
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;
610
+ localToWorld: ['function', 'localToWorld'],
611
+ worldToLocal: ['function', 'worldToLocal'],
612
+ appendChild: ['function', 'appendChild'],
613
+ removeChild: ['function', 'removeChild'],
614
+ addForce: ['function', 'addForce'],
615
+ removeForce: ['function', 'removeForce'],
616
+ raycast: ['function', 'raycast'],
617
+ getViewFrustum:['function', 'getViewFrustum'],
618
+ getUsername: ['function', 'getUsername'],
619
+ setUsername: ['function', 'setUsername'],
620
+ getSetting: ['function', 'getSetting'],
621
+ setSetting: ['function', 'setSetting'],
622
+ setAvatar: ['function', 'setAvatar'],
623
+ });
624
+ }
625
+ return this._proxyobject;
619
626
  }
620
627
  this.getAvatarData = function() {
621
628
  return new Promise((resolve, reject) => {
@@ -725,6 +732,29 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
725
732
  }
726
733
  return handData;
727
734
  }
735
+ this.hasMorphTargetData = function() {
736
+ return Object.keys(this.morphtargetchanges).length > 0;
737
+ }
738
+ this.setMorphTargetInfluence = function(morphtarget, value) {
739
+ if (this.ghost && this.ghost.body) {
740
+ this.ghost.body.setMorphTargetInfluence(morphtarget, value);
741
+ //if (this.morphtargetchanges.indexOf(morphtarget) == -1) {
742
+ this.morphtargetchanges[morphtarget] = value;
743
+ //}
744
+ }
745
+ }
746
+ this.getMorphTargetData = function() {
747
+ if (this.hasMorphTargetData()) {
748
+ let data = {};
749
+ let body = this.ghost.body;
750
+ for (let morphtarget in this.morphtargetchanges) {
751
+ data[morphtarget] = this.morphtargetchanges[morphtarget];
752
+ delete this.morphtargetchanges[morphtarget];
753
+ }
754
+ return data;
755
+ }
756
+ return false;
757
+ }
728
758
  this.getRandomUsername = function() {
729
759
  var adjectives = [
730
760
  "Adorable", "Beautiful", "Clean", "Drab", "Elegant", "Fancy", "Glamorous", "Handsome", "Long", "Magnificent",
@@ -999,16 +1029,23 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
999
1029
  return function(newscale, scaletime, scalecurve) {
1000
1030
  if (newscale != this.scale) {
1001
1031
  startscale.copy(this.properties.scale);
1002
- let start = performance.now();
1003
- let timer = setInterval(() => {
1004
- let n = (performance.now() - start) / scaletime;
1032
+ if (scaletime) {
1033
+ let start = performance.now();
1034
+ let timer = setInterval(() => {
1035
+ let n = (performance.now() - start) / scaletime;
1005
1036
 
1006
- this.scale = tmpvec.set(newscale, newscale, newscale).sub(startscale).multiplyScalar(n).add(startscale);
1037
+ this.scale = tmpvec.set(newscale, newscale, newscale).sub(startscale).multiplyScalar(n).add(startscale);
1038
+ this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1039
+ if (n >= 1) {
1040
+ clearInterval(timer);
1041
+ this.scale.set(newscale, newscale, newscale);
1042
+ this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1043
+ }
1044
+ }, 16);
1045
+ } else {
1046
+ this.scale.set(newscale, newscale, newscale);
1007
1047
  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);
1048
+ }
1012
1049
  }
1013
1050
  };
1014
1051
  })();