vim-web 0.5.0-dev.16 → 0.5.0-dev.18
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/dist/style.css +37 -7
- package/dist/types/core-viewers/ultra/viewport.d.ts +6 -0
- package/dist/types/core-viewers/webgl/loader/mesh.d.ts +3 -1
- package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +4 -2
- package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +5 -0
- package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +1 -0
- package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +7 -0
- package/dist/types/core-viewers/webgl/viewer/viewport.d.ts +1 -1
- package/dist/types/react-viewers/bim/bimPanel.d.ts +3 -3
- package/dist/types/react-viewers/errors/errorStyle.d.ts +1 -1
- package/dist/types/react-viewers/helpers/reactUtils.d.ts +2 -1
- package/dist/types/react-viewers/helpers/utils.d.ts +8 -0
- package/dist/types/react-viewers/panels/axesPanel.d.ts +2 -1
- package/dist/types/react-viewers/panels/index.d.ts +1 -0
- package/dist/types/react-viewers/panels/isolationPanel.d.ts +2 -0
- package/dist/types/react-viewers/panels/sidePanel.d.ts +1 -1
- package/dist/types/react-viewers/settings/anySettings.d.ts +7 -0
- package/dist/types/react-viewers/settings/index.d.ts +1 -1
- package/dist/types/react-viewers/settings/settingsInputBox.d.ts +4 -0
- package/dist/types/react-viewers/settings/settingsItem.d.ts +30 -0
- package/dist/types/react-viewers/settings/settingsKeys.d.ts +46 -0
- package/dist/types/react-viewers/settings/settingsPanel.d.ts +5 -4
- package/dist/types/react-viewers/settings/settingsPanelContent.d.ts +6 -0
- package/dist/types/react-viewers/settings/settingsState.d.ts +11 -11
- package/dist/types/react-viewers/settings/settingsStorage.d.ts +3 -3
- package/dist/types/react-viewers/settings/settingsSubtitle.d.ts +2 -0
- package/dist/types/react-viewers/settings/settingsToggle.d.ts +11 -0
- package/dist/types/react-viewers/state/controlBarState.d.ts +41 -7
- package/dist/types/react-viewers/state/sharedIsolation.d.ts +2 -0
- package/dist/types/react-viewers/ultra/controlBar.d.ts +3 -1
- package/dist/types/react-viewers/ultra/index.d.ts +1 -0
- package/dist/types/react-viewers/ultra/settings.d.ts +10 -0
- package/dist/types/react-viewers/ultra/settingsPanel.d.ts +5 -0
- package/dist/types/react-viewers/ultra/viewer.d.ts +3 -1
- package/dist/types/react-viewers/ultra/viewerRef.d.ts +3 -0
- package/dist/types/react-viewers/urls.d.ts +0 -1
- package/dist/types/react-viewers/webgl/index.d.ts +1 -0
- package/dist/types/react-viewers/webgl/loading.d.ts +2 -2
- package/dist/types/react-viewers/webgl/settings.d.ts +36 -0
- package/dist/types/react-viewers/webgl/settingsPanel.d.ts +12 -0
- package/dist/types/react-viewers/webgl/viewer.d.ts +3 -3
- package/dist/types/react-viewers/webgl/viewerRef.d.ts +12 -5
- package/dist/vim-web.iife.js +1047 -481
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +1047 -481
- package/dist/vim-web.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/react-viewers/settings/settings.d.ts +0 -61
package/dist/vim-web.iife.js
CHANGED
|
@@ -48867,19 +48867,38 @@ void main() {
|
|
|
48867
48867
|
return new InsertableSubmesh(this, index2);
|
|
48868
48868
|
}
|
|
48869
48869
|
/**
|
|
48870
|
-
|
|
48871
|
-
|
|
48870
|
+
* Sets the material for this mesh.
|
|
48871
|
+
* Set to undefined to reset to original materials.
|
|
48872
|
+
*/
|
|
48872
48873
|
setMaterial(value) {
|
|
48873
|
-
if (this._material === value) return;
|
|
48874
48874
|
if (this.ignoreSceneMaterial) return;
|
|
48875
|
-
|
|
48875
|
+
const base = this._material;
|
|
48876
|
+
let mat;
|
|
48877
|
+
if (Array.isArray(value)) {
|
|
48878
|
+
mat = this._mergeMaterials(value, base);
|
|
48879
|
+
} else {
|
|
48880
|
+
mat = value ?? base;
|
|
48881
|
+
}
|
|
48882
|
+
this.mesh.material = mat;
|
|
48876
48883
|
this.mesh.geometry.clearGroups();
|
|
48877
|
-
if (
|
|
48878
|
-
|
|
48884
|
+
if (Array.isArray(mat)) {
|
|
48885
|
+
mat.forEach((_m, i2) => {
|
|
48879
48886
|
this.mesh.geometry.addGroup(0, Infinity, i2);
|
|
48880
48887
|
});
|
|
48881
48888
|
}
|
|
48882
48889
|
}
|
|
48890
|
+
_mergeMaterials(value, base) {
|
|
48891
|
+
const baseArr = Array.isArray(base) ? base : [base];
|
|
48892
|
+
const result = [];
|
|
48893
|
+
for (const v of value) {
|
|
48894
|
+
if (v === void 0) {
|
|
48895
|
+
result.push(...baseArr);
|
|
48896
|
+
} else {
|
|
48897
|
+
result.push(v);
|
|
48898
|
+
}
|
|
48899
|
+
}
|
|
48900
|
+
return result;
|
|
48901
|
+
}
|
|
48883
48902
|
}
|
|
48884
48903
|
class InstancedSubmesh {
|
|
48885
48904
|
constructor(mesh, index2) {
|
|
@@ -48966,17 +48985,39 @@ void main() {
|
|
|
48966
48985
|
}
|
|
48967
48986
|
return submeshes;
|
|
48968
48987
|
}
|
|
48988
|
+
/**
|
|
48989
|
+
* Sets the material for this mesh.
|
|
48990
|
+
* Set to undefined to reset to original materials.
|
|
48991
|
+
*/
|
|
48969
48992
|
setMaterial(value) {
|
|
48970
|
-
if (this._material === value) return;
|
|
48971
48993
|
if (this.ignoreSceneMaterial) return;
|
|
48972
|
-
|
|
48994
|
+
const base = this._material;
|
|
48995
|
+
let mat;
|
|
48996
|
+
if (Array.isArray(value)) {
|
|
48997
|
+
mat = this._mergeMaterials(value, base);
|
|
48998
|
+
} else {
|
|
48999
|
+
mat = value ?? base;
|
|
49000
|
+
}
|
|
49001
|
+
this.mesh.material = mat;
|
|
48973
49002
|
this.mesh.geometry.clearGroups();
|
|
48974
|
-
if (
|
|
48975
|
-
|
|
49003
|
+
if (Array.isArray(mat)) {
|
|
49004
|
+
mat.forEach((_m, i2) => {
|
|
48976
49005
|
this.mesh.geometry.addGroup(0, Infinity, i2);
|
|
48977
49006
|
});
|
|
48978
49007
|
}
|
|
48979
49008
|
}
|
|
49009
|
+
_mergeMaterials(value, base) {
|
|
49010
|
+
const baseArr = Array.isArray(base) ? base : [base];
|
|
49011
|
+
const result = [];
|
|
49012
|
+
for (const v of value) {
|
|
49013
|
+
if (v === void 0) {
|
|
49014
|
+
result.push(...baseArr);
|
|
49015
|
+
} else {
|
|
49016
|
+
result.push(v);
|
|
49017
|
+
}
|
|
49018
|
+
}
|
|
49019
|
+
return result;
|
|
49020
|
+
}
|
|
48980
49021
|
computeBoundingBoxes() {
|
|
48981
49022
|
this.mesh.geometry.computeBoundingBox();
|
|
48982
49023
|
const boxes = new Array(this.mesh.count);
|
|
@@ -50116,6 +50157,9 @@ void main() {
|
|
|
50116
50157
|
get index() {
|
|
50117
50158
|
return this._submesh.index;
|
|
50118
50159
|
}
|
|
50160
|
+
get isRoom() {
|
|
50161
|
+
return false;
|
|
50162
|
+
}
|
|
50119
50163
|
/**
|
|
50120
50164
|
* Updates the underlying submesh and rebinds all attributes to the new mesh.
|
|
50121
50165
|
* @param mesh - The new submesh to bind to this marker.
|
|
@@ -55887,7 +55931,7 @@ void main() {
|
|
|
55887
55931
|
/**
|
|
55888
55932
|
* Resizes the canvas and updates the camera to match new parent dimensions.
|
|
55889
55933
|
*/
|
|
55890
|
-
|
|
55934
|
+
resizeToParent() {
|
|
55891
55935
|
this._onResize.dispatch();
|
|
55892
55936
|
}
|
|
55893
55937
|
/**
|
|
@@ -56979,6 +57023,10 @@ void main() {
|
|
|
56979
57023
|
* Indicates whether the scene should be re-rendered on change only.
|
|
56980
57024
|
*/
|
|
56981
57025
|
__publicField(this, "onDemand");
|
|
57026
|
+
/**
|
|
57027
|
+
* The material that will be used when setting model material to undefined.
|
|
57028
|
+
*/
|
|
57029
|
+
__publicField(this, "defaultModelMaterial");
|
|
56982
57030
|
__publicField(this, "fitViewport", () => {
|
|
56983
57031
|
const size = this._viewport.getParentSize();
|
|
56984
57032
|
this.renderer.setPixelRatio(window.devicePixelRatio);
|
|
@@ -57050,11 +57098,14 @@ void main() {
|
|
|
57050
57098
|
this._scene.threeScene.background = color;
|
|
57051
57099
|
this.needsUpdate = true;
|
|
57052
57100
|
}
|
|
57101
|
+
/**
|
|
57102
|
+
* Sets the material used to render models. If set to undefined, the default model or mesh material is used.
|
|
57103
|
+
*/
|
|
57053
57104
|
get modelMaterial() {
|
|
57054
57105
|
return this._scene.modelMaterial;
|
|
57055
57106
|
}
|
|
57056
57107
|
set modelMaterial(material) {
|
|
57057
|
-
this._scene.modelMaterial = material;
|
|
57108
|
+
this._scene.modelMaterial = material ?? this.defaultModelMaterial;
|
|
57058
57109
|
}
|
|
57059
57110
|
/**
|
|
57060
57111
|
* Signal dispatched at the end of each frame if the scene was updated, such as visibility changes.
|
|
@@ -60877,6 +60928,12 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
60877
60928
|
this._rpc.RPCSetCameraAspectRatio(this.canvas.offsetWidth, this.canvas.offsetHeight);
|
|
60878
60929
|
}
|
|
60879
60930
|
}
|
|
60931
|
+
/**
|
|
60932
|
+
* Resizes the viewport to match its parent's dimensions
|
|
60933
|
+
*/
|
|
60934
|
+
resizeToParent() {
|
|
60935
|
+
this.update();
|
|
60936
|
+
}
|
|
60880
60937
|
/**
|
|
60881
60938
|
* Cleans up resources by removing resize observer and clearing timeouts
|
|
60882
60939
|
*/
|
|
@@ -63684,50 +63741,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
63684
63741
|
visible,
|
|
63685
63742
|
zoom
|
|
63686
63743
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
63687
|
-
function getDefaultSettings() {
|
|
63688
|
-
return {
|
|
63689
|
-
capacity: {
|
|
63690
|
-
canFollowUrl: true,
|
|
63691
|
-
canGoFullScreen: true,
|
|
63692
|
-
canDownload: true,
|
|
63693
|
-
canReadLocalStorage: true
|
|
63694
|
-
},
|
|
63695
|
-
ui: {
|
|
63696
|
-
logo: true,
|
|
63697
|
-
performance: false,
|
|
63698
|
-
bimTreePanel: true,
|
|
63699
|
-
bimInfoPanel: true,
|
|
63700
|
-
// axesPanel
|
|
63701
|
-
axesPanel: true,
|
|
63702
|
-
orthographic: true,
|
|
63703
|
-
resetCamera: true,
|
|
63704
|
-
// Control bar
|
|
63705
|
-
controlBar: true,
|
|
63706
|
-
// Control bar - cursors
|
|
63707
|
-
orbit: true,
|
|
63708
|
-
lookAround: true,
|
|
63709
|
-
pan: true,
|
|
63710
|
-
zoom: true,
|
|
63711
|
-
zoomWindow: true,
|
|
63712
|
-
// Control bar - camera
|
|
63713
|
-
autoCamera: true,
|
|
63714
|
-
frameScene: true,
|
|
63715
|
-
frameSelection: true,
|
|
63716
|
-
// Control bar - tools
|
|
63717
|
-
sectioningMode: true,
|
|
63718
|
-
measuringMode: true,
|
|
63719
|
-
toggleIsolation: true,
|
|
63720
|
-
// Control bar - settings
|
|
63721
|
-
projectInspector: true,
|
|
63722
|
-
settings: true,
|
|
63723
|
-
help: true,
|
|
63724
|
-
maximise: true
|
|
63725
|
-
}
|
|
63726
|
-
};
|
|
63727
|
-
}
|
|
63728
|
-
function createSettings(settings2) {
|
|
63729
|
-
return settings2 !== void 0 ? deepmerge(getDefaultSettings(), settings2) : getDefaultSettings();
|
|
63730
|
-
}
|
|
63731
63744
|
function getLocalSettings(settings2 = {}) {
|
|
63732
63745
|
try {
|
|
63733
63746
|
const json = localStorage.getItem("viewer.settings");
|
|
@@ -63782,8 +63795,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
63782
63795
|
}
|
|
63783
63796
|
const index$4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
63784
63797
|
__proto__: null,
|
|
63785
|
-
createSettings,
|
|
63786
|
-
getDefaultSettings,
|
|
63787
63798
|
getLocalSettings,
|
|
63788
63799
|
isFalse,
|
|
63789
63800
|
isTrue,
|
|
@@ -67615,7 +67626,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67615
67626
|
}
|
|
67616
67627
|
const Style = style;
|
|
67617
67628
|
const Ids$2 = controlBarIds;
|
|
67618
|
-
function controlBarSectionBox(section, hasSelection) {
|
|
67629
|
+
function controlBarSectionBox(section, hasSelection, settings2) {
|
|
67619
67630
|
return {
|
|
67620
67631
|
id: Ids$2.sectionSectionBox,
|
|
67621
67632
|
style: section.enable.get() ? Style.sectionNoPadStyle : Style.sectionDefaultStyle,
|
|
@@ -67623,6 +67634,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67623
67634
|
buttons: [
|
|
67624
67635
|
{
|
|
67625
67636
|
id: Ids$2.buttonSectionBoxEnable,
|
|
67637
|
+
enabled: () => isTrue(settings2.sectioningEnable),
|
|
67626
67638
|
tip: "Enable Section Box",
|
|
67627
67639
|
isOn: () => section.enable.get(),
|
|
67628
67640
|
style: (on) => Style.buttonExpandStyle(on),
|
|
@@ -67632,7 +67644,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67632
67644
|
{
|
|
67633
67645
|
id: Ids$2.buttonSectionBoxToSelection,
|
|
67634
67646
|
tip: "Fit Section",
|
|
67635
|
-
enabled: () => section.enable.get(),
|
|
67647
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningFitToSelection),
|
|
67636
67648
|
isOn: () => hasSelection,
|
|
67637
67649
|
style: (on) => Style.buttonDisableStyle(on),
|
|
67638
67650
|
action: () => section.sectionSelection.call(),
|
|
@@ -67641,7 +67653,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67641
67653
|
{
|
|
67642
67654
|
id: Ids$2.buttonSectionBoxToScene,
|
|
67643
67655
|
tip: "Reset Section",
|
|
67644
|
-
enabled: () => section.enable.get(),
|
|
67656
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningReset),
|
|
67645
67657
|
style: (on) => Style.buttonDefaultStyle(on),
|
|
67646
67658
|
action: () => section.sectionScene.call(),
|
|
67647
67659
|
icon: sectionBoxReset
|
|
@@ -67649,7 +67661,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67649
67661
|
{
|
|
67650
67662
|
id: Ids$2.buttonSectionBoxVisible,
|
|
67651
67663
|
tip: "Show Section Box",
|
|
67652
|
-
enabled: () => section.enable.get(),
|
|
67664
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningShow),
|
|
67653
67665
|
isOn: () => section.visible.get(),
|
|
67654
67666
|
style: (on) => Style.buttonDefaultStyle(on),
|
|
67655
67667
|
action: () => section.visible.set(!section.visible.get()),
|
|
@@ -67658,7 +67670,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67658
67670
|
{
|
|
67659
67671
|
id: Ids$2.buttonSectionBoxAuto,
|
|
67660
67672
|
tip: "Auto Section",
|
|
67661
|
-
enabled: () => section.enable.get(),
|
|
67673
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningAuto),
|
|
67662
67674
|
isOn: () => section.auto.get(),
|
|
67663
67675
|
style: (on) => Style.buttonDefaultStyle(on),
|
|
67664
67676
|
action: () => section.auto.set(!section.auto.get()),
|
|
@@ -67667,7 +67679,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67667
67679
|
{
|
|
67668
67680
|
id: Ids$2.buttonSectionBoxSettings,
|
|
67669
67681
|
tip: "Section Settings",
|
|
67670
|
-
enabled: () => section.enable.get(),
|
|
67682
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningSettings),
|
|
67671
67683
|
isOn: () => section.showOffsetPanel.get(),
|
|
67672
67684
|
style: (on) => Style.buttonDefaultStyle(on),
|
|
67673
67685
|
action: () => section.showOffsetPanel.set(!section.showOffsetPanel.get()),
|
|
@@ -67685,7 +67697,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67685
67697
|
buttons: [
|
|
67686
67698
|
{
|
|
67687
67699
|
id: Ids$2.buttonCameraOrbit,
|
|
67688
|
-
enabled: () => isTrue(settings2.
|
|
67700
|
+
enabled: () => isTrue(settings2.cursorOrbit),
|
|
67689
67701
|
tip: "Orbit",
|
|
67690
67702
|
action: () => pointer2.onButton(PointerMode$1.ORBIT),
|
|
67691
67703
|
icon: orbit,
|
|
@@ -67694,7 +67706,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67694
67706
|
},
|
|
67695
67707
|
{
|
|
67696
67708
|
id: Ids$2.buttonCameraLook,
|
|
67697
|
-
enabled: () => isTrue(settings2.
|
|
67709
|
+
enabled: () => isTrue(settings2.cursorLookAround),
|
|
67698
67710
|
tip: "Look Around",
|
|
67699
67711
|
action: () => pointer2.onButton(PointerMode$1.LOOK),
|
|
67700
67712
|
icon: look,
|
|
@@ -67703,7 +67715,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67703
67715
|
},
|
|
67704
67716
|
{
|
|
67705
67717
|
id: Ids$2.buttonCameraPan,
|
|
67706
|
-
enabled: () => isTrue(settings2.
|
|
67718
|
+
enabled: () => isTrue(settings2.cursorPan),
|
|
67707
67719
|
tip: "Pan",
|
|
67708
67720
|
action: () => pointer2.onButton(PointerMode$1.PAN),
|
|
67709
67721
|
icon: pan,
|
|
@@ -67712,7 +67724,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67712
67724
|
},
|
|
67713
67725
|
{
|
|
67714
67726
|
id: Ids$2.buttonCameraZoom,
|
|
67715
|
-
enabled: () => isTrue(settings2.
|
|
67727
|
+
enabled: () => isTrue(settings2.cursorZoom),
|
|
67716
67728
|
tip: "Zoom",
|
|
67717
67729
|
action: () => pointer2.onButton(PointerMode$1.ZOOM),
|
|
67718
67730
|
icon: zoom,
|
|
@@ -67722,7 +67734,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67722
67734
|
]
|
|
67723
67735
|
};
|
|
67724
67736
|
}
|
|
67725
|
-
function controlBarMeasure(
|
|
67737
|
+
function controlBarMeasure(measure$1, settings2) {
|
|
67726
67738
|
return {
|
|
67727
67739
|
id: Ids$2.sectionActions,
|
|
67728
67740
|
enable: () => true,
|
|
@@ -67730,7 +67742,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67730
67742
|
buttons: [
|
|
67731
67743
|
{
|
|
67732
67744
|
id: Ids$2.buttonMeasure,
|
|
67733
|
-
enabled: () => isTrue(settings2.
|
|
67745
|
+
enabled: () => isTrue(settings2.measuringMode),
|
|
67734
67746
|
isOn: () => measure$1.active,
|
|
67735
67747
|
tip: "Measuring Mode",
|
|
67736
67748
|
action: () => measure$1.toggle(),
|
|
@@ -67740,6 +67752,23 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67740
67752
|
]
|
|
67741
67753
|
};
|
|
67742
67754
|
}
|
|
67755
|
+
function controlBarSettingsUltra(side, settings$1) {
|
|
67756
|
+
return {
|
|
67757
|
+
id: Ids$2.sectionSettings,
|
|
67758
|
+
enable: () => isTrue(settings$1.ui.settings),
|
|
67759
|
+
style: Style.sectionDefaultStyle,
|
|
67760
|
+
buttons: [
|
|
67761
|
+
{
|
|
67762
|
+
id: Ids$2.buttonSettings,
|
|
67763
|
+
enabled: () => isTrue(settings$1.ui.settings),
|
|
67764
|
+
tip: "Settings",
|
|
67765
|
+
action: () => side.toggleContent("settings"),
|
|
67766
|
+
icon: settings,
|
|
67767
|
+
style: Style.buttonDefaultStyle
|
|
67768
|
+
}
|
|
67769
|
+
]
|
|
67770
|
+
};
|
|
67771
|
+
}
|
|
67743
67772
|
function controlBarSettings(modal, side, settings$1) {
|
|
67744
67773
|
const fullScreen = getFullScreenState();
|
|
67745
67774
|
return {
|
|
@@ -67782,7 +67811,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67782
67811
|
]
|
|
67783
67812
|
};
|
|
67784
67813
|
}
|
|
67785
|
-
function controlBarCamera(camera2) {
|
|
67814
|
+
function controlBarCamera(camera2, settings2) {
|
|
67786
67815
|
return {
|
|
67787
67816
|
id: Ids$2.sectionCamera,
|
|
67788
67817
|
enable: () => true,
|
|
@@ -67790,6 +67819,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67790
67819
|
buttons: [
|
|
67791
67820
|
{
|
|
67792
67821
|
id: Ids$2.buttonCameraAuto,
|
|
67822
|
+
enabled: () => isTrue(settings2.cameraAuto),
|
|
67793
67823
|
tip: "Auto Camera",
|
|
67794
67824
|
isOn: () => camera2.autoCamera.get(),
|
|
67795
67825
|
action: () => camera2.autoCamera.set(!camera2.autoCamera.get()),
|
|
@@ -67798,7 +67828,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67798
67828
|
},
|
|
67799
67829
|
{
|
|
67800
67830
|
id: Ids$2.buttonCameraFrameSelection,
|
|
67801
|
-
|
|
67831
|
+
enabled: () => isTrue(settings2.cameraFrameSelection),
|
|
67802
67832
|
tip: "Frame Selection",
|
|
67803
67833
|
action: () => camera2.frameSelection.call(),
|
|
67804
67834
|
icon: frameSelection,
|
|
@@ -67807,7 +67837,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67807
67837
|
},
|
|
67808
67838
|
{
|
|
67809
67839
|
id: Ids$2.buttonCameraFrameScene,
|
|
67810
|
-
|
|
67840
|
+
enabled: () => isTrue(settings2.cameraFrameScene),
|
|
67811
67841
|
tip: "Frame All",
|
|
67812
67842
|
action: () => camera2.frameScene.call(),
|
|
67813
67843
|
icon: frameScene,
|
|
@@ -67817,7 +67847,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67817
67847
|
]
|
|
67818
67848
|
};
|
|
67819
67849
|
}
|
|
67820
|
-
function
|
|
67850
|
+
function controlBarVisibility(isolation, settings2) {
|
|
67821
67851
|
const adapter = isolation.adapter.current;
|
|
67822
67852
|
const someVisible = adapter.hasVisibleSelection() || !adapter.hasHiddenSelection();
|
|
67823
67853
|
return {
|
|
@@ -67827,6 +67857,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67827
67857
|
buttons: [
|
|
67828
67858
|
{
|
|
67829
67859
|
id: Ids$2.buttonClearSelection,
|
|
67860
|
+
enabled: () => isTrue(settings2.visibilityClearSelection),
|
|
67830
67861
|
tip: "Clear Selection",
|
|
67831
67862
|
action: () => adapter.clearSelection(),
|
|
67832
67863
|
icon: pointer,
|
|
@@ -67836,6 +67867,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67836
67867
|
{
|
|
67837
67868
|
id: Ids$2.buttonShowAll,
|
|
67838
67869
|
tip: "Show All",
|
|
67870
|
+
enabled: () => isTrue(settings2.visibilityShowAll),
|
|
67839
67871
|
action: () => adapter.showAll(),
|
|
67840
67872
|
icon: showAll,
|
|
67841
67873
|
isOn: () => !isolation.autoIsolate.get() && isolation.visibility.get() !== "all",
|
|
@@ -67843,7 +67875,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67843
67875
|
},
|
|
67844
67876
|
{
|
|
67845
67877
|
id: Ids$2.buttonHideSelection,
|
|
67846
|
-
enabled: () => someVisible,
|
|
67878
|
+
enabled: () => someVisible && isTrue(settings2.visibilityToggle),
|
|
67847
67879
|
tip: "Hide Selection",
|
|
67848
67880
|
action: () => adapter.hideSelection(),
|
|
67849
67881
|
icon: hideSelection,
|
|
@@ -67852,7 +67884,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67852
67884
|
},
|
|
67853
67885
|
{
|
|
67854
67886
|
id: Ids$2.buttonShowSelection,
|
|
67855
|
-
enabled: () => !someVisible,
|
|
67887
|
+
enabled: () => !someVisible && isTrue(settings2.visibilityToggle),
|
|
67856
67888
|
tip: "Show Selection",
|
|
67857
67889
|
action: () => adapter.showSelection(),
|
|
67858
67890
|
icon: showSelection,
|
|
@@ -67861,6 +67893,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67861
67893
|
},
|
|
67862
67894
|
{
|
|
67863
67895
|
id: Ids$2.buttonIsolateSelection,
|
|
67896
|
+
enabled: () => isTrue(settings2.visibilityIsolate),
|
|
67864
67897
|
tip: "Isolate Selection",
|
|
67865
67898
|
action: () => adapter.isolateSelection(),
|
|
67866
67899
|
icon: isolateSelection,
|
|
@@ -67869,6 +67902,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67869
67902
|
},
|
|
67870
67903
|
{
|
|
67871
67904
|
id: Ids$2.buttonAutoIsolate,
|
|
67905
|
+
enabled: () => isTrue(settings2.visibilityAutoIsolate),
|
|
67872
67906
|
tip: "Auto Isolate",
|
|
67873
67907
|
action: () => isolation.autoIsolate.set(!isolation.autoIsolate.get()),
|
|
67874
67908
|
isOn: () => isolation.autoIsolate.get(),
|
|
@@ -67876,6 +67910,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67876
67910
|
},
|
|
67877
67911
|
{
|
|
67878
67912
|
id: Ids$2.buttonIsolationSettings,
|
|
67913
|
+
enabled: () => isTrue(settings2.visibilitySettings),
|
|
67879
67914
|
tip: "Isolation Settings",
|
|
67880
67915
|
action: () => isolation.showPanel.set(!isolation.showPanel.get()),
|
|
67881
67916
|
icon: slidersHoriz,
|
|
@@ -67886,25 +67921,19 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67886
67921
|
}
|
|
67887
67922
|
function useControlBar(viewer, camera2, modal, side, cursor, settings2, section, isolationRef, customization) {
|
|
67888
67923
|
const measure2 = getMeasureState(viewer, cursor);
|
|
67889
|
-
const pointerSection = controlBarPointer(viewer, camera2, settings2);
|
|
67890
|
-
const actionSection = controlBarMeasure(settings2, measure2);
|
|
67891
|
-
const sectionBoxSection = controlBarSectionBox(section, viewer.selection.any());
|
|
67892
|
-
const settingsSection = controlBarSettings(modal, side, settings2);
|
|
67893
|
-
const cameraSection = controlBarCamera(camera2);
|
|
67894
|
-
const selectionSection = controlBarSelection(isolationRef);
|
|
67895
67924
|
let controlBarSections = [
|
|
67896
|
-
|
|
67897
|
-
|
|
67898
|
-
|
|
67899
|
-
|
|
67900
|
-
|
|
67901
|
-
|
|
67925
|
+
controlBarPointer(viewer, camera2, settings2.ui),
|
|
67926
|
+
controlBarCamera(camera2, settings2.ui),
|
|
67927
|
+
controlBarVisibility(isolationRef, settings2.ui),
|
|
67928
|
+
controlBarMeasure(measure2, settings2.ui),
|
|
67929
|
+
controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
|
|
67930
|
+
controlBarSettings(modal, side, settings2)
|
|
67902
67931
|
];
|
|
67903
67932
|
controlBarSections = (customization == null ? void 0 : customization(controlBarSections)) ?? controlBarSections;
|
|
67904
67933
|
return controlBarSections;
|
|
67905
67934
|
}
|
|
67906
67935
|
function anyUiCursorButton(settings2) {
|
|
67907
|
-
return isTrue(settings2.
|
|
67936
|
+
return isTrue(settings2.cursorOrbit) || isTrue(settings2.cursorLookAround) || isTrue(settings2.cursorPan) || isTrue(settings2.cursorZoom);
|
|
67908
67937
|
}
|
|
67909
67938
|
function anyUiSettingButton(settings2) {
|
|
67910
67939
|
return isTrue(settings2.ui.projectInspector) || isTrue(settings2.ui.settings) || isTrue(settings2.ui.help) || isTrue(settings2.ui.maximise);
|
|
@@ -72808,7 +72837,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
72808
72837
|
return;
|
|
72809
72838
|
}
|
|
72810
72839
|
if (rectElem.top < rectContainer.top || rectElem.top < 0) {
|
|
72811
|
-
selection.scrollIntoView();
|
|
72840
|
+
selection.scrollIntoView({ block: "nearest", inline: "nearest" });
|
|
72812
72841
|
}
|
|
72813
72842
|
}
|
|
72814
72843
|
const isControlKey = (e) => {
|
|
@@ -73919,7 +73948,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
73919
73948
|
} else {
|
|
73920
73949
|
props.container.gfx.style.left = "0px";
|
|
73921
73950
|
}
|
|
73922
|
-
props.viewer.viewport.
|
|
73951
|
+
props.viewer.viewport.resizeToParent();
|
|
73923
73952
|
};
|
|
73924
73953
|
const getMaxSize = () => {
|
|
73925
73954
|
return props.container.root.clientWidth * MAX_WIDTH;
|
|
@@ -73978,7 +74007,10 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
73978
74007
|
style: {
|
|
73979
74008
|
position: "absolute"
|
|
73980
74009
|
},
|
|
73981
|
-
className: `vim-side-panel vc-top-0 vc-left-0 vc-z-20
|
|
74010
|
+
className: `vim-side-panel vc-top-0 vc-left-0 vc-z-20
|
|
74011
|
+
vc-bg-gray-lightest vc-text-gray-darker
|
|
74012
|
+
vc-border-r vc-border-gray-light
|
|
74013
|
+
${props.side.getContent() !== "none" ? "" : "vc-hidden"}`,
|
|
73982
74014
|
children: [
|
|
73983
74015
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
73984
74016
|
"button",
|
|
@@ -74061,180 +74093,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74061
74093
|
[side, width]
|
|
74062
74094
|
);
|
|
74063
74095
|
}
|
|
74064
|
-
function SettingsPanel(props) {
|
|
74065
|
-
if (!props.visible) return null;
|
|
74066
|
-
const toggleElement = (label, state, action) => {
|
|
74067
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: "vc-m-1 vc-block vc-select-none vc-items-center vc-py-1 vc-text-gray-warm", children: [
|
|
74068
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
74069
|
-
"input",
|
|
74070
|
-
{
|
|
74071
|
-
type: "checkbox",
|
|
74072
|
-
checked: state,
|
|
74073
|
-
onChange: action,
|
|
74074
|
-
className: "vim-settings-checkbox vc-checked:bg-primary-royal vc-mr-2 vc-rounded vc-border vc-border-gray-medium "
|
|
74075
|
-
}
|
|
74076
|
-
),
|
|
74077
|
-
" ",
|
|
74078
|
-
label
|
|
74079
|
-
] });
|
|
74080
|
-
};
|
|
74081
|
-
const settingsToggle = (label, getter, setter) => {
|
|
74082
|
-
const value = getter(props.settings.value);
|
|
74083
|
-
if (value === "AlwaysTrue" || value === "AlwaysFalse") {
|
|
74084
|
-
return null;
|
|
74085
|
-
}
|
|
74086
|
-
return toggleElement(label, value, () => {
|
|
74087
|
-
const value2 = getter(props.settings.value);
|
|
74088
|
-
props.settings.update((s) => setter(s, !value2));
|
|
74089
|
-
});
|
|
74090
|
-
};
|
|
74091
|
-
const settingsBox = (label, info, transform, getter, setter) => {
|
|
74092
|
-
const ref = React2.useRef(null);
|
|
74093
|
-
React2.useEffect(() => {
|
|
74094
|
-
ref.current.value = props.viewer.inputs.scrollSpeed.toFixed(2);
|
|
74095
|
-
}, []);
|
|
74096
|
-
getter(props.settings.value).toString();
|
|
74097
|
-
const update = (event) => {
|
|
74098
|
-
const str = event.target.value;
|
|
74099
|
-
const n = Number.parseFloat(str);
|
|
74100
|
-
if (Number.isNaN(n)) {
|
|
74101
|
-
event.target.value = getter(props.settings.value).toString();
|
|
74102
|
-
} else {
|
|
74103
|
-
const value2 = transform(n);
|
|
74104
|
-
event.target.value = value2.toString();
|
|
74105
|
-
props.settings.update((s) => setter(s, value2));
|
|
74106
|
-
}
|
|
74107
|
-
};
|
|
74108
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-box-input vc-my-1", children: [
|
|
74109
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2", children: [
|
|
74110
|
-
label,
|
|
74111
|
-
":"
|
|
74112
|
-
] }),
|
|
74113
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("input", { ref, type: "text", className: "vim-settings-textbox vc-w-14 vc-ml-1 vc-p-1", onBlur: (e) => update(e) }),
|
|
74114
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2 vc-text-gray vc-ml-1", children: info })
|
|
74115
|
-
] });
|
|
74116
|
-
};
|
|
74117
|
-
function settingsSubtitle(title2) {
|
|
74118
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-subtitle", children: title2 });
|
|
74119
|
-
}
|
|
74120
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
74121
|
-
"div",
|
|
74122
|
-
{
|
|
74123
|
-
className: "vc-absolute vc-inset-0",
|
|
74124
|
-
children: [
|
|
74125
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-title", children: "Settings " }),
|
|
74126
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vim-settings vc-absolute vc-top-6 vc-left-0 vc-bottom-0 vc-right-0 vc-overflow-y-auto", children: [
|
|
74127
|
-
settingsSubtitle("Inputs"),
|
|
74128
|
-
settingsBox(
|
|
74129
|
-
"Scroll Speed",
|
|
74130
|
-
"[0.1,10]",
|
|
74131
|
-
(n) => MathUtils.clamp(n, 0.1, 10),
|
|
74132
|
-
(s) => props.viewer.inputs.scrollSpeed,
|
|
74133
|
-
(s, v) => {
|
|
74134
|
-
props.viewer.inputs.scrollSpeed = v;
|
|
74135
|
-
}
|
|
74136
|
-
),
|
|
74137
|
-
settingsSubtitle("Panels"),
|
|
74138
|
-
settingsToggle(
|
|
74139
|
-
"Show Logo",
|
|
74140
|
-
(settings2) => settings2.ui.logo,
|
|
74141
|
-
(settings2, value) => settings2.ui.logo = value
|
|
74142
|
-
),
|
|
74143
|
-
settingsToggle(
|
|
74144
|
-
"Show Bim Tree",
|
|
74145
|
-
(settings2) => settings2.ui.bimTreePanel,
|
|
74146
|
-
(settings2, value) => settings2.ui.bimTreePanel = value
|
|
74147
|
-
),
|
|
74148
|
-
settingsToggle(
|
|
74149
|
-
"Show Bim Info",
|
|
74150
|
-
(settings2) => settings2.ui.bimInfoPanel,
|
|
74151
|
-
(settings2, value) => settings2.ui.bimInfoPanel = value
|
|
74152
|
-
),
|
|
74153
|
-
settingsToggle(
|
|
74154
|
-
"Show Axes Panel",
|
|
74155
|
-
(settings2) => settings2.ui.axesPanel,
|
|
74156
|
-
(settings2, value) => settings2.ui.axesPanel = value
|
|
74157
|
-
),
|
|
74158
|
-
settingsToggle(
|
|
74159
|
-
"Show Performance Panel",
|
|
74160
|
-
(settings2) => settings2.ui.performance,
|
|
74161
|
-
(settings2, value) => settings2.ui.performance = value
|
|
74162
|
-
),
|
|
74163
|
-
settingsSubtitle("Axes"),
|
|
74164
|
-
settingsToggle(
|
|
74165
|
-
"Show Orthographic Button",
|
|
74166
|
-
(settings2) => settings2.ui.orthographic,
|
|
74167
|
-
(settings2, value) => settings2.ui.orthographic = value
|
|
74168
|
-
),
|
|
74169
|
-
settingsToggle(
|
|
74170
|
-
"Show Reset Camera Button",
|
|
74171
|
-
(settings2) => settings2.ui.resetCamera,
|
|
74172
|
-
(settings2, value) => settings2.ui.resetCamera = value
|
|
74173
|
-
),
|
|
74174
|
-
settingsSubtitle("Control Bar"),
|
|
74175
|
-
settingsToggle(
|
|
74176
|
-
"Show Control Bar",
|
|
74177
|
-
(settings2) => settings2.ui.controlBar,
|
|
74178
|
-
(settings2, value) => settings2.ui.controlBar = value
|
|
74179
|
-
),
|
|
74180
|
-
settingsSubtitle("Control Bar - Cursors"),
|
|
74181
|
-
settingsToggle(
|
|
74182
|
-
"Show Orbit Button",
|
|
74183
|
-
(settings2) => settings2.ui.orbit,
|
|
74184
|
-
(settings2, value) => settings2.ui.orbit = value
|
|
74185
|
-
),
|
|
74186
|
-
settingsToggle(
|
|
74187
|
-
"Show Look Around Button",
|
|
74188
|
-
(settings2) => settings2.ui.lookAround,
|
|
74189
|
-
(settings2, value) => settings2.ui.lookAround = value
|
|
74190
|
-
),
|
|
74191
|
-
settingsToggle(
|
|
74192
|
-
"Show Pan Button",
|
|
74193
|
-
(settings2) => settings2.ui.pan,
|
|
74194
|
-
(settings2, value) => settings2.ui.pan = value
|
|
74195
|
-
),
|
|
74196
|
-
settingsToggle(
|
|
74197
|
-
"Show Zoom Button",
|
|
74198
|
-
(settings2) => settings2.ui.zoom,
|
|
74199
|
-
(settings2, value) => settings2.ui.zoom = value
|
|
74200
|
-
),
|
|
74201
|
-
settingsToggle(
|
|
74202
|
-
"Show Zoom Window Button",
|
|
74203
|
-
(settings2) => settings2.ui.zoomWindow,
|
|
74204
|
-
(settings2, value) => settings2.ui.zoomWindow = value
|
|
74205
|
-
),
|
|
74206
|
-
settingsSubtitle("Control Bar - Tools"),
|
|
74207
|
-
settingsToggle(
|
|
74208
|
-
"Show Measuring Mode Button",
|
|
74209
|
-
(settings2) => settings2.ui.measuringMode,
|
|
74210
|
-
(settings2, value) => settings2.ui.measuringMode = value
|
|
74211
|
-
),
|
|
74212
|
-
settingsSubtitle("Control Bar - Settings"),
|
|
74213
|
-
settingsToggle(
|
|
74214
|
-
"Show Project Inspector Button",
|
|
74215
|
-
(settings2) => settings2.ui.projectInspector,
|
|
74216
|
-
(settings2, value) => settings2.ui.projectInspector = value
|
|
74217
|
-
),
|
|
74218
|
-
settingsToggle(
|
|
74219
|
-
"Show Settings Button",
|
|
74220
|
-
(settings2) => settings2.ui.settings,
|
|
74221
|
-
(settings2, value) => settings2.ui.settings = value
|
|
74222
|
-
),
|
|
74223
|
-
settingsToggle(
|
|
74224
|
-
"Show Help Button",
|
|
74225
|
-
(settings2) => settings2.ui.help,
|
|
74226
|
-
(settings2, value) => settings2.ui.help = value
|
|
74227
|
-
),
|
|
74228
|
-
settingsToggle(
|
|
74229
|
-
"Show Maximise Button",
|
|
74230
|
-
(settings2) => settings2.ui.maximise,
|
|
74231
|
-
(settings2, value) => settings2.ui.maximise = value
|
|
74232
|
-
)
|
|
74233
|
-
] })
|
|
74234
|
-
]
|
|
74235
|
-
}
|
|
74236
|
-
);
|
|
74237
|
-
}
|
|
74238
74096
|
const MenuToastMemo = React2.memo(MenuToast);
|
|
74239
74097
|
function MenuToast(props) {
|
|
74240
74098
|
const [visible2, setVisible] = React2.useState();
|
|
@@ -74399,118 +74257,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74399
74257
|
}
|
|
74400
74258
|
});
|
|
74401
74259
|
}
|
|
74402
|
-
function useSettings(viewer, value) {
|
|
74403
|
-
const merged = createSettings(value);
|
|
74404
|
-
const [settings2, setSettings] = React2.useState(merged);
|
|
74405
|
-
const onUpdate = React2.useRef();
|
|
74406
|
-
const update = function(updater) {
|
|
74407
|
-
var _a3;
|
|
74408
|
-
const next = { ...settings2 };
|
|
74409
|
-
updater(next);
|
|
74410
|
-
saveSettingsToLocal(next);
|
|
74411
|
-
setSettings(next);
|
|
74412
|
-
(_a3 = onUpdate.current) == null ? void 0 : _a3.call(onUpdate, next);
|
|
74413
|
-
};
|
|
74414
|
-
React2.useEffect(() => {
|
|
74415
|
-
applySettings(viewer, settings2);
|
|
74416
|
-
}, []);
|
|
74417
|
-
React2.useEffect(() => {
|
|
74418
|
-
applySettings(viewer, settings2);
|
|
74419
|
-
}, [settings2]);
|
|
74420
|
-
return React2.useMemo(
|
|
74421
|
-
() => ({
|
|
74422
|
-
value: settings2,
|
|
74423
|
-
update,
|
|
74424
|
-
register: (v) => onUpdate.current = v
|
|
74425
|
-
}),
|
|
74426
|
-
[settings2]
|
|
74427
|
-
);
|
|
74428
|
-
}
|
|
74429
|
-
function applySettings(viewer, settings2) {
|
|
74430
|
-
const performance2 = document.getElementsByClassName("vim-performance-div")[0];
|
|
74431
|
-
if (performance2) {
|
|
74432
|
-
if (isTrue(settings2.ui.performance)) {
|
|
74433
|
-
performance2.classList.remove("vc-hidden");
|
|
74434
|
-
} else {
|
|
74435
|
-
performance2.classList.add("vc-hidden");
|
|
74436
|
-
}
|
|
74437
|
-
}
|
|
74438
|
-
}
|
|
74439
|
-
function createContainer(element) {
|
|
74440
|
-
let root = element;
|
|
74441
|
-
if (root === void 0) {
|
|
74442
|
-
root = document.createElement("div");
|
|
74443
|
-
document.body.append(root);
|
|
74444
|
-
root.classList.add("vc-inset-0");
|
|
74445
|
-
}
|
|
74446
|
-
root.style.position = "absolute";
|
|
74447
|
-
root.classList.add("vim-component");
|
|
74448
|
-
const gfx = document.createElement("div");
|
|
74449
|
-
gfx.className = "vim-gfx vc-absolute vc-inset-0 vc-pointer-events-none";
|
|
74450
|
-
const ui = document.createElement("div");
|
|
74451
|
-
ui.className = "vim-ui vc-absolute vc-inset-0";
|
|
74452
|
-
root.append(gfx);
|
|
74453
|
-
root.append(ui);
|
|
74454
|
-
const dispose = () => {
|
|
74455
|
-
if (element === void 0) {
|
|
74456
|
-
root.remove();
|
|
74457
|
-
} else {
|
|
74458
|
-
root.classList.remove("vim-component");
|
|
74459
|
-
gfx.remove();
|
|
74460
|
-
ui.remove();
|
|
74461
|
-
}
|
|
74462
|
-
};
|
|
74463
|
-
return { root, ui, gfx, dispose };
|
|
74464
|
-
}
|
|
74465
|
-
async function getElements(vim) {
|
|
74466
|
-
var _a3, _b2, _c, _d, _e;
|
|
74467
|
-
if (!vim.bim) return [];
|
|
74468
|
-
const [elements, bimDocument, category, levels, worksets] = await Promise.all(
|
|
74469
|
-
[
|
|
74470
|
-
(_a3 = vim.bim.element) == null ? void 0 : _a3.getAll(),
|
|
74471
|
-
(_b2 = vim.bim.bimDocument) == null ? void 0 : _b2.getAllTitle(),
|
|
74472
|
-
(_c = vim.bim.category) == null ? void 0 : _c.getAllName(),
|
|
74473
|
-
(_d = vim.bim.level) == null ? void 0 : _d.getAllElementIndex(),
|
|
74474
|
-
(_e = vim.bim.workset) == null ? void 0 : _e.getAllName()
|
|
74475
|
-
]
|
|
74476
|
-
);
|
|
74477
|
-
const familyTypeMap = await getFamilyTypeNameMap(vim.bim);
|
|
74478
|
-
if (!elements) return void 0;
|
|
74479
|
-
const result = elements.map((e) => {
|
|
74480
|
-
var _a4;
|
|
74481
|
-
return {
|
|
74482
|
-
...e,
|
|
74483
|
-
bimDocumentName: bimDocument ? bimDocument[e.bimDocumentIndex] : void 0,
|
|
74484
|
-
categoryName: category ? category[e.categoryIndex] : void 0,
|
|
74485
|
-
familyTypeName: familyTypeMap.get(e.index),
|
|
74486
|
-
levelName: levels ? (_a4 = elements[levels[(e == null ? void 0 : e.levelIndex) ?? -1]]) == null ? void 0 : _a4.name : void 0,
|
|
74487
|
-
worksetName: worksets ? worksets[(e == null ? void 0 : e.worksetIndex) ?? -1] : void 0
|
|
74488
|
-
};
|
|
74489
|
-
});
|
|
74490
|
-
const real = result.filter((e) => vim.getElementFromIndex(e.index).hasMesh);
|
|
74491
|
-
return real;
|
|
74492
|
-
}
|
|
74493
|
-
async function getFamilyTypeNameMap(document2) {
|
|
74494
|
-
const [
|
|
74495
|
-
familyInstanceElement,
|
|
74496
|
-
familyInstanceFamilyType,
|
|
74497
|
-
familyTypeElement,
|
|
74498
|
-
elementName
|
|
74499
|
-
] = await Promise.all([
|
|
74500
|
-
document2.familyInstance.getAllElementIndex(),
|
|
74501
|
-
document2.familyInstance.getAllFamilyTypeIndex(),
|
|
74502
|
-
document2.familyType.getAllElementIndex(),
|
|
74503
|
-
document2.element.getAllName()
|
|
74504
|
-
]);
|
|
74505
|
-
return new Map(
|
|
74506
|
-
familyInstanceElement.map((e, i2) => {
|
|
74507
|
-
const familyType = familyInstanceFamilyType == null ? void 0 : familyInstanceFamilyType[i2];
|
|
74508
|
-
const element = Number.isInteger(familyType) ? familyTypeElement[familyType] : void 0;
|
|
74509
|
-
const name = Number.isInteger(element) ? elementName == null ? void 0 : elementName[element] : void 0;
|
|
74510
|
-
return [e, name];
|
|
74511
|
-
})
|
|
74512
|
-
);
|
|
74513
|
-
}
|
|
74514
74260
|
class MutableState {
|
|
74515
74261
|
constructor(initial) {
|
|
74516
74262
|
__publicField(this, "_value");
|
|
@@ -74539,24 +74285,28 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74539
74285
|
}
|
|
74540
74286
|
};
|
|
74541
74287
|
}
|
|
74542
|
-
function useStateRef(initialValue) {
|
|
74543
|
-
const
|
|
74288
|
+
function useStateRef(initialValue, isLazy = false) {
|
|
74289
|
+
const getInitialValue = () => {
|
|
74290
|
+
if (isLazy && typeof initialValue === "function") {
|
|
74291
|
+
return initialValue();
|
|
74292
|
+
}
|
|
74293
|
+
return initialValue;
|
|
74294
|
+
};
|
|
74295
|
+
const [box, setBox] = React2.useState(() => ({
|
|
74296
|
+
current: getInitialValue()
|
|
74297
|
+
}));
|
|
74544
74298
|
const ref = React2.useRef(void 0);
|
|
74545
74299
|
if (ref.current === void 0) {
|
|
74546
|
-
|
|
74547
|
-
ref.current = initialValue();
|
|
74548
|
-
} else {
|
|
74549
|
-
ref.current = initialValue;
|
|
74550
|
-
}
|
|
74300
|
+
ref.current = getInitialValue();
|
|
74551
74301
|
}
|
|
74552
74302
|
const event = React2.useRef(new distExports.SimpleEventDispatcher());
|
|
74553
74303
|
const validate = React2.useRef((next, current) => next);
|
|
74554
|
-
const confirm = React2.useRef((
|
|
74555
|
-
const set2 = (
|
|
74556
|
-
const finalValue = validate.current(
|
|
74304
|
+
const confirm = React2.useRef((value) => value);
|
|
74305
|
+
const set2 = (value) => {
|
|
74306
|
+
const finalValue = validate.current(value, ref.current);
|
|
74557
74307
|
if (finalValue === ref.current) return;
|
|
74558
74308
|
ref.current = finalValue;
|
|
74559
|
-
|
|
74309
|
+
setBox({ current: finalValue });
|
|
74560
74310
|
event.current.dispatch(finalValue);
|
|
74561
74311
|
};
|
|
74562
74312
|
return {
|
|
@@ -74582,8 +74332,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74582
74332
|
*/
|
|
74583
74333
|
useOnChange(on) {
|
|
74584
74334
|
React2.useEffect(() => {
|
|
74585
|
-
return event.current.subscribe((
|
|
74586
|
-
const result = on(
|
|
74335
|
+
return event.current.subscribe((value) => {
|
|
74336
|
+
const result = on(value);
|
|
74587
74337
|
if (result instanceof Promise) {
|
|
74588
74338
|
result.catch(console.error);
|
|
74589
74339
|
}
|
|
@@ -74597,7 +74347,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74597
74347
|
* @returns The memoized value.
|
|
74598
74348
|
*/
|
|
74599
74349
|
useMemo(on, deps) {
|
|
74600
|
-
return React2.useMemo(() => on(
|
|
74350
|
+
return React2.useMemo(() => on(box.current), [...deps || [], box.current]);
|
|
74601
74351
|
},
|
|
74602
74352
|
/**
|
|
74603
74353
|
* Sets a validation function to process any new state value before updating.
|
|
@@ -74774,37 +74524,145 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74774
74524
|
useRefresher,
|
|
74775
74525
|
useStateRef
|
|
74776
74526
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
74777
|
-
function
|
|
74778
|
-
|
|
74527
|
+
function useSettings(value, defaultSettings, applySettings = () => {
|
|
74528
|
+
}) {
|
|
74529
|
+
const merged = createSettings(value, defaultSettings);
|
|
74530
|
+
const [settings2, setSettings] = React2.useState(merged);
|
|
74531
|
+
const onUpdate = React2.useRef();
|
|
74532
|
+
const customizer = useStateRef((settings22) => settings22);
|
|
74533
|
+
const update = function(updater) {
|
|
74779
74534
|
var _a3;
|
|
74780
|
-
const
|
|
74781
|
-
|
|
74782
|
-
|
|
74783
|
-
|
|
74784
|
-
|
|
74785
|
-
};
|
|
74786
|
-
const vim = useStateRef(getVim());
|
|
74787
|
-
const selection = useStateRef(getSelection());
|
|
74788
|
-
const allElements = useStateRef([]);
|
|
74789
|
-
const filteredElements = useStateRef([]);
|
|
74790
|
-
const filter2 = useStateRef("");
|
|
74791
|
-
const applyFilter = () => {
|
|
74792
|
-
const filtered = filterElements(allElements.get(), filter2.get());
|
|
74793
|
-
filteredElements.set(filtered);
|
|
74535
|
+
const next = { ...settings2 };
|
|
74536
|
+
updater(next);
|
|
74537
|
+
saveSettingsToLocal(next);
|
|
74538
|
+
setSettings(next);
|
|
74539
|
+
(_a3 = onUpdate.current) == null ? void 0 : _a3.call(onUpdate, next);
|
|
74794
74540
|
};
|
|
74795
|
-
vim.useOnChange(async (v) => {
|
|
74796
|
-
const elements = await getElements(v);
|
|
74797
|
-
allElements.set(elements);
|
|
74798
|
-
});
|
|
74799
|
-
filter2.useOnChange((f) => {
|
|
74800
|
-
applyFilter();
|
|
74801
|
-
});
|
|
74802
|
-
allElements.useOnChange((elements) => {
|
|
74803
|
-
applyFilter();
|
|
74804
|
-
});
|
|
74805
74541
|
React2.useEffect(() => {
|
|
74806
|
-
|
|
74807
|
-
|
|
74542
|
+
applySettings(settings2);
|
|
74543
|
+
}, []);
|
|
74544
|
+
React2.useEffect(() => {
|
|
74545
|
+
applySettings(settings2);
|
|
74546
|
+
}, [settings2]);
|
|
74547
|
+
return React2.useMemo(
|
|
74548
|
+
() => ({
|
|
74549
|
+
value: settings2,
|
|
74550
|
+
update,
|
|
74551
|
+
register: (v) => onUpdate.current = v,
|
|
74552
|
+
customizer
|
|
74553
|
+
}),
|
|
74554
|
+
[settings2]
|
|
74555
|
+
);
|
|
74556
|
+
}
|
|
74557
|
+
function createSettings(settings2, defaultSettings) {
|
|
74558
|
+
return settings2 !== void 0 ? deepmerge(defaultSettings, settings2) : defaultSettings;
|
|
74559
|
+
}
|
|
74560
|
+
function createContainer(element) {
|
|
74561
|
+
let root = element;
|
|
74562
|
+
if (root === void 0) {
|
|
74563
|
+
root = document.createElement("div");
|
|
74564
|
+
document.body.append(root);
|
|
74565
|
+
root.classList.add("vc-inset-0");
|
|
74566
|
+
}
|
|
74567
|
+
root.style.position = "absolute";
|
|
74568
|
+
root.classList.add("vim-component");
|
|
74569
|
+
const gfx = document.createElement("div");
|
|
74570
|
+
gfx.className = "vim-gfx vc-absolute vc-inset-0 vc-pointer-events-none";
|
|
74571
|
+
const ui = document.createElement("div");
|
|
74572
|
+
ui.className = "vim-ui vc-absolute vc-inset-0";
|
|
74573
|
+
root.append(gfx);
|
|
74574
|
+
root.append(ui);
|
|
74575
|
+
const dispose = () => {
|
|
74576
|
+
if (element === void 0) {
|
|
74577
|
+
root.remove();
|
|
74578
|
+
} else {
|
|
74579
|
+
root.classList.remove("vim-component");
|
|
74580
|
+
gfx.remove();
|
|
74581
|
+
ui.remove();
|
|
74582
|
+
}
|
|
74583
|
+
};
|
|
74584
|
+
return { root, ui, gfx, dispose };
|
|
74585
|
+
}
|
|
74586
|
+
async function getElements(vim) {
|
|
74587
|
+
var _a3, _b2, _c, _d, _e;
|
|
74588
|
+
if (!vim.bim) return [];
|
|
74589
|
+
const [elements, bimDocument, category, levels, worksets] = await Promise.all(
|
|
74590
|
+
[
|
|
74591
|
+
(_a3 = vim.bim.element) == null ? void 0 : _a3.getAll(),
|
|
74592
|
+
(_b2 = vim.bim.bimDocument) == null ? void 0 : _b2.getAllTitle(),
|
|
74593
|
+
(_c = vim.bim.category) == null ? void 0 : _c.getAllName(),
|
|
74594
|
+
(_d = vim.bim.level) == null ? void 0 : _d.getAllElementIndex(),
|
|
74595
|
+
(_e = vim.bim.workset) == null ? void 0 : _e.getAllName()
|
|
74596
|
+
]
|
|
74597
|
+
);
|
|
74598
|
+
const familyTypeMap = await getFamilyTypeNameMap(vim.bim);
|
|
74599
|
+
if (!elements) return void 0;
|
|
74600
|
+
const result = elements.map((e) => {
|
|
74601
|
+
var _a4;
|
|
74602
|
+
return {
|
|
74603
|
+
...e,
|
|
74604
|
+
bimDocumentName: bimDocument ? bimDocument[e.bimDocumentIndex] : void 0,
|
|
74605
|
+
categoryName: category ? category[e.categoryIndex] : void 0,
|
|
74606
|
+
familyTypeName: familyTypeMap.get(e.index),
|
|
74607
|
+
levelName: levels ? (_a4 = elements[levels[(e == null ? void 0 : e.levelIndex) ?? -1]]) == null ? void 0 : _a4.name : void 0,
|
|
74608
|
+
worksetName: worksets ? worksets[(e == null ? void 0 : e.worksetIndex) ?? -1] : void 0
|
|
74609
|
+
};
|
|
74610
|
+
});
|
|
74611
|
+
const real = result.filter((e) => vim.getElementFromIndex(e.index).hasMesh);
|
|
74612
|
+
return real;
|
|
74613
|
+
}
|
|
74614
|
+
async function getFamilyTypeNameMap(document2) {
|
|
74615
|
+
const [
|
|
74616
|
+
familyInstanceElement,
|
|
74617
|
+
familyInstanceFamilyType,
|
|
74618
|
+
familyTypeElement,
|
|
74619
|
+
elementName
|
|
74620
|
+
] = await Promise.all([
|
|
74621
|
+
document2.familyInstance.getAllElementIndex(),
|
|
74622
|
+
document2.familyInstance.getAllFamilyTypeIndex(),
|
|
74623
|
+
document2.familyType.getAllElementIndex(),
|
|
74624
|
+
document2.element.getAllName()
|
|
74625
|
+
]);
|
|
74626
|
+
return new Map(
|
|
74627
|
+
familyInstanceElement.map((e, i2) => {
|
|
74628
|
+
const familyType = familyInstanceFamilyType == null ? void 0 : familyInstanceFamilyType[i2];
|
|
74629
|
+
const element = Number.isInteger(familyType) ? familyTypeElement[familyType] : void 0;
|
|
74630
|
+
const name = Number.isInteger(element) ? elementName == null ? void 0 : elementName[element] : void 0;
|
|
74631
|
+
return [e, name];
|
|
74632
|
+
})
|
|
74633
|
+
);
|
|
74634
|
+
}
|
|
74635
|
+
function useViewerState(viewer) {
|
|
74636
|
+
const getVim = () => {
|
|
74637
|
+
var _a3;
|
|
74638
|
+
const v = (_a3 = viewer.vims) == null ? void 0 : _a3[0];
|
|
74639
|
+
return v;
|
|
74640
|
+
};
|
|
74641
|
+
const getSelection = () => {
|
|
74642
|
+
return [...viewer.selection.getAll()].filter((o) => o.type === "Element3D");
|
|
74643
|
+
};
|
|
74644
|
+
const vim = useStateRef(getVim());
|
|
74645
|
+
const selection = useStateRef(getSelection());
|
|
74646
|
+
const allElements = useStateRef([]);
|
|
74647
|
+
const filteredElements = useStateRef([]);
|
|
74648
|
+
const filter2 = useStateRef("");
|
|
74649
|
+
const applyFilter = () => {
|
|
74650
|
+
const filtered = filterElements(allElements.get(), filter2.get());
|
|
74651
|
+
filteredElements.set(filtered);
|
|
74652
|
+
};
|
|
74653
|
+
vim.useOnChange(async (v) => {
|
|
74654
|
+
const elements = await getElements(v);
|
|
74655
|
+
allElements.set(elements);
|
|
74656
|
+
});
|
|
74657
|
+
filter2.useOnChange((f) => {
|
|
74658
|
+
applyFilter();
|
|
74659
|
+
});
|
|
74660
|
+
allElements.useOnChange((elements) => {
|
|
74661
|
+
applyFilter();
|
|
74662
|
+
});
|
|
74663
|
+
React2.useEffect(() => {
|
|
74664
|
+
const subLoad = viewer.onVimLoaded.subscribe(() => {
|
|
74665
|
+
vim.set(getVim());
|
|
74808
74666
|
});
|
|
74809
74667
|
const subSelect = viewer.selection.onSelectionChanged.subscribe(() => {
|
|
74810
74668
|
selection.set(getSelection());
|
|
@@ -74915,12 +74773,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74915
74773
|
const vcLink = `${vcColorLink} vc-underline`;
|
|
74916
74774
|
const vcLabel = "vc-text-[#3F444F]";
|
|
74917
74775
|
const vcRoboto = "vc-font-['Roboto',sans-serif]";
|
|
74918
|
-
function footer$1(
|
|
74919
|
-
return /* @__PURE__ */ jsxRuntimeExports.
|
|
74920
|
-
"More troubleshooting tips can be found",
|
|
74921
|
-
" ",
|
|
74922
|
-
link(url, "here")
|
|
74923
|
-
] });
|
|
74776
|
+
function footer$1() {
|
|
74777
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {});
|
|
74924
74778
|
}
|
|
74925
74779
|
function mainText(text) {
|
|
74926
74780
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `vim-main-text vc-text-base ${vcColorPrimary} vc-mb-4 vc-font-normal`, children: text });
|
|
@@ -74968,20 +74822,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74968
74822
|
vcLink,
|
|
74969
74823
|
vcRoboto
|
|
74970
74824
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
74971
|
-
const support = "https://docs.vimaec.com";
|
|
74972
|
-
const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
|
|
74973
|
-
const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
|
|
74974
|
-
const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
74975
|
-
__proto__: null,
|
|
74976
|
-
support,
|
|
74977
|
-
supportControls,
|
|
74978
|
-
supportUltra
|
|
74979
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
74980
74825
|
function fileOpeningError(url) {
|
|
74981
74826
|
return {
|
|
74982
74827
|
title: "File Opening Error",
|
|
74983
74828
|
body: serverFileOpeningErrorBody(url),
|
|
74984
|
-
footer: footer$1(
|
|
74829
|
+
footer: footer$1(),
|
|
74985
74830
|
canClose: false
|
|
74986
74831
|
};
|
|
74987
74832
|
}
|
|
@@ -75003,7 +74848,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75003
74848
|
return {
|
|
75004
74849
|
title: "File Downloading Error",
|
|
75005
74850
|
body: body$5(url, authToken, server),
|
|
75006
|
-
footer: footer$1(
|
|
74851
|
+
footer: footer$1(),
|
|
75007
74852
|
canClose: false
|
|
75008
74853
|
};
|
|
75009
74854
|
}
|
|
@@ -75032,7 +74877,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75032
74877
|
return {
|
|
75033
74878
|
title: "File Loading Error",
|
|
75034
74879
|
body: body$4(url),
|
|
75035
|
-
footer: footer$1(
|
|
74880
|
+
footer: footer$1(),
|
|
75036
74881
|
canClose: false
|
|
75037
74882
|
};
|
|
75038
74883
|
}
|
|
@@ -75052,11 +74897,18 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75052
74897
|
])
|
|
75053
74898
|
] });
|
|
75054
74899
|
}
|
|
74900
|
+
const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
|
|
74901
|
+
const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
|
|
74902
|
+
const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
74903
|
+
__proto__: null,
|
|
74904
|
+
supportControls,
|
|
74905
|
+
supportUltra
|
|
74906
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
75055
74907
|
function serverConnectionError(url) {
|
|
75056
74908
|
return {
|
|
75057
74909
|
title: "Connection Error",
|
|
75058
74910
|
body: body$3(url, isLocalUrl(url)),
|
|
75059
|
-
footer: footer$1(
|
|
74911
|
+
footer: footer$1(),
|
|
75060
74912
|
canClose: false
|
|
75061
74913
|
};
|
|
75062
74914
|
}
|
|
@@ -75086,7 +74938,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75086
74938
|
return {
|
|
75087
74939
|
title: "Compatibility Error",
|
|
75088
74940
|
body: body$2(url, localVersion, remoteVersion),
|
|
75089
|
-
footer: footer$1(
|
|
74941
|
+
footer: footer$1(),
|
|
75090
74942
|
canClose: false
|
|
75091
74943
|
};
|
|
75092
74944
|
}
|
|
@@ -75115,7 +74967,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75115
74967
|
return {
|
|
75116
74968
|
title: "Stream Error",
|
|
75117
74969
|
body: body$1(),
|
|
75118
|
-
footer: footer$1(
|
|
74970
|
+
footer: footer$1(),
|
|
75119
74971
|
canClose: false
|
|
75120
74972
|
};
|
|
75121
74973
|
}
|
|
@@ -75892,7 +75744,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75892
75744
|
}
|
|
75893
75745
|
const Ids = {
|
|
75894
75746
|
showGhost: "isolationPanel.showGhost",
|
|
75895
|
-
ghostOpacity: "isolationPanel.ghostOpacity"
|
|
75747
|
+
ghostOpacity: "isolationPanel.ghostOpacity",
|
|
75748
|
+
transparency: "isolationPanel.transparency"
|
|
75896
75749
|
};
|
|
75897
75750
|
const IsolationPanel$1 = React2.forwardRef(
|
|
75898
75751
|
(props, ref) => {
|
|
@@ -75904,8 +75757,20 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75904
75757
|
anchorElement: document.getElementById("vim-control-bar"),
|
|
75905
75758
|
showPanel: props.state.showPanel,
|
|
75906
75759
|
entries: [
|
|
75907
|
-
{
|
|
75908
|
-
|
|
75760
|
+
{
|
|
75761
|
+
type: "bool",
|
|
75762
|
+
id: Ids.showGhost,
|
|
75763
|
+
label: "Show Ghost",
|
|
75764
|
+
state: props.state.showGhost
|
|
75765
|
+
},
|
|
75766
|
+
/*
|
|
75767
|
+
{
|
|
75768
|
+
type: "bool",
|
|
75769
|
+
id: "showRooms",
|
|
75770
|
+
label: "Show Rooms",
|
|
75771
|
+
state: props.state.showRooms
|
|
75772
|
+
},
|
|
75773
|
+
*/
|
|
75909
75774
|
{
|
|
75910
75775
|
type: "number",
|
|
75911
75776
|
id: Ids.ghostOpacity,
|
|
@@ -75915,6 +75780,13 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75915
75780
|
min: 0,
|
|
75916
75781
|
max: 1,
|
|
75917
75782
|
step: 0.05
|
|
75783
|
+
},
|
|
75784
|
+
{
|
|
75785
|
+
type: "bool",
|
|
75786
|
+
visible: () => props.transparency,
|
|
75787
|
+
id: Ids.transparency,
|
|
75788
|
+
label: "Transparency",
|
|
75789
|
+
state: props.state.transparency
|
|
75918
75790
|
}
|
|
75919
75791
|
]
|
|
75920
75792
|
}
|
|
@@ -75923,12 +75795,13 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75923
75795
|
);
|
|
75924
75796
|
function useSharedIsolation(adapter) {
|
|
75925
75797
|
const _adapter = React2.useRef(adapter);
|
|
75926
|
-
const visibility = useStateRef(() => adapter.computeVisibility());
|
|
75798
|
+
const visibility = useStateRef(() => adapter.computeVisibility(), true);
|
|
75927
75799
|
const autoIsolate2 = useStateRef(false);
|
|
75928
75800
|
const showPanel = useStateRef(false);
|
|
75929
75801
|
const showRooms = useStateRef(false);
|
|
75930
75802
|
const showGhost = useStateRef(false);
|
|
75931
|
-
const ghostOpacity = useStateRef(() => adapter.getGhostOpacity());
|
|
75803
|
+
const ghostOpacity = useStateRef(() => adapter.getGhostOpacity(), true);
|
|
75804
|
+
const transparency = useStateRef(true);
|
|
75932
75805
|
const onAutoIsolate = useFuncRef(() => {
|
|
75933
75806
|
if (adapter.hasSelection()) {
|
|
75934
75807
|
adapter.isolateSelection();
|
|
@@ -75953,6 +75826,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75953
75826
|
});
|
|
75954
75827
|
showGhost.useOnChange((v) => adapter.showGhost(v));
|
|
75955
75828
|
showRooms.useOnChange((v) => adapter.setShowRooms(v));
|
|
75829
|
+
transparency.useOnChange((v) => adapter.enableTransparency(v));
|
|
75956
75830
|
ghostOpacity.useValidate((next, current) => {
|
|
75957
75831
|
return next <= 0 ? current : next;
|
|
75958
75832
|
});
|
|
@@ -75966,7 +75840,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75966
75840
|
showRooms,
|
|
75967
75841
|
ghostOpacity,
|
|
75968
75842
|
onAutoIsolate,
|
|
75969
|
-
onVisibilityChange
|
|
75843
|
+
onVisibilityChange,
|
|
75844
|
+
transparency
|
|
75970
75845
|
};
|
|
75971
75846
|
}
|
|
75972
75847
|
function useWebglIsolation(viewer) {
|
|
@@ -75974,6 +75849,29 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75974
75849
|
return useSharedIsolation(adapter);
|
|
75975
75850
|
}
|
|
75976
75851
|
function createWebglIsolationAdapter(viewer) {
|
|
75852
|
+
var transparency = true;
|
|
75853
|
+
var ghost2 = false;
|
|
75854
|
+
var rooms = false;
|
|
75855
|
+
function updateMaterials() {
|
|
75856
|
+
viewer.renderer.modelMaterial = !ghost2 && transparency ? void 0 : ghost2 && transparency ? [void 0, viewer.materials.ghost] : !ghost2 && !transparency ? viewer.materials.simple : ghost2 && !transparency ? [viewer.materials.simple, viewer.materials.ghost] : (() => {
|
|
75857
|
+
throw new Error("Unreachable state in isolation materials");
|
|
75858
|
+
})();
|
|
75859
|
+
}
|
|
75860
|
+
function updateVisibility(elements, predicate) {
|
|
75861
|
+
if (elements === "all") {
|
|
75862
|
+
for (let v of viewer.vims) {
|
|
75863
|
+
for (let o of v.getAllElements()) {
|
|
75864
|
+
if (o.type === "Element3D") {
|
|
75865
|
+
o.visible = o.isRoom ? rooms : predicate(o);
|
|
75866
|
+
}
|
|
75867
|
+
}
|
|
75868
|
+
}
|
|
75869
|
+
} else {
|
|
75870
|
+
for (let o of elements) {
|
|
75871
|
+
o.visible = o.isRoom ? rooms : predicate(o);
|
|
75872
|
+
}
|
|
75873
|
+
}
|
|
75874
|
+
}
|
|
75977
75875
|
return {
|
|
75978
75876
|
onVisibilityChange: viewer.renderer.onSceneUpdated,
|
|
75979
75877
|
onSelectionChanged: viewer.selection.onSelectionChanged,
|
|
@@ -75982,28 +75880,28 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75982
75880
|
hasVisibleSelection: () => viewer.selection.any() && viewer.selection.getAll().every((o) => o.visible),
|
|
75983
75881
|
hasHiddenSelection: () => viewer.selection.any() && viewer.selection.getAll().every((o) => !o.visible),
|
|
75984
75882
|
clearSelection: () => viewer.selection.clear(),
|
|
75985
|
-
isolateSelection: () =>
|
|
75883
|
+
isolateSelection: () => updateVisibility("all", (o) => viewer.selection.has(o)),
|
|
75986
75884
|
hideSelection: () => {
|
|
75987
|
-
viewer.selection.getAll()
|
|
75885
|
+
updateVisibility(viewer.selection.getAll(), (o) => false);
|
|
75988
75886
|
},
|
|
75989
75887
|
showSelection: () => {
|
|
75990
|
-
viewer.selection.getAll()
|
|
75888
|
+
updateVisibility(viewer.selection.getAll(), (o) => true);
|
|
75991
75889
|
},
|
|
75992
75890
|
hideAll: () => {
|
|
75993
|
-
|
|
75891
|
+
updateVisibility("all", (o) => false);
|
|
75994
75892
|
},
|
|
75995
75893
|
showAll: () => {
|
|
75996
|
-
|
|
75894
|
+
updateVisibility("all", (o) => true);
|
|
75997
75895
|
},
|
|
75998
75896
|
isolate: (instances) => {
|
|
75999
75897
|
const set2 = new Set(instances);
|
|
76000
|
-
|
|
75898
|
+
updateVisibility("all", (o) => o.instances.some((i2) => set2.has(i2)));
|
|
76001
75899
|
},
|
|
76002
75900
|
show: (instances) => {
|
|
76003
75901
|
for (let i2 of instances) {
|
|
76004
75902
|
for (let v of viewer.vims) {
|
|
76005
75903
|
const o = v.getElement(i2);
|
|
76006
|
-
o.visible = true;
|
|
75904
|
+
o.visible = o.isRoom ? rooms : true;
|
|
76007
75905
|
}
|
|
76008
75906
|
}
|
|
76009
75907
|
},
|
|
@@ -76011,29 +75909,30 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76011
75909
|
for (let i2 of instances) {
|
|
76012
75910
|
for (let v of viewer.vims) {
|
|
76013
75911
|
const o = v.getElement(i2);
|
|
76014
|
-
o.visible = false;
|
|
75912
|
+
o.visible = o.isRoom ? rooms : false;
|
|
76015
75913
|
}
|
|
76016
75914
|
}
|
|
76017
75915
|
},
|
|
75916
|
+
enableTransparency: (enable) => {
|
|
75917
|
+
if (transparency !== enable) {
|
|
75918
|
+
transparency = enable;
|
|
75919
|
+
updateMaterials();
|
|
75920
|
+
}
|
|
75921
|
+
},
|
|
76018
75922
|
showGhost: (show) => {
|
|
76019
|
-
|
|
75923
|
+
ghost2 = show;
|
|
75924
|
+
updateMaterials();
|
|
76020
75925
|
},
|
|
76021
75926
|
getGhostOpacity: () => viewer.materials.ghostOpacity,
|
|
76022
75927
|
setGhostOpacity: (opacity) => viewer.materials.ghostOpacity = opacity,
|
|
76023
|
-
getShowRooms: () =>
|
|
75928
|
+
getShowRooms: () => rooms,
|
|
76024
75929
|
setShowRooms: (show) => {
|
|
76025
|
-
|
|
76026
|
-
|
|
76027
|
-
|
|
76028
|
-
}
|
|
76029
|
-
function updateAllVisibility(viewer, predicate) {
|
|
76030
|
-
for (let v of viewer.vims) {
|
|
76031
|
-
for (let o of v.getAllElements()) {
|
|
76032
|
-
if (o.type === "Element3D") {
|
|
76033
|
-
o.visible = predicate(o);
|
|
75930
|
+
if (rooms !== show) {
|
|
75931
|
+
rooms = show;
|
|
75932
|
+
updateVisibility("all", (o) => o.visible);
|
|
76034
75933
|
}
|
|
76035
75934
|
}
|
|
76036
|
-
}
|
|
75935
|
+
};
|
|
76037
75936
|
}
|
|
76038
75937
|
function getVisibilityState$1(viewer) {
|
|
76039
75938
|
let all = true;
|
|
@@ -76059,6 +75958,575 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76059
75958
|
if (onlySelectionFlag) return "onlySelection";
|
|
76060
75959
|
return "some";
|
|
76061
75960
|
}
|
|
75961
|
+
function getDefaultSettings() {
|
|
75962
|
+
return {
|
|
75963
|
+
capacity: {
|
|
75964
|
+
canFollowUrl: true,
|
|
75965
|
+
canGoFullScreen: true,
|
|
75966
|
+
canDownload: true,
|
|
75967
|
+
canReadLocalStorage: true
|
|
75968
|
+
},
|
|
75969
|
+
ui: {
|
|
75970
|
+
logo: true,
|
|
75971
|
+
performance: false,
|
|
75972
|
+
bimTreePanel: true,
|
|
75973
|
+
bimInfoPanel: true,
|
|
75974
|
+
// axesPanel
|
|
75975
|
+
axesPanel: true,
|
|
75976
|
+
orthographic: true,
|
|
75977
|
+
resetCamera: true,
|
|
75978
|
+
// Control bar
|
|
75979
|
+
controlBar: true,
|
|
75980
|
+
// Control bar - cursors
|
|
75981
|
+
cursorOrbit: true,
|
|
75982
|
+
cursorLookAround: true,
|
|
75983
|
+
cursorPan: true,
|
|
75984
|
+
cursorZoom: true,
|
|
75985
|
+
// Control bar - camera
|
|
75986
|
+
cameraAuto: true,
|
|
75987
|
+
cameraFrameScene: true,
|
|
75988
|
+
cameraFrameSelection: true,
|
|
75989
|
+
// Control bar - tools
|
|
75990
|
+
sectioningEnable: true,
|
|
75991
|
+
sectioningFitToSelection: true,
|
|
75992
|
+
sectioningReset: true,
|
|
75993
|
+
sectioningShow: true,
|
|
75994
|
+
sectioningAuto: true,
|
|
75995
|
+
sectioningSettings: true,
|
|
75996
|
+
measuringMode: true,
|
|
75997
|
+
// Control bar - Visibility
|
|
75998
|
+
visibilityEnable: true,
|
|
75999
|
+
visibilityClearSelection: true,
|
|
76000
|
+
visibilityShowAll: true,
|
|
76001
|
+
visibilityToggle: true,
|
|
76002
|
+
visibilityIsolate: true,
|
|
76003
|
+
visibilityAutoIsolate: true,
|
|
76004
|
+
visibilitySettings: true,
|
|
76005
|
+
// Control bar - settings
|
|
76006
|
+
projectInspector: true,
|
|
76007
|
+
settings: true,
|
|
76008
|
+
help: true,
|
|
76009
|
+
maximise: true
|
|
76010
|
+
}
|
|
76011
|
+
};
|
|
76012
|
+
}
|
|
76013
|
+
function renderSettingsInputBox(settings2, item) {
|
|
76014
|
+
const ref = React2.useRef(null);
|
|
76015
|
+
React2.useEffect(() => {
|
|
76016
|
+
var _a3;
|
|
76017
|
+
ref.current.value = (_a3 = item.getter(settings2.value)) == null ? void 0 : _a3.toString();
|
|
76018
|
+
}, []);
|
|
76019
|
+
const update = (event) => {
|
|
76020
|
+
const str = event.target.value;
|
|
76021
|
+
const n = Number.parseFloat(str);
|
|
76022
|
+
if (Number.isNaN(n)) {
|
|
76023
|
+
event.target.value = item.getter(settings2.value).toString();
|
|
76024
|
+
} else {
|
|
76025
|
+
const value = item.transform(n);
|
|
76026
|
+
event.target.value = value.toString();
|
|
76027
|
+
settings2.update((s) => item.setter(s, value));
|
|
76028
|
+
}
|
|
76029
|
+
};
|
|
76030
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-box-input vc-my-1 ", children: [
|
|
76031
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2", children: [
|
|
76032
|
+
item.label,
|
|
76033
|
+
":"
|
|
76034
|
+
] }),
|
|
76035
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76036
|
+
"input",
|
|
76037
|
+
{
|
|
76038
|
+
ref,
|
|
76039
|
+
type: "text",
|
|
76040
|
+
className: "vim-settings-textbox vc-border vc-rounded-sm vc-border-gray vc-w-14 vc-ml-1 vc-p-1",
|
|
76041
|
+
onBlur: update
|
|
76042
|
+
}
|
|
76043
|
+
),
|
|
76044
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2 vc-text-gray vc-ml-1", children: item.info })
|
|
76045
|
+
] });
|
|
76046
|
+
}
|
|
76047
|
+
function renderSettingsToggle(settings2, item) {
|
|
76048
|
+
const value = item.getter(settings2.value);
|
|
76049
|
+
if (value === "AlwaysTrue" || value === "AlwaysFalse") return null;
|
|
76050
|
+
const handleChange = () => {
|
|
76051
|
+
const current = item.getter(settings2.value);
|
|
76052
|
+
settings2.update((s) => item.setter(s, !current));
|
|
76053
|
+
};
|
|
76054
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: "vc-m-1 vc-block vc-select-none vc-items-center vc-py-1 vc-text-gray-warm", children: [
|
|
76055
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76056
|
+
"input",
|
|
76057
|
+
{
|
|
76058
|
+
type: "checkbox",
|
|
76059
|
+
checked: value,
|
|
76060
|
+
onChange: handleChange,
|
|
76061
|
+
className: "vim-settings-checkbox vc-checked:bg-primary-royal vc-mr-2 vc-rounded vc-border vc-border-gray-medium"
|
|
76062
|
+
}
|
|
76063
|
+
),
|
|
76064
|
+
" ",
|
|
76065
|
+
item.label
|
|
76066
|
+
] });
|
|
76067
|
+
}
|
|
76068
|
+
function renderSettingsSubtitle(item) {
|
|
76069
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-subtitle", children: item.title });
|
|
76070
|
+
}
|
|
76071
|
+
function SettingsPanel(props) {
|
|
76072
|
+
if (!props.visible) return null;
|
|
76073
|
+
function renderItem(settings2, item) {
|
|
76074
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(React2.Fragment, { children: (() => {
|
|
76075
|
+
switch (item.type) {
|
|
76076
|
+
case "subtitle":
|
|
76077
|
+
return renderSettingsSubtitle(item);
|
|
76078
|
+
case "toggle":
|
|
76079
|
+
return renderSettingsToggle(settings2, item);
|
|
76080
|
+
case "box":
|
|
76081
|
+
return renderSettingsInputBox(settings2, item);
|
|
76082
|
+
case "element":
|
|
76083
|
+
return item.element;
|
|
76084
|
+
default:
|
|
76085
|
+
return null;
|
|
76086
|
+
}
|
|
76087
|
+
})() }, item.key);
|
|
76088
|
+
}
|
|
76089
|
+
const customizer = props.settings.customizer.get();
|
|
76090
|
+
const content2 = customizer ? customizer(props.content) : props.content;
|
|
76091
|
+
const sections = buildSections(content2);
|
|
76092
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-absolute vc-inset-0", children: [
|
|
76093
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-title vc-mb-2", children: "Settings" }),
|
|
76094
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "\r\n vim-settings\r\n vc-absolute vc-top-8 vc-left-0 vc-right-0 vc-bottom-0\r\n vc-overflow-y-auto\r\n vc-pr-2\r\n vc-space-y-2\r\n vc-box-border\r\n ", children: sections.map((section) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
76095
|
+
"details",
|
|
76096
|
+
{
|
|
76097
|
+
open: true,
|
|
76098
|
+
className: "\r\n vim-settings-section\r\n vc-bg-white\r\n vc-rounded-md\r\n vc-shadow-sm\r\n vc-border\r\n vc-border-slate-200\r\n vc-p-2\r\n vc-space-y-2\r\n ",
|
|
76099
|
+
children: [
|
|
76100
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("summary", { className: "vim-settings-section-title vc-font-medium vc-text-sm vc-cursor-pointer", children: section.title }),
|
|
76101
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "vim-settings-section-content vc-mt-2 vc-space-y-2", children: section.items.map(
|
|
76102
|
+
(item) => renderItem(props.settings, item)
|
|
76103
|
+
) })
|
|
76104
|
+
]
|
|
76105
|
+
},
|
|
76106
|
+
section.key
|
|
76107
|
+
)) })
|
|
76108
|
+
] });
|
|
76109
|
+
}
|
|
76110
|
+
function buildSections(items) {
|
|
76111
|
+
const sections = [];
|
|
76112
|
+
let current = null;
|
|
76113
|
+
for (const item of items) {
|
|
76114
|
+
if (item.type === "subtitle") {
|
|
76115
|
+
current = {
|
|
76116
|
+
key: item.key,
|
|
76117
|
+
title: item.title,
|
|
76118
|
+
items: []
|
|
76119
|
+
};
|
|
76120
|
+
sections.push(current);
|
|
76121
|
+
} else {
|
|
76122
|
+
if (!current) {
|
|
76123
|
+
current = {
|
|
76124
|
+
key: "default",
|
|
76125
|
+
title: "",
|
|
76126
|
+
items: []
|
|
76127
|
+
};
|
|
76128
|
+
sections.push(current);
|
|
76129
|
+
}
|
|
76130
|
+
current.items.push(item);
|
|
76131
|
+
}
|
|
76132
|
+
}
|
|
76133
|
+
return sections;
|
|
76134
|
+
}
|
|
76135
|
+
class SettingsPanelKeys {
|
|
76136
|
+
}
|
|
76137
|
+
// === Inputs ===
|
|
76138
|
+
__publicField(SettingsPanelKeys, "InputsSubtitle", "inputs");
|
|
76139
|
+
__publicField(SettingsPanelKeys, "InputsScrollSpeedBox", "scrollSpeed");
|
|
76140
|
+
// === Panels ===
|
|
76141
|
+
__publicField(SettingsPanelKeys, "PanelsSubtitle", "panels");
|
|
76142
|
+
__publicField(SettingsPanelKeys, "PanelsShowLogoToggle", "logo");
|
|
76143
|
+
__publicField(SettingsPanelKeys, "PanelsShowBimTreeToggle", "bimTree");
|
|
76144
|
+
__publicField(SettingsPanelKeys, "PanelsShowBimInfoToggle", "bimInfo");
|
|
76145
|
+
__publicField(SettingsPanelKeys, "PanelsShowAxesPanelToggle", "axesPanel");
|
|
76146
|
+
__publicField(SettingsPanelKeys, "PanelsShowPerformancePanelToggle", "performance");
|
|
76147
|
+
// === Axes ===
|
|
76148
|
+
__publicField(SettingsPanelKeys, "AxesSubtitle", "axes");
|
|
76149
|
+
__publicField(SettingsPanelKeys, "AxesShowOrthographicButtonToggle", "orthographic");
|
|
76150
|
+
__publicField(SettingsPanelKeys, "AxesShowResetCameraButtonToggle", "resetCamera");
|
|
76151
|
+
// === Control Bar ===
|
|
76152
|
+
__publicField(SettingsPanelKeys, "ControlBarSubtitle", "controlBar");
|
|
76153
|
+
__publicField(SettingsPanelKeys, "ControlBarShowControlBarToggle", "controlBarVisible");
|
|
76154
|
+
// --- Control Bar - Cursors ---
|
|
76155
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsSubtitle", "controlBarCursors");
|
|
76156
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowOrbitButtonToggle", "orbit");
|
|
76157
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowLookAroundButtonToggle", "lookAround");
|
|
76158
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowPanButtonToggle", "pan");
|
|
76159
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowZoomButtonToggle", "zoom");
|
|
76160
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowZoomWindowButtonToggle", "zoomWindow");
|
|
76161
|
+
// --- Control Bar - Tools ---
|
|
76162
|
+
__publicField(SettingsPanelKeys, "ControlBarToolsSubtitle", "controlBarTools");
|
|
76163
|
+
__publicField(SettingsPanelKeys, "ControlBarToolsShowMeasuringModeButtonToggle", "measuringMode");
|
|
76164
|
+
// --- Control Bar Camera ---
|
|
76165
|
+
__publicField(SettingsPanelKeys, "ControlBarCameraSubtitle", "settingsPanel.controlBar.Camera");
|
|
76166
|
+
__publicField(SettingsPanelKeys, "ControlBarAutoCamera", "settingsPanel.controlBar.autoCamera");
|
|
76167
|
+
__publicField(SettingsPanelKeys, "ControlBarFrameSelection", "settingsPanel.controlBar.frameSelection");
|
|
76168
|
+
__publicField(SettingsPanelKeys, "ControlBarFrameAll", "settingsPanel.controlBar.frameAll");
|
|
76169
|
+
// --- Control Bar - Sectioning ---
|
|
76170
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningSubtitle", "settingsPanel.controlBar.sectioning");
|
|
76171
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningEnable", "settingsPanel.controlBar.enableSectioning");
|
|
76172
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningFitToSelection", "settingsPanel.controlBar.fitToSelection");
|
|
76173
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningReset", "settingsPanel.controlBar.reset");
|
|
76174
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningShow", "settingsPanel.controlBar.show");
|
|
76175
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningAuto", "settingsPanel.controlBar.auto");
|
|
76176
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningSettings", "settingsPanel.controlBar.settings");
|
|
76177
|
+
// --- Control Bar - Visibility ---
|
|
76178
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilitySubtitle", "controlBar.visibility.subtitle");
|
|
76179
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityClearSelection", "controlBar.visibility.clearSelection");
|
|
76180
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityShowAll", "controlBar.visibility.showAll");
|
|
76181
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityToggle", "controlBar.visibility.toggle");
|
|
76182
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityIsolate", "controlBar.visibility.isolate");
|
|
76183
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityAutoIsolate", "controlBar.visibility.autoIsolate");
|
|
76184
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilitySettings", "controlBar.visibility.settings");
|
|
76185
|
+
// --- Control Bar - Settings ---
|
|
76186
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsSubtitle", "controlBarSettings");
|
|
76187
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowProjectInspectorButtonToggle", "projectInspector");
|
|
76188
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowSettingsButtonToggle", "settingsButton");
|
|
76189
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowHelpButtonToggle", "help");
|
|
76190
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowMaximiseButtonToggle", "maximise");
|
|
76191
|
+
function getControlBarCursorSettings() {
|
|
76192
|
+
return [
|
|
76193
|
+
{
|
|
76194
|
+
type: "subtitle",
|
|
76195
|
+
key: SettingsPanelKeys.ControlBarCursorsSubtitle,
|
|
76196
|
+
title: "Control Bar - Cursors"
|
|
76197
|
+
},
|
|
76198
|
+
{
|
|
76199
|
+
type: "toggle",
|
|
76200
|
+
key: SettingsPanelKeys.ControlBarCursorsShowOrbitButtonToggle,
|
|
76201
|
+
label: "Orbit",
|
|
76202
|
+
getter: (s) => s.ui.cursorOrbit,
|
|
76203
|
+
setter: (s, v) => s.ui.cursorOrbit = v
|
|
76204
|
+
},
|
|
76205
|
+
{
|
|
76206
|
+
type: "toggle",
|
|
76207
|
+
key: SettingsPanelKeys.ControlBarCursorsShowLookAroundButtonToggle,
|
|
76208
|
+
label: "Look Around",
|
|
76209
|
+
getter: (s) => s.ui.cursorLookAround,
|
|
76210
|
+
setter: (s, v) => s.ui.cursorLookAround = v
|
|
76211
|
+
},
|
|
76212
|
+
{
|
|
76213
|
+
type: "toggle",
|
|
76214
|
+
key: SettingsPanelKeys.ControlBarCursorsShowPanButtonToggle,
|
|
76215
|
+
label: "Pan",
|
|
76216
|
+
getter: (s) => s.ui.cursorPan,
|
|
76217
|
+
setter: (s, v) => s.ui.cursorPan = v
|
|
76218
|
+
},
|
|
76219
|
+
{
|
|
76220
|
+
type: "toggle",
|
|
76221
|
+
key: SettingsPanelKeys.ControlBarCursorsShowZoomButtonToggle,
|
|
76222
|
+
label: "Zoom",
|
|
76223
|
+
getter: (s) => s.ui.cursorZoom,
|
|
76224
|
+
setter: (s, v) => s.ui.cursorZoom = v
|
|
76225
|
+
}
|
|
76226
|
+
];
|
|
76227
|
+
}
|
|
76228
|
+
function getControlBarCameraSettings() {
|
|
76229
|
+
return [
|
|
76230
|
+
{
|
|
76231
|
+
type: "subtitle",
|
|
76232
|
+
key: SettingsPanelKeys.ControlBarCameraSubtitle,
|
|
76233
|
+
title: "Control Bar - Camera"
|
|
76234
|
+
},
|
|
76235
|
+
{
|
|
76236
|
+
type: "toggle",
|
|
76237
|
+
key: SettingsPanelKeys.ControlBarAutoCamera,
|
|
76238
|
+
label: "Auto Camera",
|
|
76239
|
+
getter: (s) => s.ui.cameraAuto,
|
|
76240
|
+
setter: (s, v) => s.ui.cameraAuto = v
|
|
76241
|
+
},
|
|
76242
|
+
{
|
|
76243
|
+
type: "toggle",
|
|
76244
|
+
key: SettingsPanelKeys.ControlBarFrameSelection,
|
|
76245
|
+
label: "Frame Selection",
|
|
76246
|
+
getter: (s) => s.ui.cameraFrameSelection,
|
|
76247
|
+
setter: (s, v) => s.ui.cameraFrameSelection = v
|
|
76248
|
+
},
|
|
76249
|
+
{
|
|
76250
|
+
type: "toggle",
|
|
76251
|
+
key: SettingsPanelKeys.ControlBarFrameAll,
|
|
76252
|
+
label: "Frame All",
|
|
76253
|
+
getter: (s) => s.ui.cameraFrameScene,
|
|
76254
|
+
setter: (s, v) => s.ui.cameraFrameScene = v
|
|
76255
|
+
}
|
|
76256
|
+
];
|
|
76257
|
+
}
|
|
76258
|
+
function getControlBarSectionBoxSettings() {
|
|
76259
|
+
return [
|
|
76260
|
+
{
|
|
76261
|
+
type: "subtitle",
|
|
76262
|
+
key: SettingsPanelKeys.ControlBarSectioningSubtitle,
|
|
76263
|
+
title: "Control Bar - Sectioning"
|
|
76264
|
+
},
|
|
76265
|
+
{
|
|
76266
|
+
type: "toggle",
|
|
76267
|
+
key: SettingsPanelKeys.ControlBarSectioningEnable,
|
|
76268
|
+
label: "Enable Sectioning",
|
|
76269
|
+
getter: (s) => s.ui.sectioningEnable,
|
|
76270
|
+
setter: (s, v) => s.ui.sectioningEnable = v
|
|
76271
|
+
},
|
|
76272
|
+
{
|
|
76273
|
+
type: "toggle",
|
|
76274
|
+
key: SettingsPanelKeys.ControlBarSectioningFitToSelection,
|
|
76275
|
+
label: "Fit To Selection",
|
|
76276
|
+
getter: (s) => s.ui.sectioningFitToSelection,
|
|
76277
|
+
setter: (s, v) => s.ui.sectioningFitToSelection = v
|
|
76278
|
+
},
|
|
76279
|
+
{
|
|
76280
|
+
type: "toggle",
|
|
76281
|
+
key: SettingsPanelKeys.ControlBarSectioningReset,
|
|
76282
|
+
label: "Reset",
|
|
76283
|
+
getter: (s) => s.ui.sectioningReset,
|
|
76284
|
+
setter: (s, v) => s.ui.sectioningReset = v
|
|
76285
|
+
},
|
|
76286
|
+
{
|
|
76287
|
+
type: "toggle",
|
|
76288
|
+
key: SettingsPanelKeys.ControlBarSectioningShow,
|
|
76289
|
+
label: "Show",
|
|
76290
|
+
getter: (s) => s.ui.sectioningShow,
|
|
76291
|
+
setter: (s, v) => s.ui.sectioningShow = v
|
|
76292
|
+
},
|
|
76293
|
+
{
|
|
76294
|
+
type: "toggle",
|
|
76295
|
+
key: SettingsPanelKeys.ControlBarSectioningAuto,
|
|
76296
|
+
label: "Auto",
|
|
76297
|
+
getter: (s) => s.ui.sectioningAuto,
|
|
76298
|
+
setter: (s, v) => s.ui.sectioningAuto = v
|
|
76299
|
+
},
|
|
76300
|
+
{
|
|
76301
|
+
type: "toggle",
|
|
76302
|
+
key: SettingsPanelKeys.ControlBarSectioningSettings,
|
|
76303
|
+
label: "Settings",
|
|
76304
|
+
getter: (s) => s.ui.sectioningSettings,
|
|
76305
|
+
setter: (s, v) => s.ui.sectioningSettings = v
|
|
76306
|
+
}
|
|
76307
|
+
];
|
|
76308
|
+
}
|
|
76309
|
+
function getControlBarVisibilitySettings() {
|
|
76310
|
+
return [
|
|
76311
|
+
{
|
|
76312
|
+
type: "subtitle",
|
|
76313
|
+
key: SettingsPanelKeys.ControlBarVisibilitySubtitle,
|
|
76314
|
+
title: "Control Bar - Visibility"
|
|
76315
|
+
},
|
|
76316
|
+
{
|
|
76317
|
+
type: "toggle",
|
|
76318
|
+
key: SettingsPanelKeys.ControlBarVisibilityClearSelection,
|
|
76319
|
+
label: "Clear Selection",
|
|
76320
|
+
getter: (s) => s.ui.visibilityClearSelection,
|
|
76321
|
+
setter: (s, v) => s.ui.visibilityClearSelection = v
|
|
76322
|
+
},
|
|
76323
|
+
{
|
|
76324
|
+
type: "toggle",
|
|
76325
|
+
key: SettingsPanelKeys.ControlBarVisibilityShowAll,
|
|
76326
|
+
label: "Show All",
|
|
76327
|
+
getter: (s) => s.ui.visibilityShowAll,
|
|
76328
|
+
setter: (s, v) => s.ui.visibilityShowAll = v
|
|
76329
|
+
},
|
|
76330
|
+
{
|
|
76331
|
+
type: "toggle",
|
|
76332
|
+
key: SettingsPanelKeys.ControlBarVisibilityToggle,
|
|
76333
|
+
label: "Toggle",
|
|
76334
|
+
getter: (s) => s.ui.visibilityToggle,
|
|
76335
|
+
setter: (s, v) => s.ui.visibilityToggle = v
|
|
76336
|
+
},
|
|
76337
|
+
{
|
|
76338
|
+
type: "toggle",
|
|
76339
|
+
key: SettingsPanelKeys.ControlBarVisibilityIsolate,
|
|
76340
|
+
label: "Isolate",
|
|
76341
|
+
getter: (s) => s.ui.visibilityIsolate,
|
|
76342
|
+
setter: (s, v) => s.ui.visibilityIsolate = v
|
|
76343
|
+
},
|
|
76344
|
+
{
|
|
76345
|
+
type: "toggle",
|
|
76346
|
+
key: SettingsPanelKeys.ControlBarVisibilityAutoIsolate,
|
|
76347
|
+
label: "Auto Isolate",
|
|
76348
|
+
getter: (s) => s.ui.visibilityAutoIsolate,
|
|
76349
|
+
setter: (s, v) => s.ui.visibilityAutoIsolate = v
|
|
76350
|
+
},
|
|
76351
|
+
{
|
|
76352
|
+
type: "toggle",
|
|
76353
|
+
key: SettingsPanelKeys.ControlBarVisibilitySettings,
|
|
76354
|
+
label: "Settings",
|
|
76355
|
+
getter: (s) => s.ui.visibilitySettings,
|
|
76356
|
+
setter: (s, v) => s.ui.visibilitySettings = v
|
|
76357
|
+
}
|
|
76358
|
+
];
|
|
76359
|
+
}
|
|
76360
|
+
function getControlBarVariousSettings() {
|
|
76361
|
+
return [
|
|
76362
|
+
{
|
|
76363
|
+
type: "subtitle",
|
|
76364
|
+
key: SettingsPanelKeys.ControlBarSettingsSubtitle,
|
|
76365
|
+
title: "Control Bar - Settings"
|
|
76366
|
+
},
|
|
76367
|
+
{
|
|
76368
|
+
type: "toggle",
|
|
76369
|
+
key: SettingsPanelKeys.ControlBarSettingsShowProjectInspectorButtonToggle,
|
|
76370
|
+
label: "Project Inspector",
|
|
76371
|
+
getter: (s) => s.ui.projectInspector,
|
|
76372
|
+
setter: (s, v) => s.ui.projectInspector = v
|
|
76373
|
+
},
|
|
76374
|
+
{
|
|
76375
|
+
type: "toggle",
|
|
76376
|
+
key: SettingsPanelKeys.ControlBarSettingsShowSettingsButtonToggle,
|
|
76377
|
+
label: "Settings",
|
|
76378
|
+
getter: (s) => s.ui.settings,
|
|
76379
|
+
setter: (s, v) => s.ui.settings = v
|
|
76380
|
+
},
|
|
76381
|
+
{
|
|
76382
|
+
type: "toggle",
|
|
76383
|
+
key: SettingsPanelKeys.ControlBarSettingsShowHelpButtonToggle,
|
|
76384
|
+
label: "Help",
|
|
76385
|
+
getter: (s) => s.ui.help,
|
|
76386
|
+
setter: (s, v) => s.ui.help = v
|
|
76387
|
+
},
|
|
76388
|
+
{
|
|
76389
|
+
type: "toggle",
|
|
76390
|
+
key: SettingsPanelKeys.ControlBarSettingsShowMaximiseButtonToggle,
|
|
76391
|
+
label: "Maximise",
|
|
76392
|
+
getter: (s) => s.ui.maximise,
|
|
76393
|
+
setter: (s, v) => s.ui.maximise = v
|
|
76394
|
+
}
|
|
76395
|
+
];
|
|
76396
|
+
}
|
|
76397
|
+
function getPanelsVisibilitySettings() {
|
|
76398
|
+
return [
|
|
76399
|
+
{
|
|
76400
|
+
type: "subtitle",
|
|
76401
|
+
key: SettingsPanelKeys.PanelsSubtitle,
|
|
76402
|
+
title: "Panels Visibility"
|
|
76403
|
+
},
|
|
76404
|
+
{
|
|
76405
|
+
type: "toggle",
|
|
76406
|
+
key: SettingsPanelKeys.PanelsShowLogoToggle,
|
|
76407
|
+
label: "Logo",
|
|
76408
|
+
getter: (s) => s.ui.logo,
|
|
76409
|
+
setter: (s, v) => s.ui.logo = v
|
|
76410
|
+
},
|
|
76411
|
+
{
|
|
76412
|
+
type: "toggle",
|
|
76413
|
+
key: SettingsPanelKeys.PanelsShowBimTreeToggle,
|
|
76414
|
+
label: "Bim Tree",
|
|
76415
|
+
getter: (s) => s.ui.bimTreePanel,
|
|
76416
|
+
setter: (s, v) => s.ui.bimTreePanel = v
|
|
76417
|
+
},
|
|
76418
|
+
{
|
|
76419
|
+
type: "toggle",
|
|
76420
|
+
key: SettingsPanelKeys.PanelsShowBimInfoToggle,
|
|
76421
|
+
label: "Bim Info",
|
|
76422
|
+
getter: (s) => s.ui.bimInfoPanel,
|
|
76423
|
+
setter: (s, v) => s.ui.bimInfoPanel = v
|
|
76424
|
+
},
|
|
76425
|
+
{
|
|
76426
|
+
type: "toggle",
|
|
76427
|
+
key: SettingsPanelKeys.PanelsShowAxesPanelToggle,
|
|
76428
|
+
label: "Axes",
|
|
76429
|
+
getter: (s) => s.ui.axesPanel,
|
|
76430
|
+
setter: (s, v) => s.ui.axesPanel = v
|
|
76431
|
+
},
|
|
76432
|
+
{
|
|
76433
|
+
type: "toggle",
|
|
76434
|
+
key: SettingsPanelKeys.PanelsShowPerformancePanelToggle,
|
|
76435
|
+
label: "Performance",
|
|
76436
|
+
getter: (s) => s.ui.performance,
|
|
76437
|
+
setter: (s, v) => s.ui.performance = v
|
|
76438
|
+
},
|
|
76439
|
+
{
|
|
76440
|
+
type: "toggle",
|
|
76441
|
+
key: SettingsPanelKeys.ControlBarShowControlBarToggle,
|
|
76442
|
+
label: "Control Bar",
|
|
76443
|
+
getter: (s) => s.ui.controlBar,
|
|
76444
|
+
setter: (s, v) => s.ui.controlBar = v
|
|
76445
|
+
}
|
|
76446
|
+
];
|
|
76447
|
+
}
|
|
76448
|
+
function getInputsSettings(viewer) {
|
|
76449
|
+
return [
|
|
76450
|
+
{
|
|
76451
|
+
type: "subtitle",
|
|
76452
|
+
key: SettingsPanelKeys.InputsSubtitle,
|
|
76453
|
+
title: "Inputs"
|
|
76454
|
+
},
|
|
76455
|
+
{
|
|
76456
|
+
type: "box",
|
|
76457
|
+
key: SettingsPanelKeys.InputsScrollSpeedBox,
|
|
76458
|
+
label: "Scroll Speed",
|
|
76459
|
+
info: "[0.1,10]",
|
|
76460
|
+
transform: (n) => MathUtils.clamp(n, 0.1, 10),
|
|
76461
|
+
getter: (_s) => viewer.inputs.scrollSpeed,
|
|
76462
|
+
setter: (_s, v) => {
|
|
76463
|
+
viewer.inputs.scrollSpeed = v;
|
|
76464
|
+
}
|
|
76465
|
+
}
|
|
76466
|
+
];
|
|
76467
|
+
}
|
|
76468
|
+
function getAxesPanelSettings() {
|
|
76469
|
+
return [
|
|
76470
|
+
{
|
|
76471
|
+
type: "subtitle",
|
|
76472
|
+
key: SettingsPanelKeys.AxesSubtitle,
|
|
76473
|
+
title: "Axes Panel"
|
|
76474
|
+
},
|
|
76475
|
+
{
|
|
76476
|
+
type: "toggle",
|
|
76477
|
+
key: SettingsPanelKeys.AxesShowOrthographicButtonToggle,
|
|
76478
|
+
label: "Orthographic Camera",
|
|
76479
|
+
getter: (s) => s.ui.orthographic,
|
|
76480
|
+
setter: (s, v) => s.ui.orthographic = v
|
|
76481
|
+
},
|
|
76482
|
+
{
|
|
76483
|
+
type: "toggle",
|
|
76484
|
+
key: SettingsPanelKeys.AxesShowResetCameraButtonToggle,
|
|
76485
|
+
label: "Reset Camera",
|
|
76486
|
+
getter: (s) => s.ui.resetCamera,
|
|
76487
|
+
setter: (s, v) => s.ui.resetCamera = v
|
|
76488
|
+
}
|
|
76489
|
+
];
|
|
76490
|
+
}
|
|
76491
|
+
function getControlBarMeasureSettings() {
|
|
76492
|
+
return [
|
|
76493
|
+
{
|
|
76494
|
+
type: "subtitle",
|
|
76495
|
+
key: SettingsPanelKeys.ControlBarToolsSubtitle,
|
|
76496
|
+
title: "Control Bar - Measurement"
|
|
76497
|
+
},
|
|
76498
|
+
{
|
|
76499
|
+
type: "toggle",
|
|
76500
|
+
key: SettingsPanelKeys.ControlBarToolsShowMeasuringModeButtonToggle,
|
|
76501
|
+
label: "Enable",
|
|
76502
|
+
getter: (s) => s.ui.measuringMode,
|
|
76503
|
+
setter: (s, v) => s.ui.measuringMode = v
|
|
76504
|
+
}
|
|
76505
|
+
];
|
|
76506
|
+
}
|
|
76507
|
+
function getWebglSettingsContent(viewer) {
|
|
76508
|
+
return [
|
|
76509
|
+
...getInputsSettings(viewer),
|
|
76510
|
+
...getPanelsVisibilitySettings(),
|
|
76511
|
+
...getAxesPanelSettings(),
|
|
76512
|
+
...getControlBarCursorSettings(),
|
|
76513
|
+
...getControlBarCameraSettings(),
|
|
76514
|
+
...getControlBarVisibilitySettings(),
|
|
76515
|
+
...getControlBarMeasureSettings(),
|
|
76516
|
+
...getControlBarSectionBoxSettings(),
|
|
76517
|
+
...getControlBarVariousSettings()
|
|
76518
|
+
];
|
|
76519
|
+
}
|
|
76520
|
+
function applyWebglSettings(settings2) {
|
|
76521
|
+
const performance2 = document.getElementsByClassName("vim-performance-div")[0];
|
|
76522
|
+
if (performance2) {
|
|
76523
|
+
if (isTrue(settings2.ui.performance)) {
|
|
76524
|
+
performance2.classList.remove("vc-hidden");
|
|
76525
|
+
} else {
|
|
76526
|
+
performance2.classList.add("vc-hidden");
|
|
76527
|
+
}
|
|
76528
|
+
}
|
|
76529
|
+
}
|
|
76062
76530
|
function createViewer$1(container, settings2 = {}, coreSettings = {}) {
|
|
76063
76531
|
const controllablePromise = new ControllablePromise();
|
|
76064
76532
|
const cmpContainer = container instanceof HTMLElement ? createContainer(container) : container ?? createContainer();
|
|
@@ -76089,7 +76557,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76089
76557
|
return controllablePromise.promise;
|
|
76090
76558
|
}
|
|
76091
76559
|
function Viewer$1(props) {
|
|
76092
|
-
const settings2 = useSettings(props.
|
|
76560
|
+
const settings2 = useSettings(props.settings ?? {}, getDefaultSettings(), (s) => applyWebglSettings(s));
|
|
76093
76561
|
const modal = React2.useRef(null);
|
|
76094
76562
|
const sectionBoxRef = useWebglSectionBox(props.viewer);
|
|
76095
76563
|
const isolationPanelHandle = React2.useRef(null);
|
|
@@ -76138,7 +76606,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76138
76606
|
loader: loader.current,
|
|
76139
76607
|
isolation: isolationRef,
|
|
76140
76608
|
camera: camera2,
|
|
76141
|
-
settings:
|
|
76609
|
+
settings: {
|
|
76610
|
+
update: settings2.update,
|
|
76611
|
+
register: settings2.register,
|
|
76612
|
+
customize: (c) => settings2.customizer.set(c)
|
|
76613
|
+
},
|
|
76142
76614
|
get isolationPanel() {
|
|
76143
76615
|
return isolationPanelHandle.current;
|
|
76144
76616
|
},
|
|
@@ -76184,7 +76656,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76184
76656
|
SettingsPanel,
|
|
76185
76657
|
{
|
|
76186
76658
|
visible: side.getContent() === "settings",
|
|
76187
|
-
|
|
76659
|
+
content: getWebglSettingsContent(props.viewer),
|
|
76188
76660
|
settings: settings2
|
|
76189
76661
|
}
|
|
76190
76662
|
)
|
|
@@ -76213,7 +76685,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76213
76685
|
}
|
|
76214
76686
|
),
|
|
76215
76687
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state: sectionBoxRef }),
|
|
76216
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef }),
|
|
76688
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef, transparency: true }),
|
|
76217
76689
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76218
76690
|
AxesPanelMemo,
|
|
76219
76691
|
{
|
|
@@ -76252,7 +76724,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76252
76724
|
const index$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
76253
76725
|
__proto__: null,
|
|
76254
76726
|
Viewer: Viewer$1,
|
|
76255
|
-
createViewer: createViewer$1
|
|
76727
|
+
createViewer: createViewer$1,
|
|
76728
|
+
getDefaultSettings
|
|
76256
76729
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
76257
76730
|
function getErrorMessage(state) {
|
|
76258
76731
|
if (state.status !== "error") return void 0;
|
|
@@ -76318,11 +76791,13 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76318
76791
|
};
|
|
76319
76792
|
return useSectionBox(ultraAdapter);
|
|
76320
76793
|
}
|
|
76321
|
-
function useUltraControlBar(viewer, section, isolation, camera2, customization) {
|
|
76322
|
-
|
|
76323
|
-
|
|
76324
|
-
|
|
76325
|
-
|
|
76794
|
+
function useUltraControlBar(viewer, section, isolation, camera2, settings2, side, customization) {
|
|
76795
|
+
let bar = [
|
|
76796
|
+
controlBarCamera(camera2, settings2.ui),
|
|
76797
|
+
controlBarVisibility(isolation, settings2.ui),
|
|
76798
|
+
controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
|
|
76799
|
+
controlBarSettingsUltra(side, settings2)
|
|
76800
|
+
];
|
|
76326
76801
|
bar = (customization == null ? void 0 : customization(bar)) ?? bar;
|
|
76327
76802
|
return bar;
|
|
76328
76803
|
}
|
|
@@ -76426,6 +76901,9 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76426
76901
|
}
|
|
76427
76902
|
}
|
|
76428
76903
|
},
|
|
76904
|
+
enableTransparency: (enable) => {
|
|
76905
|
+
console.log("enableTransparency not implemented");
|
|
76906
|
+
},
|
|
76429
76907
|
getGhostOpacity: () => viewer.renderer.ghostOpacity,
|
|
76430
76908
|
setGhostOpacity: (opacity) => {
|
|
76431
76909
|
viewer.renderer.ghostOpacity = opacity;
|
|
@@ -76467,7 +76945,62 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76467
76945
|
function allButSelection(viewer, vim) {
|
|
76468
76946
|
return false;
|
|
76469
76947
|
}
|
|
76470
|
-
function
|
|
76948
|
+
function getDefaultUltraSettings() {
|
|
76949
|
+
return {
|
|
76950
|
+
ui: {
|
|
76951
|
+
// Control bar - cursors
|
|
76952
|
+
cursorOrbit: true,
|
|
76953
|
+
cursorLookAround: true,
|
|
76954
|
+
cursorPan: true,
|
|
76955
|
+
cursorZoom: true,
|
|
76956
|
+
// Control bar - camera
|
|
76957
|
+
cameraAuto: true,
|
|
76958
|
+
cameraFrameScene: true,
|
|
76959
|
+
cameraFrameSelection: true,
|
|
76960
|
+
// Control bar - tools
|
|
76961
|
+
sectioningEnable: true,
|
|
76962
|
+
sectioningFitToSelection: true,
|
|
76963
|
+
sectioningReset: true,
|
|
76964
|
+
sectioningShow: true,
|
|
76965
|
+
sectioningAuto: true,
|
|
76966
|
+
sectioningSettings: true,
|
|
76967
|
+
// Control bar - Visibility
|
|
76968
|
+
visibilityEnable: true,
|
|
76969
|
+
visibilityClearSelection: true,
|
|
76970
|
+
visibilityShowAll: true,
|
|
76971
|
+
visibilityToggle: true,
|
|
76972
|
+
visibilityIsolate: true,
|
|
76973
|
+
visibilityAutoIsolate: true,
|
|
76974
|
+
visibilitySettings: true,
|
|
76975
|
+
settings: true
|
|
76976
|
+
}
|
|
76977
|
+
};
|
|
76978
|
+
}
|
|
76979
|
+
function getControlBarUltraSettings() {
|
|
76980
|
+
return [
|
|
76981
|
+
{
|
|
76982
|
+
type: "subtitle",
|
|
76983
|
+
key: SettingsPanelKeys.ControlBarSettingsSubtitle,
|
|
76984
|
+
title: "Control Bar - Settings"
|
|
76985
|
+
},
|
|
76986
|
+
{
|
|
76987
|
+
type: "toggle",
|
|
76988
|
+
key: SettingsPanelKeys.ControlBarSettingsShowSettingsButtonToggle,
|
|
76989
|
+
label: "Settings",
|
|
76990
|
+
getter: (s) => s.ui.settings,
|
|
76991
|
+
setter: (s, v) => s.ui.settings = v
|
|
76992
|
+
}
|
|
76993
|
+
];
|
|
76994
|
+
}
|
|
76995
|
+
function getUltraSettingsContent(viewer) {
|
|
76996
|
+
return [
|
|
76997
|
+
...getControlBarCameraSettings(),
|
|
76998
|
+
...getControlBarVisibilitySettings(),
|
|
76999
|
+
...getControlBarSectionBoxSettings(),
|
|
77000
|
+
...getControlBarUltraSettings()
|
|
77001
|
+
];
|
|
77002
|
+
}
|
|
77003
|
+
function createViewer(container, settings2) {
|
|
76471
77004
|
const controllablePromise = new ControllablePromise();
|
|
76472
77005
|
const cmpContainer = container instanceof HTMLElement ? createContainer(container) : container ?? createContainer();
|
|
76473
77006
|
const core = Viewer$2.createWithCanvas(cmpContainer.gfx);
|
|
@@ -76486,6 +77019,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76486
77019
|
{
|
|
76487
77020
|
container: cmpContainer,
|
|
76488
77021
|
core,
|
|
77022
|
+
settings: settings2,
|
|
76489
77023
|
onMount: (cmp) => controllablePromise.resolve(attachDispose(cmp))
|
|
76490
77024
|
}
|
|
76491
77025
|
)
|
|
@@ -76493,6 +77027,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76493
77027
|
return controllablePromise.promise;
|
|
76494
77028
|
}
|
|
76495
77029
|
function Viewer(props) {
|
|
77030
|
+
const settings2 = useSettings(props.settings ?? {}, getDefaultUltraSettings());
|
|
76496
77031
|
const sectionBoxRef = useUltraSectionBox(props.core);
|
|
76497
77032
|
const camera2 = useUltraCamera(props.core, sectionBoxRef);
|
|
76498
77033
|
const isolationPanelHandle = React2.useRef(null);
|
|
@@ -76502,7 +77037,15 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76502
77037
|
const [_, setSelectState] = React2.useState(0);
|
|
76503
77038
|
const [controlBarCustom, setControlBarCustom] = React2.useState(() => (c) => c);
|
|
76504
77039
|
const isolationRef = useUltraIsolation(props.core);
|
|
76505
|
-
const controlBar = useUltraControlBar(
|
|
77040
|
+
const controlBar = useUltraControlBar(
|
|
77041
|
+
props.core,
|
|
77042
|
+
sectionBoxRef,
|
|
77043
|
+
isolationRef,
|
|
77044
|
+
camera2,
|
|
77045
|
+
settings2.value,
|
|
77046
|
+
side,
|
|
77047
|
+
(_2) => _2
|
|
77048
|
+
);
|
|
76506
77049
|
useViewerInput(props.core.inputs, camera2);
|
|
76507
77050
|
React2.useEffect(() => {
|
|
76508
77051
|
sectionBoxRef.showOffsetPanel.onChange.subscribe((show) => {
|
|
@@ -76527,6 +77070,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76527
77070
|
isolation: isolationRef,
|
|
76528
77071
|
sectionBox: sectionBoxRef,
|
|
76529
77072
|
camera: camera2,
|
|
77073
|
+
settings: {
|
|
77074
|
+
update: settings2.update,
|
|
77075
|
+
register: settings2.register,
|
|
77076
|
+
customize: (c) => settings2.customizer.set(c)
|
|
77077
|
+
},
|
|
76530
77078
|
get isolationPanel() {
|
|
76531
77079
|
return isolationPanelHandle.current;
|
|
76532
77080
|
},
|
|
@@ -76541,7 +77089,24 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76541
77089
|
load: patchLoad(props.core, modalHandle)
|
|
76542
77090
|
});
|
|
76543
77091
|
}, []);
|
|
77092
|
+
const sidePanel = () => /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77093
|
+
SettingsPanel,
|
|
77094
|
+
{
|
|
77095
|
+
visible: side.getContent() === "settings",
|
|
77096
|
+
content: getUltraSettingsContent(props.core),
|
|
77097
|
+
settings: settings2
|
|
77098
|
+
}
|
|
77099
|
+
) });
|
|
76544
77100
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
77101
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77102
|
+
SidePanelMemo,
|
|
77103
|
+
{
|
|
77104
|
+
container: props.container,
|
|
77105
|
+
viewer: props.core,
|
|
77106
|
+
side,
|
|
77107
|
+
content: sidePanel
|
|
77108
|
+
}
|
|
77109
|
+
),
|
|
76545
77110
|
/* @__PURE__ */ jsxRuntimeExports.jsx(RestOfScreen, { side, content: () => {
|
|
76546
77111
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
76547
77112
|
whenTrue(true, /* @__PURE__ */ jsxRuntimeExports.jsx(LogoMemo, {})),
|
|
@@ -76554,7 +77119,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76554
77119
|
}
|
|
76555
77120
|
),
|
|
76556
77121
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state: sectionBoxRef }),
|
|
76557
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef })
|
|
77122
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef, transparency: false })
|
|
76558
77123
|
] });
|
|
76559
77124
|
} }),
|
|
76560
77125
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Modal, { ref: modalHandle, canFollowLinks: true }),
|
|
@@ -76592,7 +77157,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76592
77157
|
const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
76593
77158
|
__proto__: null,
|
|
76594
77159
|
Viewer,
|
|
76595
|
-
createViewer
|
|
77160
|
+
createViewer,
|
|
77161
|
+
getDefaultUltraSettings
|
|
76596
77162
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
76597
77163
|
const SectionBoxPanel = {
|
|
76598
77164
|
Ids
|