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.
- package/CHANGELOG +23 -0
- package/css/janusweb.css +7 -2
- package/media/assets/webui/apps/buttons/buttons.js +17 -43
- package/media/assets/webui/apps/comms/chat.html +1 -0
- package/media/assets/webui/apps/comms/chat_message.html +1 -1
- package/media/assets/webui/apps/comms/comms.js +14 -7
- package/media/assets/webui/apps/comms/external/naf-shim.js +1 -1
- package/media/assets/webui/apps/comms/voip.css +32 -3
- package/media/assets/webui/apps/comms/voip.js +191 -12
- package/media/assets/webui/apps/editor/editor.css +1 -0
- package/media/assets/webui/apps/editor/editor.js +97 -20
- package/media/assets/webui/apps/inventory/inventory.css +2 -1
- package/media/assets/webui/apps/locomotion/teleporter.js +21 -10
- package/media/assets/webui/apps/xrmenu/images/audio-settings.png +0 -0
- package/media/assets/webui/apps/xrmenu/xrmenu-assets.json +2 -1
- package/media/assets/webui/apps/xrmenu/xrmenu.js +119 -32
- package/media/assets/webui/themes/default.css +42 -0
- package/media/lib/basis/basis_transcoder.js +8 -8
- package/media/lib/basis/basis_transcoder.wasm +0 -0
- package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-fragment.glsl +284 -0
- package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-fragment.glsl +334 -0
- package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-vertex.glsl +46 -0
- package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-fragment.glsl +248 -0
- package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-fragment.glsl +34 -0
- package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-vertex.glsl +120 -0
- package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-fragment.glsl +89 -0
- package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-fragment.glsl +69 -0
- package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-fragment.glsl +289 -0
- package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-fragment.glsl +292 -0
- package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-AlphaMask.png +0 -0
- package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-fragment.glsl +65 -0
- package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-fragment.glsl +481 -0
- package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-vertex.glsl +57 -0
- package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +290 -0
- package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +70 -0
- package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-fragment.glsl +113 -0
- package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-fragment.glsl +35 -0
- package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-vertex.glsl +120 -0
- package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-fragment.glsl +286 -0
- package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-vertex.glsl +54 -0
- package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-fragment.glsl +81 -0
- package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-vertex.glsl +54 -0
- package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-fragment.glsl +376 -0
- package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-fragment.glsl +378 -0
- package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-fragment.glsl +50 -0
- package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-vertex.glsl +79 -0
- package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-fragment.glsl +32 -0
- package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-vertex.glsl +152 -0
- package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-fragment.glsl +288 -0
- package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-vertex.glsl +47 -0
- package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-fragment.glsl +288 -0
- package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-vertex.glsl +50 -0
- package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-fragment.glsl +61 -0
- package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-fragment.glsl +285 -0
- package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-fragment.glsl +286 -0
- package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-fragment.glsl +285 -0
- package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-fragment.glsl +40 -0
- package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-fragment.glsl +33 -0
- package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-fragment.glsl +386 -0
- package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-fragment.glsl +385 -0
- package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-fragment.glsl +376 -0
- package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-fragment.glsl +376 -0
- package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-fragment.glsl +377 -0
- package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-fragment.glsl +319 -0
- package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-fragment.glsl +47 -0
- package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +330 -0
- package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +64 -0
- package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-fragment.glsl +285 -0
- package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-fragment.glsl +87 -0
- package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-fragment.glsl +285 -0
- package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-fragment.glsl +267 -0
- package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-fragment.glsl +377 -0
- package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-fragment.glsl +376 -0
- package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-fragment.glsl +377 -0
- package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-fragment.glsl +370 -0
- package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-vertex.glsl +48 -0
- package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-fragment.glsl +374 -0
- package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-vertex.glsl +48 -0
- package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-fragment.glsl +367 -0
- package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-fragment.glsl +64 -0
- package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-fragment.glsl +70 -0
- package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-fragment.glsl +367 -0
- package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-fragment.glsl +30 -0
- package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-vertex.glsl +125 -0
- package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-fragment.glsl +31 -0
- package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-vertex.glsl +143 -0
- package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-fragment.glsl +34 -0
- package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-fragment.glsl +285 -0
- package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-fragment.glsl +290 -0
- package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-fragment.glsl +291 -0
- package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-fragment.glsl +31 -0
- package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-vertex.glsl +128 -0
- package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-fragment.glsl +63 -0
- package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-fragment.glsl +113 -0
- package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-vertex.glsl +62 -0
- package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-fragment.glsl +292 -0
- package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-fragment.glsl +287 -0
- package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-vertex.glsl +58 -0
- package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-fragment.glsl +113 -0
- package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-vertex.glsl +60 -0
- 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
- 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
- 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
- package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-fragment.glsl +378 -0
- package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-fragment.glsl +380 -0
- package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-vertex.glsl +58 -0
- package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +85 -0
- package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-fragment.glsl +81 -0
- package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-fragment.glsl +80 -0
- package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-fragment.glsl +82 -0
- package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-vertex.glsl +55 -0
- package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-fragment.glsl +376 -0
- package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-BumpMap.png +0 -0
- package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-fragment.glsl +313 -0
- package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-vertex.glsl +58 -0
- package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-fragment.glsl +377 -0
- package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-vertex.glsl +60 -0
- package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-MainTex.png +0 -0
- package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-fragment.glsl +107 -0
- package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-vertex.glsl +58 -0
- package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +75 -0
- package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
- package/media/manifest.json +1 -1
- package/package.json +2 -2
- package/scripts/client.js +20 -3
- package/scripts/elements/outliner.js +182 -0
- package/scripts/external/JanusClientConnection.js +14 -8
- package/scripts/external/JanusFireboxParser.js +1 -1
- package/scripts/image.js +1 -1
- package/scripts/janusbase.js +40 -17
- package/scripts/janusghost.js +17 -6
- package/scripts/januslight.js +46 -4
- package/scripts/janusparticle.js +121 -15
- package/scripts/janusplayer.js +176 -92
- package/scripts/janusweb.js +9 -5
- package/scripts/janusxrplayer.js +152 -20
- package/scripts/multiplayermanager.js +4 -0
- package/scripts/object.js +83 -38
- package/scripts/parts.js +1 -1
- package/scripts/portal.js +13 -9
- package/scripts/remoteplayer.js +3 -2
- package/scripts/room.js +109 -32
- package/scripts/sound.js +8 -3
- package/scripts/text.js +9 -2
- package/scripts/tracking.js +1 -1
- package/scripts/ui/main.js +6 -2
- package/scripts/websurface.js +3 -3
package/CHANGELOG
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
JanusWeb 1.5.42
|
|
2
|
+
===============
|
|
3
|
+
- New Features
|
|
4
|
+
- TiltBrush / OpenBrush support via three-icosa
|
|
5
|
+
- VOIP "start call" button
|
|
6
|
+
- Synced avatar morphtargets over network
|
|
7
|
+
- New <outliner> built-in element
|
|
8
|
+
- Support for .hdr envmaps
|
|
9
|
+
- Updates
|
|
10
|
+
- glTF optimizations: KTX2 textures, Meshopt compression
|
|
11
|
+
- VR controller improvements
|
|
12
|
+
- Scriptable player walk/run speeds
|
|
13
|
+
- Editor improvements
|
|
14
|
+
- Upgrade Three.js to r140
|
|
15
|
+
- Bugfixes
|
|
16
|
+
- Handle localStorage permission rejection
|
|
17
|
+
- Fixed particle rates < 1 particle per frame
|
|
18
|
+
- Fixed toon shader for <room toon="true">
|
|
19
|
+
- Material fixes for emissive, clearcoat, transmission tint, etc
|
|
20
|
+
- Fixed FBX texture load path
|
|
21
|
+
- Update player gravity when flying is toggled
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
JanusWeb 1.5
|
|
2
25
|
============
|
|
3
26
|
- Threejs upgrade to r133
|
package/css/janusweb.css
CHANGED
|
@@ -263,7 +263,8 @@ janus-viewer section {
|
|
|
263
263
|
janus-viewer ui-scrollindicator {
|
|
264
264
|
text-align: center;
|
|
265
265
|
position: absolute;
|
|
266
|
-
bottom:
|
|
266
|
+
bottom: 2vh;
|
|
267
|
+
overflow: hidden;
|
|
267
268
|
}
|
|
268
269
|
janus-viewer ui-scrollindicator:after {
|
|
269
270
|
border-left: 4px solid white;
|
|
@@ -271,6 +272,7 @@ janus-viewer ui-scrollindicator:after {
|
|
|
271
272
|
width: 50px;
|
|
272
273
|
height: 50px;
|
|
273
274
|
transform: rotate(-45deg);
|
|
275
|
+
transform-origin: 0 5px;
|
|
274
276
|
display: block;
|
|
275
277
|
animation: scrollindicator-bounce 1s infinite;
|
|
276
278
|
content: ' ';
|
|
@@ -301,6 +303,9 @@ janus-overlay[hidden] {
|
|
|
301
303
|
pointer-events: none;
|
|
302
304
|
display: block !important;
|
|
303
305
|
}
|
|
304
|
-
|
|
306
|
+
janus-viewer room,
|
|
307
|
+
janus-viewer assets,
|
|
308
|
+
fireboxroom room,
|
|
309
|
+
fireboxroom assets {
|
|
305
310
|
display: none;
|
|
306
311
|
}
|
|
@@ -202,16 +202,25 @@ elation.elements.define('janus-button-audio', class extends elation.elements.ui.
|
|
|
202
202
|
init() {
|
|
203
203
|
super.init();
|
|
204
204
|
this.defineAttribute('muted', { type: 'boolean' });
|
|
205
|
+
janus.engine.systems.sound.getOutputChannel().then(c => this.output_main = c);
|
|
205
206
|
}
|
|
206
207
|
create() {
|
|
208
|
+
/*
|
|
207
209
|
this.popupcontent = `
|
|
208
|
-
<ui-slider name="volume_env" label="
|
|
209
|
-
<ui-slider name="volume_voip" label="Voice Chat" min="0" max="
|
|
210
|
+
<ui-slider name="volume_env" label="Main Volume" min="0" max="150" value="100" snap="1"></ui-slider>
|
|
211
|
+
<ui-slider name="volume_voip" label="Voice Chat" min="0" max="150" value="100" snap="1"></ui-slider>
|
|
212
|
+
`;
|
|
213
|
+
*/
|
|
214
|
+
this.popupcontent = `
|
|
215
|
+
<ui-slider name="volume_env" label="Main Volume" min="0" max="150" value="100" snap="1"></ui-slider>
|
|
210
216
|
`;
|
|
211
217
|
super.create();
|
|
212
218
|
this.createPopup();
|
|
213
219
|
this.hidePopup();
|
|
214
|
-
|
|
220
|
+
|
|
221
|
+
console.log(this.popup.content);
|
|
222
|
+
elation.events.add(this.popup.content.querySelector('[name="volume_env"]'), 'change', (ev) => this.adjustEnvironmentVolume(ev.data));
|
|
223
|
+
//elation.events.add(this.popup.content.querySelector('[name="volume_voip"]'), 'change', (ev) => this.adjustVoipVolume(ev.data));
|
|
215
224
|
//this.addEventListener('click', (ev) => this.handleClick(ev));
|
|
216
225
|
|
|
217
226
|
let soundsystem = janus.engine.systems.sound;
|
|
@@ -226,10 +235,15 @@ elation.elements.define('janus-button-audio', class extends elation.elements.ui.
|
|
|
226
235
|
elation.events.add(soundsystem, 'sound_enabled', (ev) => this.updateMuteState());
|
|
227
236
|
}
|
|
228
237
|
adjustEnvironmentVolume(volume) {
|
|
238
|
+
//console.log('adjust environment output', room.audionodes.gain.gain.value);
|
|
239
|
+
/*
|
|
229
240
|
if (room.audionodes) {
|
|
230
241
|
room.audionodes.gain.gain.value = volume;
|
|
231
242
|
this.updateMuteState();
|
|
232
243
|
}
|
|
244
|
+
*/
|
|
245
|
+
console.log(volume);
|
|
246
|
+
janus.engine.systems.sound.reallistener.gain.gain.value = volume / 100;
|
|
233
247
|
}
|
|
234
248
|
adjustVOIPVolume(volume) {
|
|
235
249
|
// TODO
|
|
@@ -243,46 +257,6 @@ elation.elements.define('janus-button-audio', class extends elation.elements.ui.
|
|
|
243
257
|
this.muted = muted;
|
|
244
258
|
}
|
|
245
259
|
});
|
|
246
|
-
elation.elements.define('janus-button-voip', class extends elation.elements.ui.popupbutton {
|
|
247
|
-
init() {
|
|
248
|
-
super.init();
|
|
249
|
-
this.defineAttribute('active', { type: 'boolean' });
|
|
250
|
-
this.defineAttribute('muted', { type: 'boolean' });
|
|
251
|
-
}
|
|
252
|
-
create() {
|
|
253
|
-
this.popupcontent = `<janus-voip-picker name="voipsettings"></janus-voip-picker>`;
|
|
254
|
-
super.create();
|
|
255
|
-
this.createPopup();
|
|
256
|
-
this.hidePopup();
|
|
257
|
-
elation.events.add(this.popup.content.elements['picker'], 'voip-picker-select', (ev) => this.hidePopup());
|
|
258
|
-
this.updateMuteState();
|
|
259
|
-
//setInterval(() => this.updateMuteState(), 1000);
|
|
260
|
-
}
|
|
261
|
-
updateMuteState() {
|
|
262
|
-
//let muted = !(soundsystem.canPlaySound && soundsystem.enabled);
|
|
263
|
-
let voipclient = this.voipclient;
|
|
264
|
-
if (!this.voipclient) {
|
|
265
|
-
voipclient = document.querySelector('janus-voip-client');
|
|
266
|
-
this.voipclient = voipclient;
|
|
267
|
-
if (this.voipclient) {
|
|
268
|
-
elation.events.add(this.voipclient, 'init', ev => this.updateMuteState());
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
let muted = true;
|
|
272
|
-
if (voipclient) {
|
|
273
|
-
if (voipclient.localuser && !this.registeredEvents) {
|
|
274
|
-
elation.events.add(voipclient.localuser, 'mute', () => this.updateMuteState());
|
|
275
|
-
elation.events.add(voipclient.localuser, 'unmute', () => this.updateMuteState());
|
|
276
|
-
elation.events.add(voipclient.localuser, 'update', ev => this.updateMuteState());
|
|
277
|
-
this.registeredEvents = true;
|
|
278
|
-
}
|
|
279
|
-
if (voipclient.localuser && voipclient.localuser.stream && !voipclient.localuser.muted) {
|
|
280
|
-
muted = false;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
if (this.muted != muted) this.muted = muted;
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
260
|
elation.elements.define('janus-button-share', class extends elation.elements.ui.button {
|
|
287
261
|
init() {
|
|
288
262
|
super.init();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<details name="toggle" open aria-live="polite" role="log">
|
|
2
2
|
<summary>Text Chat <ui-notificationbutton name="unread" count="0"></ui-notificationbutton></summary>
|
|
3
|
+
<janus-voip-client-callbutton></janus-voip-client-callbutton>
|
|
3
4
|
<collection-indexed id="chatmessages" index="timestamp"></collection-indexed>
|
|
4
5
|
<ui-list name="chatlist" collection="chatmessages" itemtemplate="janus.comms.chat_message" scrollable="1"></ui-list>
|
|
5
6
|
<ui-input name="chatinput" placeholder="Press T for text chat"></ui-input>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<span class="message {type}"><span class="userid">{userId}</span> {message}</span>
|
|
1
|
+
<span class="message {type}"><span class="userid">{userId}</span> {?raw}{message|s}{:else}{message}{/raw}</span>
|
|
@@ -52,7 +52,7 @@ elation.elements.define('janus-comms-status', class extends elation.elements.bas
|
|
|
52
52
|
this.state = 'disconnected';
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
this.
|
|
55
|
+
this.refresh();
|
|
56
56
|
|
|
57
57
|
//elation.events.add(player._target, 'username_change', (ev) => this.handleUsernameChange(ev));
|
|
58
58
|
}
|
|
@@ -222,6 +222,7 @@ if (!this.elements.chatmessages) return;
|
|
|
222
222
|
type: 'join',
|
|
223
223
|
userId: data.id,
|
|
224
224
|
message: 'has joined ' + (data.room.title || data.room.url),
|
|
225
|
+
raw: false,
|
|
225
226
|
});
|
|
226
227
|
this.scrollToBottom();
|
|
227
228
|
}
|
|
@@ -232,7 +233,8 @@ if (!this.elements.chatmessages) return;
|
|
|
232
233
|
timestamp: new Date().getTime(),
|
|
233
234
|
type: 'part',
|
|
234
235
|
userId: data.id,
|
|
235
|
-
message: 'has left the room'
|
|
236
|
+
message: 'has left the room',
|
|
237
|
+
raw: false,
|
|
236
238
|
});
|
|
237
239
|
this.scrollToBottom();
|
|
238
240
|
}
|
|
@@ -243,7 +245,8 @@ if (!this.elements.chatmessages) return;
|
|
|
243
245
|
timestamp: new Date().getTime(),
|
|
244
246
|
type: 'disconnect',
|
|
245
247
|
userId: data.id,
|
|
246
|
-
message: 'has disconnected'
|
|
248
|
+
message: 'has disconnected',
|
|
249
|
+
raw: false,
|
|
247
250
|
});
|
|
248
251
|
this.scrollToBottom();
|
|
249
252
|
}
|
|
@@ -254,8 +257,10 @@ if (!this.elements.chatmessages) return;
|
|
|
254
257
|
timestamp: new Date().getTime(),
|
|
255
258
|
type: 'chat',
|
|
256
259
|
userId: data.userId,
|
|
257
|
-
message: data.message.data || data.message.message
|
|
260
|
+
message: data.message.data || data.message.message,
|
|
261
|
+
raw: false,
|
|
258
262
|
});
|
|
263
|
+
|
|
259
264
|
this.scrollToBottom();
|
|
260
265
|
this.updateUnread(1);
|
|
261
266
|
}
|
|
@@ -263,11 +268,12 @@ if (!this.elements.chatmessages) return;
|
|
|
263
268
|
if (msg && msg.length > 0) {
|
|
264
269
|
janus.network.send({'method': 'chat', data: msg});
|
|
265
270
|
if (!this.elements.chatmessages) return;
|
|
266
|
-
this.elements.chatmessages.add({
|
|
271
|
+
let newmsg = this.elements.chatmessages.add({
|
|
267
272
|
timestamp: new Date().getTime(),
|
|
268
273
|
type: 'selfchat',
|
|
269
274
|
userId: player.userid,
|
|
270
|
-
message: msg
|
|
275
|
+
message: msg,
|
|
276
|
+
raw: false,
|
|
271
277
|
});
|
|
272
278
|
this.elements.chatinput.value = '';
|
|
273
279
|
this.scrollToBottom();
|
|
@@ -279,7 +285,8 @@ if (!this.elements.chatmessages) return;
|
|
|
279
285
|
timestamp: new Date().getTime(),
|
|
280
286
|
type: 'print',
|
|
281
287
|
userId: 'room',
|
|
282
|
-
message: msg[0]
|
|
288
|
+
message: msg[0],
|
|
289
|
+
raw: false,
|
|
283
290
|
});
|
|
284
291
|
this.scrollToBottom();
|
|
285
292
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
janus-voip-client {
|
|
2
|
-
display: flex;
|
|
3
2
|
border: 1px solid black;
|
|
4
3
|
position: relative;
|
|
5
4
|
max-width: 75vh;
|
|
6
5
|
flex-wrap: wrap;
|
|
7
6
|
}
|
|
7
|
+
janus-voip-client-janus {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: horizontal;
|
|
10
|
+
}
|
|
8
11
|
janus-voip-localuser {
|
|
9
12
|
display: block;
|
|
10
13
|
bottom: 0px;
|
|
@@ -20,7 +23,7 @@ janus-voip-localuser video {
|
|
|
20
23
|
margin: 1px 0 0 1px;
|
|
21
24
|
}
|
|
22
25
|
janus-voip-remoteuser {
|
|
23
|
-
|
|
26
|
+
xdisplay: inline-block;
|
|
24
27
|
border: 2px solid black;
|
|
25
28
|
position: relative;
|
|
26
29
|
font-family: monospace;
|
|
@@ -34,7 +37,7 @@ janus-voip-remoteuser video {
|
|
|
34
37
|
height: 128px;
|
|
35
38
|
}
|
|
36
39
|
janus-voip-remoteuser video.active {
|
|
37
|
-
display: block;
|
|
40
|
+
display: inline-block;
|
|
38
41
|
}
|
|
39
42
|
janus-voip-remoteuser[active] {
|
|
40
43
|
transform: scale(1, 1);
|
|
@@ -68,6 +71,7 @@ janus-voip-localuser ui-button {
|
|
|
68
71
|
font-size: 0;
|
|
69
72
|
width: auto;
|
|
70
73
|
transition: opacity 100ms linear;
|
|
74
|
+
z-index: 100;
|
|
71
75
|
}
|
|
72
76
|
janus-voip-remoteuser ui-button {
|
|
73
77
|
font-size: 0;
|
|
@@ -99,6 +103,11 @@ janus-voip-localuser ui-button.muted:before {
|
|
|
99
103
|
}
|
|
100
104
|
janus-voip-localuser:hover ui-button,
|
|
101
105
|
janus-voip-remoteuser:hover ui-button {
|
|
106
|
+
display: block;
|
|
107
|
+
opacity: .6;
|
|
108
|
+
}
|
|
109
|
+
janus-voip-localuser ui-button:hover,
|
|
110
|
+
janus-voip-remoteuser ui-button:hover {
|
|
102
111
|
display: block;
|
|
103
112
|
opacity: 1;
|
|
104
113
|
}
|
|
@@ -171,3 +180,23 @@ janus-voip-picker .micselect {
|
|
|
171
180
|
janus-voip-picker-mictest {
|
|
172
181
|
margin-left: 5px;
|
|
173
182
|
}
|
|
183
|
+
janus-voip-client-incomingcall ui-flexpanel {
|
|
184
|
+
height: auto;
|
|
185
|
+
}
|
|
186
|
+
janus-voip-client-incomingcall janus-button-voip[action="accept"] {
|
|
187
|
+
background: #0a0;
|
|
188
|
+
border: 1px solid black;
|
|
189
|
+
}
|
|
190
|
+
janus-voip-client-incomingcall janus-button-voip[action="accept"]:hover {
|
|
191
|
+
background: #0d0;
|
|
192
|
+
}
|
|
193
|
+
janus-voip-client-incomingcall janus-button-voip[action="accept"][disabled] {
|
|
194
|
+
opacity: .3;
|
|
195
|
+
}
|
|
196
|
+
janus-voip-client-incomingcall ui-button[action="reject"] {
|
|
197
|
+
background: #800;
|
|
198
|
+
border: 1px solid black;
|
|
199
|
+
}
|
|
200
|
+
janus-voip-client-incomingcall ui-button[action="reject"]:hover {
|
|
201
|
+
background: #a00;
|
|
202
|
+
}
|
|
@@ -38,6 +38,7 @@ elation.elements.define('janus-voip-client', class extends elation.elements.base
|
|
|
38
38
|
this.inputstream = localStream;
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
+
elation.events.add(janus.network, 'janusweb_user_chat', (ev) => this.handleUserChat(ev));
|
|
41
42
|
}
|
|
42
43
|
setRoom(newroom) {
|
|
43
44
|
let roomid = newroom.voipid || newroom.id;
|
|
@@ -76,6 +77,28 @@ elation.elements.define('janus-voip-client', class extends elation.elements.base
|
|
|
76
77
|
}
|
|
77
78
|
this.currentroom = this.rooms[roomid];
|
|
78
79
|
}
|
|
80
|
+
disconnect() {
|
|
81
|
+
if (this.currentroom) {
|
|
82
|
+
this.currentroom.disconnect();
|
|
83
|
+
this.currentroom = null;
|
|
84
|
+
}
|
|
85
|
+
this.localuser.setData(null);
|
|
86
|
+
}
|
|
87
|
+
handleUserChat(ev) {
|
|
88
|
+
console.log('got a chat', ev.data);
|
|
89
|
+
let msg = ev.data.message;
|
|
90
|
+
let m = msg.data.match(/📞 (.*$)/);
|
|
91
|
+
if (m) {
|
|
92
|
+
let chatmessages = document.querySelector('janus-comms-chat').elements.chatmessages,
|
|
93
|
+
chatlist = document.querySelector('janus-comms-chat').elements.chatlist;
|
|
94
|
+
if (chatmessages) {
|
|
95
|
+
let item = chatmessages.items[chatmessages.items.length - 1];
|
|
96
|
+
item.raw = true;
|
|
97
|
+
item.message = '<janus-voip-client-incomingcall>' + msg.data + '</janus-voip-client-incomingcall>';
|
|
98
|
+
chatlist.refresh();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
79
102
|
});
|
|
80
103
|
elation.elements.define('janus-voip-client-janus', class extends elation.elements.base {
|
|
81
104
|
create() {
|
|
@@ -125,6 +148,9 @@ elation.elements.define('janus-voip-client-janus', class extends elation.element
|
|
|
125
148
|
sfu.adapter.setLocalMediaStream(localStream);
|
|
126
149
|
sfu.dispatchEvent(new CustomEvent('voip-media-change', {detail: { stream: localStream }}));
|
|
127
150
|
});
|
|
151
|
+
if (this.inputstream) {
|
|
152
|
+
sfu.adapter.setLocalMediaStream(this.inputstream);
|
|
153
|
+
}
|
|
128
154
|
/*
|
|
129
155
|
elation.events.add(janus._target, 'room_change', (ev) => {
|
|
130
156
|
if (!sfu || !sfu.adapter) return;
|
|
@@ -192,7 +218,12 @@ console.log('leave room and remove all occupants', this.room);
|
|
|
192
218
|
this.sfu.setClientId(ev.data);
|
|
193
219
|
}
|
|
194
220
|
setInputStream(stream) {
|
|
195
|
-
this.sfu
|
|
221
|
+
if (this.sfu) {
|
|
222
|
+
this.inputstream = stream;
|
|
223
|
+
this.sfu.adapter.setLocalMediaStream(stream);
|
|
224
|
+
} else {
|
|
225
|
+
this.connect();
|
|
226
|
+
}
|
|
196
227
|
}
|
|
197
228
|
});
|
|
198
229
|
elation.elements.define('janus-voip-client-hifi', class extends elation.elements.base {
|
|
@@ -390,6 +421,10 @@ elation.elements.define('janus-voip-localuser', class extends elation.elements.b
|
|
|
390
421
|
if (!data) {
|
|
391
422
|
this.stream = false;
|
|
392
423
|
elation.events.fire({type: 'update', element: this});
|
|
424
|
+
if (this.updateVolumeInterval) {
|
|
425
|
+
clearInterval(this.updateVolumeInterval);
|
|
426
|
+
this.updateVolumeInterval = false;
|
|
427
|
+
}
|
|
393
428
|
return;
|
|
394
429
|
}
|
|
395
430
|
|
|
@@ -410,7 +445,7 @@ elation.elements.define('janus-voip-localuser', class extends elation.elements.b
|
|
|
410
445
|
video.srcObject = data;
|
|
411
446
|
this.appendChild(video);
|
|
412
447
|
video.muted = true;
|
|
413
|
-
video.play().then(() => console.log('playing', video));
|
|
448
|
+
video.play().then(() => console.log('playing', video)).catch(e => console.log('Failed to start video', e, video));
|
|
414
449
|
this.video = video;
|
|
415
450
|
}
|
|
416
451
|
|
|
@@ -520,6 +555,7 @@ elation.elements.define('janus-voip-remoteuser', class extends elation.elements.
|
|
|
520
555
|
}
|
|
521
556
|
setUserData(data) {
|
|
522
557
|
this.id = data.id;
|
|
558
|
+
console.log('got a remote voip user', data);
|
|
523
559
|
|
|
524
560
|
if (!this.label) {
|
|
525
561
|
let label = document.createElement('h2');
|
|
@@ -586,11 +622,12 @@ elation.elements.define('janus-voip-remoteuser', class extends elation.elements.
|
|
|
586
622
|
if (!this.controlpanel) {
|
|
587
623
|
this.controlpanel = elation.elements.create('ui-panel', { bottom: 1, append: this });
|
|
588
624
|
this.mutebutton = elation.elements.create('ui-button', { label: 'Mute', name: "mutebutton", append: this.controlpanel });
|
|
589
|
-
|
|
590
|
-
this.volume = elation.elements.create('ui-slider', { name: "volume", min: 0, max: 2, value: this.video.volume, append: this.controlpanel });
|
|
625
|
+
this.volume = elation.elements.create('ui-slider', { name: "volume", min: 0, max: 200, value: this.video.volume * 100, append: this.controlpanel, snap: 1 });
|
|
591
626
|
|
|
592
627
|
elation.events.add(this.volume, 'change', (ev) => {
|
|
593
|
-
remoteuser
|
|
628
|
+
if (remoteuser) {
|
|
629
|
+
remoteuser.setVolume(ev.data / 100);
|
|
630
|
+
}
|
|
594
631
|
this.muted = (ev.data == 0);
|
|
595
632
|
if (this.muted && !this.mutebutton.hasclass('muted')) {
|
|
596
633
|
this.mutebutton.addclass('muted');
|
|
@@ -598,7 +635,6 @@ elation.elements.define('janus-voip-remoteuser', class extends elation.elements.
|
|
|
598
635
|
this.mutebutton.removeclass('muted');
|
|
599
636
|
}
|
|
600
637
|
});
|
|
601
|
-
*/
|
|
602
638
|
elation.events.add(this.mutebutton, 'click', (ev) => {
|
|
603
639
|
/*
|
|
604
640
|
remoteuser.setVolume(0);
|
|
@@ -695,6 +731,7 @@ elation.elements.define('janus-voip-remoteuser', class extends elation.elements.
|
|
|
695
731
|
}
|
|
696
732
|
toggleMute() {
|
|
697
733
|
this.muted = !this.muted;
|
|
734
|
+
console.log('mute?', this.muted, this);
|
|
698
735
|
let remoteuser = janus.network.remoteplayers[this.id];
|
|
699
736
|
if (this.muted) {
|
|
700
737
|
this.mutebutton.addclass('muted');
|
|
@@ -883,6 +920,10 @@ elation.elements.define('janus-voip-picker-audio', class extends elation.element
|
|
|
883
920
|
|
|
884
921
|
this.webcamDisabledElement = elation.elements.create('option', {innerHTML: 'Disabled', value: 'none', append: cameras.select});
|
|
885
922
|
}
|
|
923
|
+
let vidtrack = false;
|
|
924
|
+
if (this.stream) {
|
|
925
|
+
vidtrack = this.stream.getVideoTracks()[0]
|
|
926
|
+
}
|
|
886
927
|
devices.forEach(d => {
|
|
887
928
|
if (d.kind == 'audioinput') {
|
|
888
929
|
elation.elements.create('option', {innerHTML: d.label, value: d.deviceId, append: inputs.select});
|
|
@@ -890,7 +931,11 @@ elation.elements.define('janus-voip-picker-audio', class extends elation.element
|
|
|
890
931
|
if (d.deviceId == '') {
|
|
891
932
|
hasWebcamPermission = false;
|
|
892
933
|
} else {
|
|
893
|
-
elation.elements.create('option', {innerHTML: d.label, value: d.deviceId, append: cameras.select});
|
|
934
|
+
let option = elation.elements.create('option', {innerHTML: d.label, value: d.deviceId, append: cameras.select});
|
|
935
|
+
if (vidtrack && d.label == vidtrack.label) {
|
|
936
|
+
option.selected = true;
|
|
937
|
+
cameras.select.value = option.value;
|
|
938
|
+
}
|
|
894
939
|
}
|
|
895
940
|
} else if (outputs && d.kind == 'audiooutput') {
|
|
896
941
|
elation.elements.create('option', {innerHTML: d.label, value: d.deviceId, append: outputs.select});
|
|
@@ -900,9 +945,6 @@ elation.elements.define('janus-voip-picker-audio', class extends elation.element
|
|
|
900
945
|
if (hasWebcamPermission && this.elements.videoDevice.hidden ) {
|
|
901
946
|
this.elements.webcamEnabled.hide();
|
|
902
947
|
this.elements.videoDevice.show();
|
|
903
|
-
let option = this.elements.videoDevice.select.childNodes[0];
|
|
904
|
-
option.selected = true;
|
|
905
|
-
this.elements.videoDevice.select.value = option.value;
|
|
906
948
|
} else {
|
|
907
949
|
console.log('NO WEBCAM PERMISSION');
|
|
908
950
|
this.elements.webcamEnabled.show();
|
|
@@ -937,12 +979,12 @@ elation.elements.define('janus-voip-picker-audio', class extends elation.element
|
|
|
937
979
|
|
|
938
980
|
if (this.elements.inputDevice.value && this.elements.inputDevice.value != 'default') {
|
|
939
981
|
console.log('input!', this.elements.inputDevice.value);
|
|
940
|
-
constraints.audio.deviceId = {
|
|
982
|
+
constraints.audio.deviceId = { ideal: this.elements.inputDevice.value };
|
|
941
983
|
}
|
|
942
984
|
if (this.elements.videoDevice && this.elements.videoDevice.value && this.elements.videoDevice.value != 'none') {
|
|
943
985
|
console.log('video!', this.elements.videoDevice.value);
|
|
944
986
|
constraints.video = {
|
|
945
|
-
deviceId: {
|
|
987
|
+
deviceId: { ideal: this.elements.videoDevice.value },
|
|
946
988
|
height: 256,
|
|
947
989
|
width: 256
|
|
948
990
|
};
|
|
@@ -1121,6 +1163,7 @@ elation.elements.define('janus-voip-picker-mictest', class extends elation.eleme
|
|
|
1121
1163
|
bufferLength = dataArray.length,
|
|
1122
1164
|
analyser = this.analyser;;
|
|
1123
1165
|
|
|
1166
|
+
if (!this.offsetParent) return;
|
|
1124
1167
|
analyser.getByteFrequencyData(this.dataArray);
|
|
1125
1168
|
|
|
1126
1169
|
ctx.fillStyle = "#000";
|
|
@@ -1175,3 +1218,139 @@ elation.elements.define('janus-voip-picker-videotest', class extends elation.ele
|
|
|
1175
1218
|
}
|
|
1176
1219
|
}
|
|
1177
1220
|
});
|
|
1221
|
+
elation.elements.define('janus-button-voip', class extends elation.elements.ui.popupbutton {
|
|
1222
|
+
init() {
|
|
1223
|
+
super.init();
|
|
1224
|
+
this.defineAttribute('active', { type: 'boolean' });
|
|
1225
|
+
this.defineAttribute('muted', { type: 'boolean' });
|
|
1226
|
+
}
|
|
1227
|
+
create() {
|
|
1228
|
+
this.popupcontent = `<janus-voip-picker name="voipsettings"></janus-voip-picker>`;
|
|
1229
|
+
super.create();
|
|
1230
|
+
//this.createPopup();
|
|
1231
|
+
this.hidePopup();
|
|
1232
|
+
this.updateMuteState();
|
|
1233
|
+
//setInterval(() => this.updateMuteState(), 1000);
|
|
1234
|
+
}
|
|
1235
|
+
updateMuteState() {
|
|
1236
|
+
//let muted = !(soundsystem.canPlaySound && soundsystem.enabled);
|
|
1237
|
+
let voipclient = this.voipclient;
|
|
1238
|
+
if (!this.voipclient) {
|
|
1239
|
+
voipclient = document.querySelector('janus-voip-client');
|
|
1240
|
+
this.voipclient = voipclient;
|
|
1241
|
+
if (this.voipclient) {
|
|
1242
|
+
elation.events.add(this.voipclient, 'init', ev => this.updateMuteState());
|
|
1243
|
+
}
|
|
1244
|
+
}
|
|
1245
|
+
let muted = true;
|
|
1246
|
+
if (voipclient) {
|
|
1247
|
+
if (voipclient.localuser && !this.registeredEvents) {
|
|
1248
|
+
elation.events.add(voipclient.localuser, 'mute', () => this.updateMuteState());
|
|
1249
|
+
elation.events.add(voipclient.localuser, 'unmute', () => this.updateMuteState());
|
|
1250
|
+
elation.events.add(voipclient.localuser, 'update', ev => this.updateMuteState());
|
|
1251
|
+
this.registeredEvents = true;
|
|
1252
|
+
}
|
|
1253
|
+
if (voipclient.localuser && voipclient.localuser.stream && !voipclient.localuser.muted) {
|
|
1254
|
+
muted = false;
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
if (this.muted != muted) this.muted = muted;
|
|
1258
|
+
}
|
|
1259
|
+
createPopup() {
|
|
1260
|
+
super.createPopup();
|
|
1261
|
+
setTimeout(() => {
|
|
1262
|
+
//elation.events.add(this.popup.content.querySelector('janus-voip-picker'), 'voip-picker-select', (ev) => this.hidePopup());
|
|
1263
|
+
document.addEventListener('voip-picker-select', (ev) => { this.hidePopup(); });
|
|
1264
|
+
}, 100);
|
|
1265
|
+
}
|
|
1266
|
+
});
|
|
1267
|
+
elation.elements.define('janus-voip-client-callbutton', class extends elation.elements.janus.button.voip {
|
|
1268
|
+
create() {
|
|
1269
|
+
this.detached = true;
|
|
1270
|
+
this.button = elation.elements.create('ui-button', {
|
|
1271
|
+
append: this,
|
|
1272
|
+
label: '📞',
|
|
1273
|
+
});
|
|
1274
|
+
this.button.addEventListener('click', ev => this.handleClick(ev));
|
|
1275
|
+
super.create();
|
|
1276
|
+
}
|
|
1277
|
+
isVoipActive(client) {
|
|
1278
|
+
if (!client) client = document.querySelector('janus-voip-client');
|
|
1279
|
+
return (client && client.localuser && client.localuser.stream);
|
|
1280
|
+
}
|
|
1281
|
+
handleClick(ev) {
|
|
1282
|
+
if (!this.isVoipActive()) {
|
|
1283
|
+
this.showPopup();
|
|
1284
|
+
} else {
|
|
1285
|
+
/*
|
|
1286
|
+
if (this.popup.parentNode === this) {
|
|
1287
|
+
if (!elation.utils.isin(this.popup, ev.target)) {
|
|
1288
|
+
this.hidePopup();
|
|
1289
|
+
}
|
|
1290
|
+
} else {
|
|
1291
|
+
this.showPopup();
|
|
1292
|
+
}
|
|
1293
|
+
*/
|
|
1294
|
+
}
|
|
1295
|
+
let chat = document.querySelector('janus-comms-chat');
|
|
1296
|
+
chat.sendMessage('📞 ring ring');
|
|
1297
|
+
if (!this.isVoipActive()) {
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1300
|
+
});
|
|
1301
|
+
elation.elements.define('janus-voip-client-incomingcall', class extends elation.elements.base {
|
|
1302
|
+
create() {
|
|
1303
|
+
this.actions = elation.elements.create('ui-flexpanel', { append: this });
|
|
1304
|
+
let active = this.isVoipActive();
|
|
1305
|
+
this.acceptbutton = elation.elements.create('janus-button-voip', {
|
|
1306
|
+
label: (active ? 'Call in Progress' : 'Accept'),
|
|
1307
|
+
action: 'accept',
|
|
1308
|
+
detached: true,
|
|
1309
|
+
disabled: active,
|
|
1310
|
+
append: this.actions
|
|
1311
|
+
});
|
|
1312
|
+
this.rejectbutton = elation.elements.create('ui-button', {
|
|
1313
|
+
label: (active ? 'Hang Up' : 'Decline'),
|
|
1314
|
+
action: 'reject',
|
|
1315
|
+
append: this.actions
|
|
1316
|
+
});
|
|
1317
|
+
|
|
1318
|
+
this.acceptbutton.addEventListener('click', ev => this.handleAccept(ev));
|
|
1319
|
+
this.rejectbutton.addEventListener('click', ev => this.handleReject(ev));
|
|
1320
|
+
}
|
|
1321
|
+
isVoipActive(client) {
|
|
1322
|
+
if (!client) client = document.querySelector('janus-voip-client');
|
|
1323
|
+
return (client && client.localuser && client.localuser.stream);
|
|
1324
|
+
}
|
|
1325
|
+
handleAccept(ev) {
|
|
1326
|
+
this.acceptbutton.disabled = true;
|
|
1327
|
+
this.acceptbutton.label = 'Call in Progress';
|
|
1328
|
+
this.rejectbutton.disabled = false;
|
|
1329
|
+
this.rejectbutton.label = 'Hang Up';
|
|
1330
|
+
}
|
|
1331
|
+
handleReject(ev) {
|
|
1332
|
+
let chat = document.querySelector('janus-comms-chat');
|
|
1333
|
+
this.removeChild(this.actions);
|
|
1334
|
+
//this.removeChild(this.rejectbutton);
|
|
1335
|
+
|
|
1336
|
+
let client = document.querySelector('janus-voip-client');
|
|
1337
|
+
if (this.isVoipActive(client)) {
|
|
1338
|
+
chat.sendMessage('👋 hanging up');
|
|
1339
|
+
client.disconnect();
|
|
1340
|
+
this.acceptbutton.disabled = false;
|
|
1341
|
+
this.acceptbutton.label = 'Reconnect';
|
|
1342
|
+
this.rejectbutton.label = 'Decline';
|
|
1343
|
+
this.rejectbutton.disabled = true;
|
|
1344
|
+
} else {
|
|
1345
|
+
chat.sendMessage('❌ request declined');
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
});
|
|
1349
|
+
elation.elements.define('janus-voip-client-none', class extends elation.elements.base {
|
|
1350
|
+
create() {
|
|
1351
|
+
}
|
|
1352
|
+
connect() {
|
|
1353
|
+
}
|
|
1354
|
+
setInputStream(stream) {
|
|
1355
|
+
}
|
|
1356
|
+
});
|