vim-web 0.5.0-dev.2 → 0.5.0-dev.21

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 (69) hide show
  1. package/dist/style.css +37 -7
  2. package/dist/types/core-viewers/shared/inputAdapter.d.ts +1 -0
  3. package/dist/types/core-viewers/shared/keyboardHandler.d.ts +1 -1
  4. package/dist/types/core-viewers/shared/mouseHandler.d.ts +2 -0
  5. package/dist/types/core-viewers/ultra/camera.d.ts +2 -2
  6. package/dist/types/core-viewers/ultra/colorManager.d.ts +4 -4
  7. package/dist/types/core-viewers/ultra/element3d.d.ts +4 -4
  8. package/dist/types/core-viewers/ultra/index.d.ts +1 -1
  9. package/dist/types/core-viewers/ultra/remoteColor.d.ts +3 -23
  10. package/dist/types/core-viewers/ultra/renderer.d.ts +14 -11
  11. package/dist/types/core-viewers/ultra/rpcClient.d.ts +22 -19
  12. package/dist/types/core-viewers/ultra/rpcSafeClient.d.ts +200 -85
  13. package/dist/types/core-viewers/ultra/rpcTypes.d.ts +6 -3
  14. package/dist/types/core-viewers/ultra/rpcUtils.d.ts +8 -0
  15. package/dist/types/core-viewers/ultra/sectionBox.d.ts +1 -1
  16. package/dist/types/core-viewers/ultra/viewer.d.ts +6 -0
  17. package/dist/types/core-viewers/ultra/viewport.d.ts +6 -0
  18. package/dist/types/core-viewers/ultra/vim.d.ts +11 -9
  19. package/dist/types/core-viewers/ultra/visibility.d.ts +2 -2
  20. package/dist/types/core-viewers/webgl/loader/mesh.d.ts +3 -1
  21. package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +4 -2
  22. package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +5 -0
  23. package/dist/types/core-viewers/webgl/loader/vim.d.ts +5 -0
  24. package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +1 -0
  25. package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +7 -0
  26. package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +5 -0
  27. package/dist/types/core-viewers/webgl/viewer/viewport.d.ts +1 -1
  28. package/dist/types/react-viewers/bim/bimPanel.d.ts +3 -3
  29. package/dist/types/react-viewers/errors/errorStyle.d.ts +1 -1
  30. package/dist/types/react-viewers/helpers/reactUtils.d.ts +2 -1
  31. package/dist/types/react-viewers/helpers/utils.d.ts +8 -0
  32. package/dist/types/react-viewers/panels/axesPanel.d.ts +2 -1
  33. package/dist/types/react-viewers/panels/index.d.ts +1 -0
  34. package/dist/types/react-viewers/panels/isolationPanel.d.ts +2 -0
  35. package/dist/types/react-viewers/panels/messageBox.d.ts +2 -0
  36. package/dist/types/react-viewers/panels/sidePanel.d.ts +1 -1
  37. package/dist/types/react-viewers/settings/anySettings.d.ts +7 -0
  38. package/dist/types/react-viewers/settings/index.d.ts +1 -1
  39. package/dist/types/react-viewers/settings/settingsInputBox.d.ts +4 -0
  40. package/dist/types/react-viewers/settings/settingsItem.d.ts +30 -0
  41. package/dist/types/react-viewers/settings/settingsKeys.d.ts +46 -0
  42. package/dist/types/react-viewers/settings/settingsPanel.d.ts +5 -4
  43. package/dist/types/react-viewers/settings/settingsPanelContent.d.ts +6 -0
  44. package/dist/types/react-viewers/settings/settingsState.d.ts +11 -11
  45. package/dist/types/react-viewers/settings/settingsStorage.d.ts +3 -3
  46. package/dist/types/react-viewers/settings/settingsSubtitle.d.ts +2 -0
  47. package/dist/types/react-viewers/settings/settingsToggle.d.ts +11 -0
  48. package/dist/types/react-viewers/state/controlBarState.d.ts +40 -7
  49. package/dist/types/react-viewers/state/sharedIsolation.d.ts +2 -0
  50. package/dist/types/react-viewers/ultra/controlBar.d.ts +3 -1
  51. package/dist/types/react-viewers/ultra/index.d.ts +1 -0
  52. package/dist/types/react-viewers/ultra/settings.d.ts +10 -0
  53. package/dist/types/react-viewers/ultra/settingsPanel.d.ts +5 -0
  54. package/dist/types/react-viewers/ultra/viewer.d.ts +3 -1
  55. package/dist/types/react-viewers/ultra/viewerRef.d.ts +3 -0
  56. package/dist/types/react-viewers/urls.d.ts +0 -1
  57. package/dist/types/react-viewers/webgl/index.d.ts +1 -0
  58. package/dist/types/react-viewers/webgl/loading.d.ts +2 -2
  59. package/dist/types/react-viewers/webgl/settings.d.ts +36 -0
  60. package/dist/types/react-viewers/webgl/settingsPanel.d.ts +12 -0
  61. package/dist/types/react-viewers/webgl/viewer.d.ts +3 -3
  62. package/dist/types/react-viewers/webgl/viewerRef.d.ts +12 -5
  63. package/dist/types/utils/validation.d.ts +6 -6
  64. package/dist/vim-web.iife.js +1771 -1052
  65. package/dist/vim-web.iife.js.map +1 -1
  66. package/dist/vim-web.js +1771 -1052
  67. package/dist/vim-web.js.map +1 -1
  68. package/package.json +2 -2
  69. package/dist/types/react-viewers/settings/settings.d.ts +0 -61
package/dist/style.css CHANGED
@@ -733,8 +733,8 @@ video:where(.vim-component,.vim-component *) {
733
733
  .vc-top-4 {
734
734
  top: 1rem;
735
735
  }
736
- .vc-top-6 {
737
- top: 1.5rem;
736
+ .vc-top-8 {
737
+ top: 2rem;
738
738
  }
739
739
  .vc-top-\[10\%\] {
740
740
  top: 10%;
@@ -772,6 +772,9 @@ video:where(.vim-component,.vim-component *) {
772
772
  .vc-m-1 {
773
773
  margin: 0.25rem;
774
774
  }
775
+ .vc-m-2 {
776
+ margin: 0.5rem;
777
+ }
775
778
  .vc-m-auto {
776
779
  margin: auto;
777
780
  }
@@ -828,6 +831,9 @@ video:where(.vim-component,.vim-component *) {
828
831
  .vc-mt-6 {
829
832
  margin-top: 1.5rem;
830
833
  }
834
+ .vc-box-border {
835
+ box-sizing: border-box;
836
+ }
831
837
  .vc-box-content {
832
838
  box-sizing: content-box;
833
839
  }
@@ -987,6 +993,11 @@ video:where(.vim-component,.vim-component *) {
987
993
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
988
994
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
989
995
  }
996
+ .vc-space-y-2 > :not([hidden]) ~ :not([hidden]) {
997
+ --tw-space-y-reverse: 0;
998
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
999
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
1000
+ }
990
1001
  .vc-self-center {
991
1002
  align-self: center;
992
1003
  }
@@ -1025,6 +1036,9 @@ video:where(.vim-component,.vim-component *) {
1025
1036
  .vc-rounded-md {
1026
1037
  border-radius: 0.375rem;
1027
1038
  }
1039
+ .vc-rounded-sm {
1040
+ border-radius: 0.125rem;
1041
+ }
1028
1042
  .vc-rounded-t {
1029
1043
  border-top-left-radius: 0.25rem;
1030
1044
  border-top-right-radius: 0.25rem;
@@ -1069,6 +1083,9 @@ video:where(.vim-component,.vim-component *) {
1069
1083
  --tw-border-opacity: 1;
1070
1084
  border-color: rgb(223 223 225 / var(--tw-border-opacity, 1));
1071
1085
  }
1086
+ .vc-border-gray {
1087
+ border-color: var(--c-gray);
1088
+ }
1072
1089
  .vc-border-gray-divider {
1073
1090
  border-color: var(--c-gray-divider);
1074
1091
  }
@@ -1120,6 +1137,9 @@ video:where(.vim-component,.vim-component *) {
1120
1137
  .vc-p-1 {
1121
1138
  padding: 0.25rem;
1122
1139
  }
1140
+ .vc-p-2 {
1141
+ padding: 0.5rem;
1142
+ }
1123
1143
  .vc-p-5 {
1124
1144
  padding: 1.25rem;
1125
1145
  }
@@ -1157,6 +1177,9 @@ video:where(.vim-component,.vim-component *) {
1157
1177
  .vc-pl-6 {
1158
1178
  padding-left: 1.5rem;
1159
1179
  }
1180
+ .vc-pr-2 {
1181
+ padding-right: 0.5rem;
1182
+ }
1160
1183
  .vc-text-center {
1161
1184
  text-align: center;
1162
1185
  }
@@ -1193,6 +1216,9 @@ video:where(.vim-component,.vim-component *) {
1193
1216
  .vc-font-bold {
1194
1217
  font-weight: 700;
1195
1218
  }
1219
+ .vc-font-medium {
1220
+ font-weight: 500;
1221
+ }
1196
1222
  .vc-font-normal {
1197
1223
  font-weight: 400;
1198
1224
  }
@@ -1284,6 +1310,11 @@ video:where(.vim-component,.vim-component *) {
1284
1310
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
1285
1311
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1286
1312
  }
1313
+ .vc-shadow-sm {
1314
+ --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
1315
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1316
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1317
+ }
1287
1318
  .vc-outline-none {
1288
1319
  outline: 2px solid transparent;
1289
1320
  outline-offset: 2px;
@@ -1763,6 +1794,10 @@ video:where(.vim-component,.vim-component *) {
1763
1794
  }
1764
1795
 
1765
1796
  /* === Cursors ===*/
1797
+ .cursor-regular {
1798
+ cursor: default;
1799
+ }
1800
+
1766
1801
  .cursor-orbit:hover {
1767
1802
  cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE0LDIwLjIzNGMtNS42NTIsMC0xMC4yNS0yLjYzNi0xMC4yNS01Ljg3NSwwLTEuNzUxLDEuMzA2LTMuMzY2LDMuNjA0LTQuNDgtLjUwOC0uMzEyLS43MDYtLjk2Mi0uNDQtMS40ODgsLjE5NC0uMzg2LC41ODItLjYyNSwxLjAxLS42MjUsLjE0MiwwLC4yODIsLjAyNiwuNDE2LC4wNzlsLjA5NywuMDQyLDIuMTQ4LDEuMDg2Yy42OSwuMzQ5LC45NjksMS4xOTUsLjYyLDEuODg2bC0xLjA4MywyLjE0NWMtLjE5NSwuMzg2LS41ODIsLjYyNS0xLjAxMiwuNjI1LS4xNDEsMC0uMjgtLjAyNS0uNDE0LS4wNzdsLS4wOTgtLjA0NGMtLjU1LS4yNzgtLjY3OC0uODI4LS41NjctMS4zMDYtLjAyMSwuMDExLS4wNDEsLjAyMS0uMDYsLjAzMy0xLjE1NiwuNjUtMS44NDYsMS40NDQtMS44NDYsMi4xMjVzLjY5LDEuNDc2LDEuODQ2LDIuMTI2YzEuNTUzLC44NzMsMy43NTEsMS4zNzQsNi4wMjksMS4zNzRzNC40NzYtLjUwMSw2LjAyOS0xLjM3NGMxLjE1Ni0uNjUsMS44NDYtMS40NDUsMS44NDYtMi4xMjZzLS42OS0xLjQ3NS0xLjg0Ni0yLjEyNWMtMS41NTMtLjg3NC0zLjc1LTEuMzc1LTYuMDI5LTEuMzc1aC0uMTAyYy0uNjI0LDAtMS4xMzItLjQ1Ni0xLjE5Ni0xLjA2Mi0uMDM1LS4zMzQsLjA3My0uNjY4LC4yOTYtLjkxNywuMjIzLS4yNDgsLjU0Mi0uMzkzLC44NzUtLjM5NWguMTI2YzUuNjUyLDAsMTAuMjUsMi42MzUsMTAuMjUsNS44NzRzLTQuNTk4LDUuODc1LTEwLjI1LDUuODc1WiIvPjxwYXRoIGQ9Ik03LjkyNSw4LjAxNmMuMTA4LDAsLjIxNywuMDIsLjMyMywuMDYxLC4wMjYsLjAxMSwuMDUyLC4wMjIsLjA3OCwuMDM1bDIuMTQ1LDEuMDgzYy41NjgsLjI4NywuNzk3LC45ODIsLjUxLDEuNTVsLTEuMDgzLDIuMTQ2Yy0uMTU1LC4zMDgtLjQ2MywuNDg3LS43ODgsLjQ4Ny0uMTA4LDAtLjIxNy0uMDItLjMyNC0uMDYyLS4wMjYtLjAxLS4wNTItLjAyMi0uMDc4LS4wMzUtLjUxMi0uMjU5LS41MzEtLjc5MS0uMzkxLTEuMTY4bC4xNTItLjQxMWMtLjIxNiwuMDk5LS40MjUsLjIwMy0uNjIyLC4zMTMtMS4yNTQsLjcwNi0xLjk3MywxLjU2LTEuOTczLDIuMzQzcy43MTksMS42MzgsMS45NzMsMi4zNDNjMS41ODksLjg5NCwzLjgzMiwxLjQwNyw2LjE1MiwxLjQwN3M0LjU2Mi0uNTEzLDYuMTUyLTEuNDA3YzEuMjU0LS43MDUsMS45NzMtMS41NTksMS45NzMtMi4zNDNzLS43MTktMS42MzgtMS45NzMtMi4zNDNjLTEuNTg5LS44OTQtMy44MzItMS40MDctNi4xNTItMS40MDctLjAzNiwwLS4wNzMsMC0uMTA5LDBoLS4wMDhjLS40OCwwLS44ODMtLjM2Mi0uOTMyLS44NC0uMDU3LS41NSwuMzcyLTEuMDMxLC45MjUtMS4wMzUsLjA0MSwwLC4wODMsMCwuMTI0LDAsNS41MjMsMCwxMCwyLjUxOSwxMCw1LjYyNXMtNC40NzcsNS42MjUtMTAsNS42MjUtMTAtMi41MTgtMTAtNS42MjVjMC0xLjgxNywxLjUzMi0zLjQzMiwzLjkwOS00LjQ2bC0uMDA0LS4wMTEtLjM2Ni0uMTkxYy0uNDM4LS4yMjktLjYxOS0uNzY1LS40MDItMS4xOTQsLjE1Ni0uMzA4LC40NjQtLjQ4NywuNzg4LS40ODdtMC0uNWgwYy0uNTI0LDAtLjk5NywuMjkyLTEuMjM0LC43NjItLjI2MSwuNTE4LS4xNTcsMS4xMzEsLjIxNCwxLjU0OS0yLjE3NiwxLjE1MS0zLjQwNSwyLjc3Mi0zLjQwNSw0LjUzMywwLDMuNDM1LDQuNjEyLDYuMTI1LDEwLjUsNi4xMjVzMTAuNS0yLjY5LDEwLjUtNi4xMjUtNC42MTItNi4xMjUtMTAuNS02LjEyNWgtLjA2NXMtLjA1OSwwLS4wNTksMGMtLjQwNywuMDAzLS43OTMsLjE3Ny0xLjA2MywuNDc5LS4yNywuMzAyLS40MDEsLjcwNi0uMzU5LDEuMTA4LC4wNzYsLjczNCwuNjkxLDEuMjg4LDEuNDMsMS4yODhoLjA2NXMuMDUxLDAsLjA1MSwwYzIuMjM3LDAsNC4zOSwuNDg5LDUuOTA3LDEuMzQyLDEuMDc2LC42MDUsMS43MTgsMS4zMTksMS43MTgsMS45MDhzLS42NDIsMS4zMDItMS43MTgsMS45MDdjLTEuNTE3LC44NTQtMy42NywxLjM0My01LjkwNywxLjM0M3MtNC4zOS0uNDg5LTUuOTA3LTEuMzQyYy0xLjA3Ni0uNjA1LTEuNzE4LTEuMzE4LTEuNzE4LTEuOTA4LDAtLjUyMywuNTA3LTEuMTQ0LDEuMzc0LTEuNzAxLC4wMzgsLjQyMiwuMjU2LC44MjgsLjczNCwxLjA3LC4wNDIsLjAyMSwuMDgyLC4wMzksLjEyMSwuMDU0LC4xNjMsLjA2NCwuMzMzLC4wOTYsLjUwNiwuMDk2LC41MjQsMCwuOTk3LS4yOTIsMS4yMzQtLjc2MmwxLjA4My0yLjE0NWMuMTk5LS4zOTQsLjIzMy0uODQyLC4wOTQtMS4yNjJzLS40MzEtLjc2MS0uODI1LS45NmwtMi4xNDYtMS4wODNjLS4wMzUtLjAxOC0uMDc0LS4wMzUtLjExMy0uMDUxLS4xNzEtLjA2Ny0uMzQxLS4wOTktLjUxMy0uMDk5aDBaIi8+PC9nPjxnPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMTQiIGN5PSIxNC4zNTkiIHI9IjIuNDM4Ii8+PHBhdGggZD0iTTE0LDEyLjE3MmMxLjIwNiwwLDIuMTg4LC45ODEsMi4xODgsMi4xODhzLS45ODEsMi4xODgtMi4xODgsMi4xODgtMi4xODgtLjk4MS0yLjE4OC0yLjE4OCwuOTgxLTIuMTg4LDIuMTg4LTIuMTg4bTAtLjVjLTEuNDgyLDAtMi42ODgsMS4yMDYtMi42ODgsMi42ODhzMS4yMDYsMi42ODgsMi42ODgsMi42ODgsMi42ODgtMS4yMDYsMi42ODgtMi42ODgtMS4yMDYtMi42ODgtMi42ODgtMi42ODhoMFoiLz48L2c+PC9nPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48L2c+PC9zdmc+'),
1768
1803
  auto;
@@ -1778,11 +1813,6 @@ video:where(.vim-component,.vim-component *) {
1778
1813
  auto;
1779
1814
  }
1780
1815
 
1781
- .cursor-pan:active {
1782
- cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojMjEyMzI5O30uY2xzLTN7ZmlsbDpub25lO308L3N0eWxlPjwvZGVmcz48ZyBpZD0iRlJBTUVTIj48ZyBpZD0iZnJhbWUiPjxyZWN0IGNsYXNzPSJjbHMtMyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+PC9nPjwvZz48ZyBpZD0iSUNPTlMiPjxnPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIvPjwvZz48Zz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0xNC4xMzksMjMuMDYyYy0xLjY0NywwLTMuMTUzLS43OTMtNC4wMy0yLjEyMmwtMi4xNTktMy4yOTFjLS4yMDktLjMxOS0uMjc1LS42OTUtLjE4Ny0xLjA2MSwuMDg5LS4zNjYsLjMyMi0uNjc3LC42NTYtLjg3NiwuMjM1LS4xNCwuNTA1LS4yMTQsLjc4MS0uMjE0LC4wOCwwLC4xNjEsLjAwNiwuMjQxLC4wMTlsLjU3MiwuMDl2LTMuNjg3YzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2LjM5MWMwLC4wODYsLjA3NCwuMTU2LC4xNjQsLjE1NnMuMTY0LS4wNywuMTY0LS4xNTZ2LTEuMjk5YzAtLjY0MiwuNTEzLTEuMTY5LDEuMTY5LTEuMiwuMDIxLDAsLjA0MS0uMDAxLC4wNjItLjAwMSwuNjc4LDAsMS4yMywuNTI2LDEuMjMsMS4xNzJ2MS40ODRjMCwuMDg2LC4wNzQsLjE1NiwuMTY0LC4xNTZzLjE2NC0uMDcsLjE2NC0uMTU2di0uODNjMC0uNjQyLC41MTMtMS4xNjksMS4xNjktMS4yLC4wMjEsMCwuMDQxLS4wMDEsLjA2Mi0uMDAxLC42NzgsMCwxLjIzLC41MjYsMS4yMywxLjE3MnYxLjAxNmMwLC4wODYsLjA3NCwuMTU2LC4xNjQsLjE1NnMuMTY0LS4wNywuMTY0LS4xNTZ2LS4zNjFjMC0uNjQyLC41MTMtMS4xNjksMS4xNjktMS4yLC4wMjEsMCwuMDQxLS4wMDEsLjA2Mi0uMDAxLC42NzgsMCwxLjIzLC41MjYsMS4yMywxLjE3MnY2LjMyOGMwLDIuNDk5LTIuMTM0LDQuNTMxLTQuNzU4LDQuNTMxaC0xLjk0NFoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0yMC42NzcsMTIuOTA2djUuNjI1YzAsMi40MTYtMi4wNTcsNC4zNzUtNC41OTQsNC4zNzVoLTEuOTQ0Yy0xLjU5LDAtMy4wNDUtLjc2Ni0zLjg5MS0yLjA0OWwtMi4xNTktMy4yOWMtLjE4Ni0uMjgzLS4yNDUtLjYxOC0uMTY2LS45NDQsLjA3OS0uMzI1LC4yODYtLjYwMiwuNTgzLS43NzksLjIwOS0uMTI0LC40NDktLjE5LC42OTQtLjE5LC4wNzEsMCwuMTQzLC4wMDYsLjIxNCwuMDE3bC43NjMsLjExOXYtLjczNnMwLTMuMTM0LDAtMy4xMzRjMC0uNTQ2LC40NC0xLjAxNywxLjAxMy0xLjA0NCwuNjEyLS4wMjksMS4xMiwuNDM3LDEuMTIsMS4wMTR2LjM5MWMwLC4xNzMsLjE0NywuMzEyLC4zMjgsLjMxMmgwYy4xODEsMCwuMzI4LS4xNCwuMzI4LS4zMTJ2LTEuMjk5YzAtLjU0NiwuNDQtMS4wMTcsMS4wMTMtMS4wNDQsLjYxMi0uMDI5LDEuMTIsLjQzNywxLjEyLDEuMDE0djEuNDg0YzAsLjE3MywuMTQ3LC4zMTIsLjMyOCwuMzEyaDBjLjE4MSwwLC4zMjgtLjE0LC4zMjgtLjMxMnYtLjgzYzAtLjU0NiwuNDQtMS4wMTcsMS4wMTMtMS4wNDQsLjYxMi0uMDI5LDEuMTIsLjQzNywxLjEyLDEuMDE0djEuMDE2YzAsLjE3MywuMTQ3LC4zMTIsLjMyOCwuMzEyaDBjLjE4MSwwLC4zMjgtLjE0LC4zMjgtLjMxMnYtLjM2MWMwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHYuNzAzWiIvPjxwYXRoIGQ9Ik0yMS4zMzMsMTIuMjAzYzAtLjkwNi0uNzcxLTEuNjQxLTEuNzIzLTEuNjQxLS40NTUsMC0uODY4LC4xNjktMS4xNzYsLjQ0NC0uMjQ0LS42MjQtLjg3My0xLjA2OS0xLjYxMy0xLjA2OWgwYy0uNDU1LDAtLjg2OCwuMTY5LTEuMTc2LC40NDQtLjI0NC0uNjI0LS44NzMtMS4wNjktMS42MTMtMS4wNjktLjgzNSwwLTEuNTMsLjU2Ni0xLjY4OSwxLjMxNi0uMjk4LS4yMzYtLjY4Mi0uMzc5LTEuMS0uMzc5aDBjLS45NTEsMC0xLjcyMywuNzM1LTEuNzIzLDEuNjQxdjMuMTY0Yy0uMTA2LS4wMTctLjIxMy0uMDI1LS4zMjEtLjAyNS0uMzU2LDAtLjcxNywuMDkyLTEuMDQxLC4yODUtLjkyMiwuNTQ5LTEuMjAzLDEuNzA2LS42MjYsMi41ODRsMi4xNTksMy4yOWMuOTI5LDEuNDA3LDIuNTc0LDIuMzQzLDQuNDQ4LDIuMzQzaDEuOTQ0YzIuOSwwLDUuMjUtMi4yMzksNS4yNS01di02LjMyOFptLS42NTYsLjcwM3Y1LjYyNWMwLDIuNDE2LTIuMDU3LDQuMzc1LTQuNTk0LDQuMzc1aC0xLjk0NGMtMS41OSwwLTMuMDQ1LS43NjYtMy44OTEtMi4wNDlsLTIuMTU5LTMuMjljLS4xODYtLjI4My0uMjQ1LS42MTgtLjE2Ni0uOTQ0LC4wNzktLjMyNSwuMjg2LS42MDIsLjU4My0uNzc5LC4yMDktLjEyNCwuNDQ5LS4xOSwuNjk0LS4xOSwuMDcxLDAsLjE0MywuMDA2LC4yMTQsLjAxN2wuNzYzLC4xMTl2LS43MzZzMC0zLjEzNCwwLTMuMTM0YzAtLjU0NiwuNDQtMS4wMTcsMS4wMTMtMS4wNDQsLjYxMi0uMDI5LDEuMTIsLjQzNywxLjEyLDEuMDE0di4zOTFjMCwuMTczLC4xNDcsLjMxMiwuMzI4LC4zMTJoMGMuMTgxLDAsLjMyOC0uMTQsLjMyOC0uMzEydi0xLjI5OWMwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHYxLjQ4NGMwLC4xNzMsLjE0NywuMzEyLC4zMjgsLjMxMmgwYy4xODEsMCwuMzI4LS4xNCwuMzI4LS4zMTJ2LS44M2MwLS41NDYsLjQ0LTEuMDE3LDEuMDEzLTEuMDQ0LC42MTItLjAyOSwxLjEyLC40MzcsMS4xMiwxLjAxNHYxLjAxNmMwLC4xNzMsLjE0NywuMzEyLC4zMjgsLjMxMmgwYy4xODEsMCwuMzI4LS4xNCwuMzI4LS4zMTJ2LS4zNjFjMC0uNTQ2LC40NC0xLjAxNywxLjAxMy0xLjA0NCwuNjEyLS4wMjksMS4xMiwuNDM3LDEuMTIsMS4wMTR2LjcwM1oiLz48L2c+PC9nPjwvc3ZnPg=='),
1783
- auto;
1784
- }
1785
-
1786
1816
  .cursor-zoom:hover {
1787
1817
  cursor: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+DQogIDxnIGlkPSJhIiBkYXRhLW5hbWU9IkZSQU1FUyI+DQogICAgPGcgaWQ9ImIiIGRhdGEtbmFtZT0iZnJhbWUiPg0KICAgICAgPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIi8+DQogICAgPC9nPg0KICA8L2c+DQogIDxnIGlkPSJjIiBkYXRhLW5hbWU9IklDT05TIj4NCiAgICA8cGF0aCBpZD0iZCIgZGF0YS1uYW1lPSJQYXRoIDE1MDc4IiBkPSJNMTQsNC43ODFjLS4wNTYsMC0uMTEyLC4wMDMtLjE2NywuMDA4cy0uMTExLC4wMTMtLjE2NSwuMDI0LS4xMDgsLjAyNC0uMTYxLC4wMzljLS4wNTMsLjAxNi0uMTA0LC4wMzQtLjE1NSwuMDU1bC00LjIyMSwxLjc2Yy0uMTU0LC4wNjMtLjI5NiwuMTUzLS40MTksLjI2NS0uMTA4LC4wOTktLjE5MywuMjE5LS4yNTEsLjM1Mi0uMDU0LC4xMjUtLjA3NiwuMjYxLS4wNjUsLjM5NywuMDE0LC4xNDIsLjA2NCwuMjc3LC4xNDUsLjM5NCwuMDU5LC4wODYsLjEzMSwuMTYzLC4yMTIsLjIyOCwuMDg1LC4wNjgsLjE3OSwuMTI1LC4yNzgsLjE2OSwuMTA0LC4wNDcsLjIxMywuMDgyLC4zMjUsLjEwNSwuMTE2LC4wMjQsLjIzNCwuMDM2LC4zNTIsLjAzNiwuMDU3LDAsLjExNC0uMDAzLC4xNzItLjAwOHMuMTE1LS4wMTQsLjE3MS0uMDI1Yy4wNTctLjAxMSwuMTEzLS4wMjUsLjE2OS0uMDQyLC4wNTYtLjAxNywuMTExLS4wMzcsLjE2NS0uMDZsMi4yNTgtLjk2NS0uNzcsMTEuOTU2LTMuMzA3LTEuNzE3Yy0uMDU5LS4wMy0uMTE5LS4wNTctLjE4MS0uMDgtLjA2Mi0uMDIzLS4xMjUtLjA0MS0uMTg5LS4wNTYtLjA2NC0uMDE1LS4xMjgtLjAyNi0uMTkzLS4wMzMtLjA2NS0uMDA3LS4xMy0uMDExLS4xOTYtLjAxMS0uMTI3LDAtLjI1NCwuMDE0LS4zNzgsLjA0LS4xMjQsLjAyNi0uMjQ0LC4wNjYtLjM1OSwuMTE4LS4xMTQsLjA1Mi0uMjIzLC4xMTYtLjMyMiwuMTkzLS4xLC4wNzYtLjE4OSwuMTY1LS4yNjYsLjI2NC0uMTExLC4xNDEtLjE5MSwuMzA0LS4yMzQsLjQ3OS0uMDM5LC4xNjItLjA0LC4zMzEtLjAwNCwuNDk0LC4wMzcsLjE2NSwuMTExLC4zMTksLjIxNiwuNDUyLC4xMTUsLjE0NSwuMjYsLjI2NSwuNDI1LC4zNTFsNi4zMDksMy4zNjhjLjA2MiwuMDMzLC4xMjYsLjA2MiwuMTkyLC4wODcsLjA2NiwuMDI1LC4xMzMsLjA0NiwuMjAxLC4wNjIsLjI3NCwuMDY2LC41NiwuMDY2LC44MzQsMCwuMDY4LS4wMTcsLjEzNS0uMDM3LC4yMDEtLjA2MiwuMDY2LS4wMjUsLjEzLS4wNTQsLjE5Mi0uMDg3bDYuMzA3LTMuMzY4Yy4xNjQtLjA4NiwuMzA5LS4yMDYsLjQyNC0uMzUxLC4xMDUtLjEzMywuMTc4LS4yODcsLjIxNi0uNDUyLC4wMzYtLjE2MywuMDM1LS4zMzItLjAwNC0uNDk0LS4wNDMtLjE3NC0uMTIyLS4zMzgtLjIzNC0uNDc5LS4wNzctLjA5OS0uMTY3LS4xODgtLjI2Ni0uMjY0LS4xLS4wNzYtLjIwOC0uMTQxLS4zMjItLjE5My0uMTE1LS4wNTItLjIzNi0uMDkyLS4zNTktLjExOC0uMTI0LS4wMjctLjI1MS0uMDQtLjM3OC0uMDQtLjA2NSwwLS4xMzEsLjAwNC0uMTk2LC4wMTEtLjA2NSwuMDA3LS4xMywuMDE4LS4xOTMsLjAzMy0uMDY0LC4wMTUtLjEyNywuMDM0LS4xODksLjA1Ni0uMDYyLC4wMjMtLjEyMiwuMDQ5LS4xODEsLjA4bC0zLjMwNywxLjcxNy0uNzcyLTExLjk1NywyLjI1OCwuOTY1Yy4wNTQsLjAyMywuMTA5LC4wNDMsLjE2NSwuMDYsLjA1NiwuMDE3LC4xMTIsLjAzMSwuMTY5LC4wNDIsLjA1NywuMDExLC4xMTQsLjAyLC4xNzEsLjAyNXMuMTE1LC4wMDgsLjE3MiwuMDA4Yy4xMTgsMCwuMjM2LS4wMTIsLjM1Mi0uMDM2LC4xMTItLjAyMywuMjIxLS4wNTgsLjMyNS0uMTA1LC4wOTktLjA0NCwuMTkzLS4xMDEsLjI3OC0uMTY5LC4wODItLjA2NSwuMTUzLS4xNDIsLjIxMi0uMjI4LC4wODEtLjExNywuMTMxLS4yNTMsLjE0NS0uMzk0LC4wMTItLjEzNS0uMDExLS4yNzEtLjA2NC0uMzk2LS4wNTgtLjEzNC0uMTQ0LS4yNTQtLjI1Mi0uMzUyLS4xMjMtLjExMi0uMjY1LS4yMDItLjQxOS0uMjY1bC00LjIyMS0xLjc2MWMtLjA1MS0uMDIxLS4xMDItLjA0LS4xNTUtLjA1NS0uMDUyLS4wMTYtLjEwNi0uMDI5LS4xNjEtLjAzOXMtLjEwOS0uMDE4LS4xNjUtLjAyNC0uMTExLS4wMDgtLjE2Ny0uMDA4IiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSIuNSIvPg0KICAgIDxnPg0KICAgICAgPHBhdGggZD0iTTEuMDA3LDUuNzVjLS4zNzIsMC0uNzU3LS4yODEtLjc1Ny0uNzUyVjFDLjI1LC41ODcsLjU4NiwuMjUsMSwuMjVoMy45OThjLjM2OSwwLC42LC4yMzksLjY5MywuNDYzcy4wOTksLjU1Ny0uMTYzLC44MTdMMS41Myw1LjUyOGMtLjE4MywuMTg0LS4zODYsLjIyMi0uNTIzLC4yMjJaIiBmaWxsPSIjZmZmIi8+DQogICAgICA8cGF0aCBkPSJNNC45OTgsLjVjLjMxLDAsLjQzMiwuMjM2LC40NjIsLjMwOXMuMTExLC4zMjYtLjEwOCwuNTQ1TDEuMzU0LDUuMzUyYy0uMTIzLC4xMjMtLjI1NiwuMTQ4LS4zNDYsLjE0OC0uMjUsMC0uNTA3LS4xODgtLjUwNy0uNTAyVjFjMC0uMjc2LC4yMjQtLjUsLjUtLjVoMy45OThtMC0uNUgxQy40NDgsMCwwLC40NDgsMCwxdjMuOTk4YzAsLjYwMywuNDkzLDEuMDAyLDEuMDA3LDEuMDAyLC4yNDYsMCwuNDk2LS4wOTEsLjctLjI5NUw1LjcwNSwxLjcwN2MuNjMtLjYzLC4xODQtMS43MDctLjcwNy0xLjcwN2gwWiIgZmlsbD0iIzIxMjMyOSIvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+'),
1788
1818
  auto;
@@ -2,6 +2,7 @@ import * as THREE from 'three';
2
2
  export interface IInputAdapter {
3
3
  init: () => void;
4
4
  toggleOrthographic: () => void;
5
+ toggleCameraOrbitMode: () => void;
5
6
  resetCamera: () => void;
6
7
  clearSelection: () => void;
7
8
  frameCamera: () => void;
@@ -72,7 +72,7 @@ export declare class KeyboardHandler extends BaseInputHandler {
72
72
  * @param code The event.code of the key.
73
73
  * @param handler Callback invoked on key up.
74
74
  */
75
- registerKeyUp(code: string, mode: CallbackMode, handler: () => void): void;
75
+ registerKeyUp(code: string | string[], mode: CallbackMode, handler: () => void): void;
76
76
  private registerKey;
77
77
  /**
78
78
  * Internal key down event handler.
@@ -13,12 +13,14 @@ export declare class MouseHandler extends BaseInputHandler {
13
13
  onClick: (position: THREE.Vector2, ctrl: boolean) => void;
14
14
  onDoubleClick: (position: THREE.Vector2) => void;
15
15
  onWheel: (value: number, ctrl: boolean) => void;
16
+ onContextMenu: (position: THREE.Vector2) => void;
16
17
  constructor(canvas: HTMLCanvasElement);
17
18
  protected addListeners(): void;
18
19
  dispose(): void;
19
20
  private handlePointerDown;
20
21
  private handlePointerUp;
21
22
  private handleMouseClick;
23
+ private handleContextMenu;
22
24
  private handlePointerMove;
23
25
  private handleDoubleClick;
24
26
  private onMouseScroll;
@@ -107,10 +107,10 @@ export declare class Camera implements ICamera {
107
107
  /**
108
108
  * Frames specific nodes of a Vim model in the camera view
109
109
  * @param vim - The Vim model containing the nodes to frame
110
- * @param nodes - Array of node indices to frame, or 'all' to frame the entire model
110
+ * @param elements - Array of element indices to frame, or 'all' to frame the entire model
111
111
  * @param blendTime - Duration of the camera animation in seconds (defaults to 0.5)
112
112
  * @returns Promise that resolves when the framing animation is complete
113
113
  */
114
- frameVim(vim: Vim, nodes: number[] | 'all', blendTime?: number): Promise<Segment | undefined>;
114
+ frameVim(vim: Vim, elements: number[] | 'all', blendTime?: number): Promise<Segment | undefined>;
115
115
  frameObject(object: Element3D, blendTime?: number): Promise<Segment | undefined>;
116
116
  }
@@ -1,6 +1,6 @@
1
1
  import { RpcSafeClient } from './rpcSafeClient';
2
2
  import { RemoteColor } from './remoteColor';
3
- import { RGBA32 } from './rpcTypes';
3
+ import * as THREE from 'three';
4
4
  /**
5
5
  * Manages the creation, caching, and deletion of color instances.
6
6
  * Handles batched deletion of colors to optimize RPC calls.
@@ -21,14 +21,14 @@ export declare class ColorManager {
21
21
  * @param hex - The RGBA32 color value
22
22
  * @returns Promise resolving to a ColorHandle, or undefined if creation fails
23
23
  */
24
- getColor(hex: RGBA32): Promise<RemoteColor | undefined>;
24
+ getColor(color: THREE.Color): Promise<RemoteColor | undefined>;
25
25
  /**
26
26
  * Creates or retrieves cached color instances for multiple hex values.
27
- * @param c - Array of RGBA32 color values
27
+ * @param colors - Array of color values or undefined for no color
28
28
  * @returns Promise resolving to an array of ColorHandles in the same order as input, or undefined if creation fails
29
29
  * @remarks Duplicate hex values will be mapped to the same color instance for efficiency
30
30
  */
31
- getColors(c: RGBA32[]): Promise<RemoteColor[]>;
31
+ getColors(colors: (THREE.Color | undefined)[]): Promise<RemoteColor[]>;
32
32
  /**
33
33
  * Retrieves a color instance by its unique identifier.
34
34
  * @param id - The unique identifier of the color
@@ -1,7 +1,7 @@
1
1
  import { IVimElement } from "../shared/vim";
2
2
  import { VisibilityState } from "./visibility";
3
- import { Box3, RGBA32 } from "./rpcTypes";
4
3
  import { Vim } from "./vim";
4
+ import * as THREE from "three";
5
5
  /**
6
6
  * Represents a single 3D element within a `Vim` model.
7
7
  * Provides access to per-instance state, color, and bounding box.
@@ -33,12 +33,12 @@ export declare class Element3D implements IVimElement {
33
33
  /**
34
34
  * Gets or sets the color override of the element.
35
35
  */
36
- get color(): RGBA32 | undefined;
37
- set color(color: RGBA32 | undefined);
36
+ get color(): THREE.Color | undefined;
37
+ set color(color: THREE.Color | undefined);
38
38
  /**
39
39
  * Computes and returns the bounding box of the element.
40
40
  * Returns undefined if the element is abstract.
41
41
  * @returns A promise resolving to the element's bounding box.
42
42
  */
43
- getBoundingBox(): Promise<Box3 | undefined>;
43
+ getBoundingBox(): Promise<THREE.Box3 | undefined>;
44
44
  }
@@ -1,6 +1,6 @@
1
1
  import "./style.css";
2
2
  export * from './viewer';
3
- export { RGB, RGBA, RGBA32, Segment, type SectionBoxState, type HitCheckResult, type VimStatus } from './rpcTypes';
3
+ export { Segment, type SectionBoxState, type HitCheckResult, type VimStatus } from './rpcTypes';
4
4
  export { materialHandles, MaterialHandles, type MaterialHandle, } from './rpcClient';
5
5
  export { InputMode, VimLoadingStatus } from './rpcSafeClient';
6
6
  export { VisibilityState } from './visibility';
@@ -1,5 +1,5 @@
1
- import { RGBA32 } from './rpcTypes';
2
1
  import { ColorManager } from './colorManager';
2
+ import * as THREE from 'three';
3
3
  /**
4
4
  * Represents a handle to a color in the color management system.
5
5
  * This class provides access to color components and manages the lifecycle of color instances.
@@ -9,7 +9,7 @@ export declare class RemoteColor {
9
9
  /** Unique identifier for the color instance */
10
10
  readonly id: number;
11
11
  /** The RGBA color value */
12
- readonly color: RGBA32;
12
+ readonly color: THREE.Color;
13
13
  private _disposed;
14
14
  /**
15
15
  * Indicates whether the color handle has been disposed.
@@ -21,33 +21,13 @@ export declare class RemoteColor {
21
21
  * @returns {number} The color value as a hexadecimal number.
22
22
  */
23
23
  get hex(): number;
24
- /**
25
- * Gets the red component of the color.
26
- * @returns {number} The red component value in the range [0-255].
27
- */
28
- get r(): number;
29
- /**
30
- * Gets the green component of the color.
31
- * @returns {number} The green component value in the range [0-255].
32
- */
33
- get g(): number;
34
- /**
35
- * Gets the blue component of the color.
36
- * @returns {number} The blue component value in the range [0-255].
37
- */
38
- get b(): number;
39
- /**
40
- * Gets the alpha (opacity) component of the color.
41
- * @returns {number} The alpha component value in the range [0-255].
42
- */
43
- get a(): number;
44
24
  /**
45
25
  * Creates a new ColorHandle instance.
46
26
  * @param {RGBA32} color - The RGBA color value.
47
27
  * @param {number} serverId - The unique identifier assigned by the server.
48
28
  * @param {ColorManager} manager - The color manager instance that manages this color handle.
49
29
  */
50
- constructor(color: RGBA32, serverId: number, manager: ColorManager);
30
+ constructor(color: THREE.Color, serverId: number, manager: ColorManager);
51
31
  /**
52
32
  * Disposes of the color handle and releases associated resources.
53
33
  * Once disposed, the color handle cannot be used anymore.
@@ -2,14 +2,14 @@ import { ISignal } from "ste-signals";
2
2
  import * as THREE from "three";
3
3
  import { ILogger } from "./logger";
4
4
  import { RpcSafeClient, SceneSettings } from "./rpcSafeClient";
5
- import { RGBA } from "./rpcTypes";
6
5
  import { ClientStreamError } from "./socketClient";
7
6
  /**
8
7
  * Render settings that extend SceneSettings with additional rendering-specific properties
9
8
  */
10
9
  export type RenderSettings = SceneSettings & {
11
10
  /** Color used for ghost/transparent rendering */
12
- ghostColor: RGBA;
11
+ ghostColor: THREE.Color;
12
+ ghostOpacity: number;
13
13
  };
14
14
  /**
15
15
  * Default rendering settings
@@ -20,13 +20,14 @@ export declare const defaultRenderSettings: RenderSettings;
20
20
  */
21
21
  export interface IRenderer {
22
22
  onSceneUpdated: ISignal;
23
- ghostColor: RGBA;
23
+ ghostColor: THREE.Color;
24
+ ghostOpacity: number;
24
25
  hdrScale: number;
25
26
  toneMappingWhitePoint: number;
26
27
  hdrBackgroundScale: number;
27
28
  hdrBackgroundSaturation: number;
28
29
  backgroundBlur: number;
29
- backgroundColor: RGBA;
30
+ backgroundColor: THREE.Color;
30
31
  getBoundingBox(): Promise<THREE.Box3 | undefined>;
31
32
  }
32
33
  /**
@@ -60,9 +61,10 @@ export declare class Renderer implements IRenderer {
60
61
  notifySceneUpdated(): void;
61
62
  /**
62
63
  * Gets the ghost color used for transparent rendering
63
- * @returns Current ghost color as RGBA
64
+ * @returns Current ghost color as a THREE.Color
64
65
  */
65
- get ghostColor(): RGBA;
66
+ get ghostColor(): THREE.Color;
67
+ get ghostOpacity(): number;
66
68
  /**
67
69
  * Gets the tone mapping white point value
68
70
  * @returns Current tone mapping white point
@@ -92,12 +94,13 @@ export declare class Renderer implements IRenderer {
92
94
  * Gets the background color
93
95
  * @returns Current background color as RGBA
94
96
  */
95
- get backgroundColor(): RGBA;
97
+ get backgroundColor(): THREE.Color;
96
98
  /**
97
99
  * Updates the ghost color used for transparent rendering
98
- * @param value - New ghost color as RGBA
100
+ * @param value - New ghost color as THREE.Color
99
101
  */
100
- set ghostColor(value: RGBA);
102
+ set ghostColor(value: THREE.Color);
103
+ set ghostOpacity(value: number);
101
104
  /**
102
105
  * Sets the tone mapping white point value
103
106
  * @param value - New tone mapping white point value
@@ -125,9 +128,9 @@ export declare class Renderer implements IRenderer {
125
128
  set backgroundBlur(value: number);
126
129
  /**
127
130
  * Sets the background color
128
- * @param value - New background color as RGBA
131
+ * @param value - New background color as THREE.Color
129
132
  */
130
- set backgroundColor(value: RGBA);
133
+ set backgroundColor(value: THREE.Color);
131
134
  getBoundingBox(): Promise<THREE.Box3 | undefined>;
132
135
  /**
133
136
  * Requests an update to be performed on the next animation frame.
@@ -32,27 +32,30 @@ export declare class RpcClient {
32
32
  get url(): string;
33
33
  constructor(_socket: SocketClient);
34
34
  readonly API_VERSION = "6.0.0";
35
- RPCClearMaterialOverrides(componentHandle: number): void;
35
+ RPCClearMaterialOverridesForElements(vimIndex: number, elementIndices: number[]): void;
36
+ RPCClearMaterialOverridesForScene(): void;
37
+ RPCClearMaterialOverridesForVim(vimIndex: number): void;
36
38
  RPCCreateMaterialInstances(materialHandle: number, smoothness: number, colors: RpcTypes.RGBA32[]): Promise<number>;
37
39
  RPCCreateText(position: RpcTypes.Vector3, color: RpcTypes.RGBA32, text: string): Promise<number>;
38
- RPCDestroyMaterialInstances(materialInstanceHandle: number[]): void;
40
+ RPCDestroyMaterialInstances(materialInstanceHandles: number[]): void;
39
41
  RPCDestroyText(componentHandle: number): void;
40
42
  RPCEnableSectionBox(value: boolean): void;
41
43
  RPCFrameAABB(box: RpcTypes.Box3, blendTime: number): Promise<RpcTypes.Segment>;
42
- RPCFrameAll(blendTime: number): Promise<RpcTypes.Segment>;
43
- RPCFrameElements(componentHandle: number, elementIndices: number[], blendTime: number): Promise<RpcTypes.Segment>;
44
- RPCFrameVim(componentHandle: number, blendTime: number): Promise<RpcTypes.Segment>;
45
- RPCGetAABBForAll(): Promise<RpcTypes.Box3>;
46
- RPCGetAABBForElements(componentHandle: number, elementIndices: number[]): Promise<RpcTypes.Box3>;
47
- RPCGetAABBForVim(componentHandle: number): Promise<RpcTypes.Box3>;
44
+ RPCFrameElements(vimIndex: number, elementIndices: number[], blendTime: number): Promise<RpcTypes.Segment>;
45
+ RPCFrameScene(blendTime: number): Promise<RpcTypes.Segment>;
46
+ RPCFrameVim(vimIndex: number, blendTime: number): Promise<RpcTypes.Segment>;
47
+ RPCGetAABBForElements(vimIndex: number, elementIndices: number[]): Promise<RpcTypes.Box3>;
48
+ RPCGetAABBForScene(): Promise<RpcTypes.Box3>;
49
+ RPCGetAABBForVim(vimIndex: number): Promise<RpcTypes.Box3>;
48
50
  RPCGetAPIVersion(): Promise<string>;
49
- RPCGetCameraView(): Promise<RpcTypes.Segment>;
50
- RPCGetElementCount(componentHandle: number): Promise<number>;
51
- RPCGetElementIds(componentHandle: number): Promise<bigint[]>;
51
+ RPCGetCameraPose(): Promise<RpcTypes.Segment>;
52
+ RPCGetElementCountForScene(): Promise<number>;
53
+ RPCGetElementCountForVim(vimIndex: number): Promise<number>;
54
+ RPCGetElementIds(vimIndex: number): Promise<bigint[]>;
52
55
  RPCGetLastError(): Promise<string>;
53
- RPCGetRoomElements(componentHandle: number): Promise<number[]>;
56
+ RPCGetRoomElements(vimIndex: number): Promise<number[]>;
54
57
  RPCGetSectionBox(): Promise<RpcTypes.SectionBoxState>;
55
- RPCGetVimLoadingState(componentHandle: number): Promise<RpcTypes.VimStatus>;
58
+ RPCGetVimLoadingState(vimIndex: number): Promise<RpcTypes.VimStatus>;
56
59
  RPCKeyEvent(keyCode: number, down: boolean): void;
57
60
  RPCLoadVim(fileName: string): Promise<number>;
58
61
  RPCLoadVimURL(url: string, authToken: string): Promise<number>;
@@ -65,19 +68,19 @@ export declare class RpcClient {
65
68
  RPCPerformHitTest(pos: RpcTypes.Vector2): Promise<RpcTypes.HitCheckResult>;
66
69
  RPCSetCameraAspectRatio(width: number, height: number): void;
67
70
  RPCSetCameraMode(orbit: boolean): void;
71
+ RPCSetCameraPose(state: RpcTypes.Segment, blendTime: number): void;
68
72
  RPCSetCameraPosition(position: RpcTypes.Vector3, blendTime: number): void;
69
73
  RPCSetCameraSpeed(speed: number): void;
70
74
  RPCSetCameraTarget(target: RpcTypes.Vector3, blendTime: number): void;
71
- RPCSetCameraView(state: RpcTypes.Segment, blendTime: number): void;
72
75
  RPCSetGhostColor(ghostColor: RpcTypes.RGBA): void;
73
76
  RPCSetLighting(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RpcTypes.RGBA): void;
74
- RPCSetMaterialOverrides(componentHandle: number, elementIndices: number[], materialInstanceHandles: number[]): void;
77
+ RPCSetMaterialOverridesForElements(vimIndex: number, elementIndices: number[], materialInstanceHandles: number[]): void;
75
78
  RPCSetSectionBox(state: RpcTypes.SectionBoxState): void;
76
- RPCSetStateVim(componentHandle: number, state: number): void;
77
- RPCSetStateElements(componentHandle: number, elementIndices: number[], state: number): void;
78
- RPCSetStatesElements(componentHandle: number, elementIndices: number[], states: number[]): void;
79
+ RPCSetStateElements(vimIndex: number, elementIndices: number[], state: number): void;
80
+ RPCSetStateScene(state: number): void;
81
+ RPCSetStateVim(vimIndex: number, state: number): void;
82
+ RPCSetStatesElements(vimIndex: number, elementIndices: number[], states: number[]): void;
79
83
  RPCStartScene(toneMappingWhitePoint: number, hdrScale: number, hdrBackgroundScale: number, hdrBackgroundSaturation: number, backgroundBlur: number, backgroundColor: RpcTypes.RGBA): Promise<boolean>;
80
84
  RPCTriggerRenderDocCapture(): void;
81
85
  RPCUnloadAll(): void;
82
- RPCUnloadVim(componentHandle: number): void;
83
86
  }