vim-web 0.5.0-dev.17 → 0.5.0-dev.19
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 +40 -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 +1045 -481
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +1045 -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);
|
|
@@ -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,38 +74524,146 @@ 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
|
-
|
|
74808
|
-
|
|
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());
|
|
74666
|
+
});
|
|
74809
74667
|
const subSelect = viewer.selection.onSelectionChanged.subscribe(() => {
|
|
74810
74668
|
selection.set(getSelection());
|
|
74811
74669
|
});
|
|
@@ -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,574 @@ 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
|
+
visibilityClearSelection: true,
|
|
75999
|
+
visibilityShowAll: true,
|
|
76000
|
+
visibilityToggle: true,
|
|
76001
|
+
visibilityIsolate: true,
|
|
76002
|
+
visibilityAutoIsolate: true,
|
|
76003
|
+
visibilitySettings: true,
|
|
76004
|
+
// Control bar - settings
|
|
76005
|
+
projectInspector: true,
|
|
76006
|
+
settings: true,
|
|
76007
|
+
help: true,
|
|
76008
|
+
maximise: true
|
|
76009
|
+
}
|
|
76010
|
+
};
|
|
76011
|
+
}
|
|
76012
|
+
function renderSettingsInputBox(settings2, item) {
|
|
76013
|
+
const ref = React2.useRef(null);
|
|
76014
|
+
React2.useEffect(() => {
|
|
76015
|
+
var _a3;
|
|
76016
|
+
ref.current.value = (_a3 = item.getter(settings2.value)) == null ? void 0 : _a3.toString();
|
|
76017
|
+
}, []);
|
|
76018
|
+
const update = (event) => {
|
|
76019
|
+
const str = event.target.value;
|
|
76020
|
+
const n = Number.parseFloat(str);
|
|
76021
|
+
if (Number.isNaN(n)) {
|
|
76022
|
+
event.target.value = item.getter(settings2.value).toString();
|
|
76023
|
+
} else {
|
|
76024
|
+
const value = item.transform(n);
|
|
76025
|
+
event.target.value = value.toString();
|
|
76026
|
+
settings2.update((s) => item.setter(s, value));
|
|
76027
|
+
}
|
|
76028
|
+
};
|
|
76029
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-box-input vc-my-1 ", children: [
|
|
76030
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2", children: [
|
|
76031
|
+
item.label,
|
|
76032
|
+
":"
|
|
76033
|
+
] }),
|
|
76034
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76035
|
+
"input",
|
|
76036
|
+
{
|
|
76037
|
+
ref,
|
|
76038
|
+
type: "text",
|
|
76039
|
+
className: "vim-settings-textbox vc-border vc-rounded-sm vc-border-gray vc-w-14 vc-ml-1 vc-p-1",
|
|
76040
|
+
onBlur: update
|
|
76041
|
+
}
|
|
76042
|
+
),
|
|
76043
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2 vc-text-gray vc-ml-1", children: item.info })
|
|
76044
|
+
] });
|
|
76045
|
+
}
|
|
76046
|
+
function renderSettingsToggle(settings2, item) {
|
|
76047
|
+
const value = item.getter(settings2.value);
|
|
76048
|
+
if (value === "AlwaysTrue" || value === "AlwaysFalse") return null;
|
|
76049
|
+
const handleChange = () => {
|
|
76050
|
+
const current = item.getter(settings2.value);
|
|
76051
|
+
settings2.update((s) => item.setter(s, !current));
|
|
76052
|
+
};
|
|
76053
|
+
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: [
|
|
76054
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76055
|
+
"input",
|
|
76056
|
+
{
|
|
76057
|
+
type: "checkbox",
|
|
76058
|
+
checked: value,
|
|
76059
|
+
onChange: handleChange,
|
|
76060
|
+
className: "vim-settings-checkbox vc-checked:bg-primary-royal vc-mr-2 vc-rounded vc-border vc-border-gray-medium"
|
|
76061
|
+
}
|
|
76062
|
+
),
|
|
76063
|
+
" ",
|
|
76064
|
+
item.label
|
|
76065
|
+
] });
|
|
76066
|
+
}
|
|
76067
|
+
function renderSettingsSubtitle(item) {
|
|
76068
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-subtitle", children: item.title });
|
|
76069
|
+
}
|
|
76070
|
+
function SettingsPanel(props) {
|
|
76071
|
+
if (!props.visible) return null;
|
|
76072
|
+
function renderItem(settings2, item) {
|
|
76073
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(React2.Fragment, { children: (() => {
|
|
76074
|
+
switch (item.type) {
|
|
76075
|
+
case "subtitle":
|
|
76076
|
+
return renderSettingsSubtitle(item);
|
|
76077
|
+
case "toggle":
|
|
76078
|
+
return renderSettingsToggle(settings2, item);
|
|
76079
|
+
case "box":
|
|
76080
|
+
return renderSettingsInputBox(settings2, item);
|
|
76081
|
+
case "element":
|
|
76082
|
+
return item.element;
|
|
76083
|
+
default:
|
|
76084
|
+
return null;
|
|
76085
|
+
}
|
|
76086
|
+
})() }, item.key);
|
|
76087
|
+
}
|
|
76088
|
+
const customizer = props.settings.customizer.get();
|
|
76089
|
+
const content2 = customizer ? customizer(props.content) : props.content;
|
|
76090
|
+
const sections = buildSections(content2);
|
|
76091
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-absolute vc-inset-0", children: [
|
|
76092
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-title vc-mb-2", children: "Settings" }),
|
|
76093
|
+
/* @__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(
|
|
76094
|
+
"details",
|
|
76095
|
+
{
|
|
76096
|
+
open: true,
|
|
76097
|
+
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 ",
|
|
76098
|
+
children: [
|
|
76099
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("summary", { className: "vim-settings-section-title vc-font-medium vc-text-sm vc-cursor-pointer", children: section.title }),
|
|
76100
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "vim-settings-section-content vc-mt-2 vc-space-y-2", children: section.items.map(
|
|
76101
|
+
(item) => renderItem(props.settings, item)
|
|
76102
|
+
) })
|
|
76103
|
+
]
|
|
76104
|
+
},
|
|
76105
|
+
section.key
|
|
76106
|
+
)) })
|
|
76107
|
+
] });
|
|
76108
|
+
}
|
|
76109
|
+
function buildSections(items) {
|
|
76110
|
+
const sections = [];
|
|
76111
|
+
let current = null;
|
|
76112
|
+
for (const item of items) {
|
|
76113
|
+
if (item.type === "subtitle") {
|
|
76114
|
+
current = {
|
|
76115
|
+
key: item.key,
|
|
76116
|
+
title: item.title,
|
|
76117
|
+
items: []
|
|
76118
|
+
};
|
|
76119
|
+
sections.push(current);
|
|
76120
|
+
} else {
|
|
76121
|
+
if (!current) {
|
|
76122
|
+
current = {
|
|
76123
|
+
key: "default",
|
|
76124
|
+
title: "",
|
|
76125
|
+
items: []
|
|
76126
|
+
};
|
|
76127
|
+
sections.push(current);
|
|
76128
|
+
}
|
|
76129
|
+
current.items.push(item);
|
|
76130
|
+
}
|
|
76131
|
+
}
|
|
76132
|
+
return sections;
|
|
76133
|
+
}
|
|
76134
|
+
class SettingsPanelKeys {
|
|
76135
|
+
}
|
|
76136
|
+
// === Inputs ===
|
|
76137
|
+
__publicField(SettingsPanelKeys, "InputsSubtitle", "inputs");
|
|
76138
|
+
__publicField(SettingsPanelKeys, "InputsScrollSpeedBox", "scrollSpeed");
|
|
76139
|
+
// === Panels ===
|
|
76140
|
+
__publicField(SettingsPanelKeys, "PanelsSubtitle", "panels");
|
|
76141
|
+
__publicField(SettingsPanelKeys, "PanelsShowLogoToggle", "logo");
|
|
76142
|
+
__publicField(SettingsPanelKeys, "PanelsShowBimTreeToggle", "bimTree");
|
|
76143
|
+
__publicField(SettingsPanelKeys, "PanelsShowBimInfoToggle", "bimInfo");
|
|
76144
|
+
__publicField(SettingsPanelKeys, "PanelsShowAxesPanelToggle", "axesPanel");
|
|
76145
|
+
__publicField(SettingsPanelKeys, "PanelsShowPerformancePanelToggle", "performance");
|
|
76146
|
+
// === Axes ===
|
|
76147
|
+
__publicField(SettingsPanelKeys, "AxesSubtitle", "axes");
|
|
76148
|
+
__publicField(SettingsPanelKeys, "AxesShowOrthographicButtonToggle", "orthographic");
|
|
76149
|
+
__publicField(SettingsPanelKeys, "AxesShowResetCameraButtonToggle", "resetCamera");
|
|
76150
|
+
// === Control Bar ===
|
|
76151
|
+
__publicField(SettingsPanelKeys, "ControlBarSubtitle", "controlBar");
|
|
76152
|
+
__publicField(SettingsPanelKeys, "ControlBarShowControlBarToggle", "controlBarVisible");
|
|
76153
|
+
// --- Control Bar - Cursors ---
|
|
76154
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsSubtitle", "controlBarCursors");
|
|
76155
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowOrbitButtonToggle", "orbit");
|
|
76156
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowLookAroundButtonToggle", "lookAround");
|
|
76157
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowPanButtonToggle", "pan");
|
|
76158
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowZoomButtonToggle", "zoom");
|
|
76159
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowZoomWindowButtonToggle", "zoomWindow");
|
|
76160
|
+
// --- Control Bar - Tools ---
|
|
76161
|
+
__publicField(SettingsPanelKeys, "ControlBarToolsSubtitle", "controlBarTools");
|
|
76162
|
+
__publicField(SettingsPanelKeys, "ControlBarToolsShowMeasuringModeButtonToggle", "measuringMode");
|
|
76163
|
+
// --- Control Bar Camera ---
|
|
76164
|
+
__publicField(SettingsPanelKeys, "ControlBarCameraSubtitle", "settingsPanel.controlBar.Camera");
|
|
76165
|
+
__publicField(SettingsPanelKeys, "ControlBarAutoCamera", "settingsPanel.controlBar.autoCamera");
|
|
76166
|
+
__publicField(SettingsPanelKeys, "ControlBarFrameSelection", "settingsPanel.controlBar.frameSelection");
|
|
76167
|
+
__publicField(SettingsPanelKeys, "ControlBarFrameAll", "settingsPanel.controlBar.frameAll");
|
|
76168
|
+
// --- Control Bar - Sectioning ---
|
|
76169
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningSubtitle", "settingsPanel.controlBar.sectioning");
|
|
76170
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningEnable", "settingsPanel.controlBar.enableSectioning");
|
|
76171
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningFitToSelection", "settingsPanel.controlBar.fitToSelection");
|
|
76172
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningReset", "settingsPanel.controlBar.reset");
|
|
76173
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningShow", "settingsPanel.controlBar.show");
|
|
76174
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningAuto", "settingsPanel.controlBar.auto");
|
|
76175
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningSettings", "settingsPanel.controlBar.settings");
|
|
76176
|
+
// --- Control Bar - Visibility ---
|
|
76177
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilitySubtitle", "controlBar.visibility.subtitle");
|
|
76178
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityClearSelection", "controlBar.visibility.clearSelection");
|
|
76179
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityShowAll", "controlBar.visibility.showAll");
|
|
76180
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityToggle", "controlBar.visibility.toggle");
|
|
76181
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityIsolate", "controlBar.visibility.isolate");
|
|
76182
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityAutoIsolate", "controlBar.visibility.autoIsolate");
|
|
76183
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilitySettings", "controlBar.visibility.settings");
|
|
76184
|
+
// --- Control Bar - Settings ---
|
|
76185
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsSubtitle", "controlBarSettings");
|
|
76186
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowProjectInspectorButtonToggle", "projectInspector");
|
|
76187
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowSettingsButtonToggle", "settingsButton");
|
|
76188
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowHelpButtonToggle", "help");
|
|
76189
|
+
__publicField(SettingsPanelKeys, "ControlBarSettingsShowMaximiseButtonToggle", "maximise");
|
|
76190
|
+
function getControlBarCursorSettings() {
|
|
76191
|
+
return [
|
|
76192
|
+
{
|
|
76193
|
+
type: "subtitle",
|
|
76194
|
+
key: SettingsPanelKeys.ControlBarCursorsSubtitle,
|
|
76195
|
+
title: "Control Bar - Cursors"
|
|
76196
|
+
},
|
|
76197
|
+
{
|
|
76198
|
+
type: "toggle",
|
|
76199
|
+
key: SettingsPanelKeys.ControlBarCursorsShowOrbitButtonToggle,
|
|
76200
|
+
label: "Orbit",
|
|
76201
|
+
getter: (s) => s.ui.cursorOrbit,
|
|
76202
|
+
setter: (s, v) => s.ui.cursorOrbit = v
|
|
76203
|
+
},
|
|
76204
|
+
{
|
|
76205
|
+
type: "toggle",
|
|
76206
|
+
key: SettingsPanelKeys.ControlBarCursorsShowLookAroundButtonToggle,
|
|
76207
|
+
label: "Look Around",
|
|
76208
|
+
getter: (s) => s.ui.cursorLookAround,
|
|
76209
|
+
setter: (s, v) => s.ui.cursorLookAround = v
|
|
76210
|
+
},
|
|
76211
|
+
{
|
|
76212
|
+
type: "toggle",
|
|
76213
|
+
key: SettingsPanelKeys.ControlBarCursorsShowPanButtonToggle,
|
|
76214
|
+
label: "Pan",
|
|
76215
|
+
getter: (s) => s.ui.cursorPan,
|
|
76216
|
+
setter: (s, v) => s.ui.cursorPan = v
|
|
76217
|
+
},
|
|
76218
|
+
{
|
|
76219
|
+
type: "toggle",
|
|
76220
|
+
key: SettingsPanelKeys.ControlBarCursorsShowZoomButtonToggle,
|
|
76221
|
+
label: "Zoom",
|
|
76222
|
+
getter: (s) => s.ui.cursorZoom,
|
|
76223
|
+
setter: (s, v) => s.ui.cursorZoom = v
|
|
76224
|
+
}
|
|
76225
|
+
];
|
|
76226
|
+
}
|
|
76227
|
+
function getControlBarCameraSettings() {
|
|
76228
|
+
return [
|
|
76229
|
+
{
|
|
76230
|
+
type: "subtitle",
|
|
76231
|
+
key: SettingsPanelKeys.ControlBarCameraSubtitle,
|
|
76232
|
+
title: "Control Bar - Camera"
|
|
76233
|
+
},
|
|
76234
|
+
{
|
|
76235
|
+
type: "toggle",
|
|
76236
|
+
key: SettingsPanelKeys.ControlBarAutoCamera,
|
|
76237
|
+
label: "Auto Camera",
|
|
76238
|
+
getter: (s) => s.ui.cameraAuto,
|
|
76239
|
+
setter: (s, v) => s.ui.cameraAuto = v
|
|
76240
|
+
},
|
|
76241
|
+
{
|
|
76242
|
+
type: "toggle",
|
|
76243
|
+
key: SettingsPanelKeys.ControlBarFrameSelection,
|
|
76244
|
+
label: "Frame Selection",
|
|
76245
|
+
getter: (s) => s.ui.cameraFrameSelection,
|
|
76246
|
+
setter: (s, v) => s.ui.cameraFrameSelection = v
|
|
76247
|
+
},
|
|
76248
|
+
{
|
|
76249
|
+
type: "toggle",
|
|
76250
|
+
key: SettingsPanelKeys.ControlBarFrameAll,
|
|
76251
|
+
label: "Frame All",
|
|
76252
|
+
getter: (s) => s.ui.cameraFrameScene,
|
|
76253
|
+
setter: (s, v) => s.ui.cameraFrameScene = v
|
|
76254
|
+
}
|
|
76255
|
+
];
|
|
76256
|
+
}
|
|
76257
|
+
function getControlBarSectionBoxSettings() {
|
|
76258
|
+
return [
|
|
76259
|
+
{
|
|
76260
|
+
type: "subtitle",
|
|
76261
|
+
key: SettingsPanelKeys.ControlBarSectioningSubtitle,
|
|
76262
|
+
title: "Control Bar - Sectioning"
|
|
76263
|
+
},
|
|
76264
|
+
{
|
|
76265
|
+
type: "toggle",
|
|
76266
|
+
key: SettingsPanelKeys.ControlBarSectioningEnable,
|
|
76267
|
+
label: "Enable Sectioning",
|
|
76268
|
+
getter: (s) => s.ui.sectioningEnable,
|
|
76269
|
+
setter: (s, v) => s.ui.sectioningEnable = v
|
|
76270
|
+
},
|
|
76271
|
+
{
|
|
76272
|
+
type: "toggle",
|
|
76273
|
+
key: SettingsPanelKeys.ControlBarSectioningFitToSelection,
|
|
76274
|
+
label: "Fit To Selection",
|
|
76275
|
+
getter: (s) => s.ui.sectioningFitToSelection,
|
|
76276
|
+
setter: (s, v) => s.ui.sectioningFitToSelection = v
|
|
76277
|
+
},
|
|
76278
|
+
{
|
|
76279
|
+
type: "toggle",
|
|
76280
|
+
key: SettingsPanelKeys.ControlBarSectioningReset,
|
|
76281
|
+
label: "Reset",
|
|
76282
|
+
getter: (s) => s.ui.sectioningReset,
|
|
76283
|
+
setter: (s, v) => s.ui.sectioningReset = v
|
|
76284
|
+
},
|
|
76285
|
+
{
|
|
76286
|
+
type: "toggle",
|
|
76287
|
+
key: SettingsPanelKeys.ControlBarSectioningShow,
|
|
76288
|
+
label: "Show",
|
|
76289
|
+
getter: (s) => s.ui.sectioningShow,
|
|
76290
|
+
setter: (s, v) => s.ui.sectioningShow = v
|
|
76291
|
+
},
|
|
76292
|
+
{
|
|
76293
|
+
type: "toggle",
|
|
76294
|
+
key: SettingsPanelKeys.ControlBarSectioningAuto,
|
|
76295
|
+
label: "Auto",
|
|
76296
|
+
getter: (s) => s.ui.sectioningAuto,
|
|
76297
|
+
setter: (s, v) => s.ui.sectioningAuto = v
|
|
76298
|
+
},
|
|
76299
|
+
{
|
|
76300
|
+
type: "toggle",
|
|
76301
|
+
key: SettingsPanelKeys.ControlBarSectioningSettings,
|
|
76302
|
+
label: "Settings",
|
|
76303
|
+
getter: (s) => s.ui.sectioningSettings,
|
|
76304
|
+
setter: (s, v) => s.ui.sectioningSettings = v
|
|
76305
|
+
}
|
|
76306
|
+
];
|
|
76307
|
+
}
|
|
76308
|
+
function getControlBarVisibilitySettings() {
|
|
76309
|
+
return [
|
|
76310
|
+
{
|
|
76311
|
+
type: "subtitle",
|
|
76312
|
+
key: SettingsPanelKeys.ControlBarVisibilitySubtitle,
|
|
76313
|
+
title: "Control Bar - Visibility"
|
|
76314
|
+
},
|
|
76315
|
+
{
|
|
76316
|
+
type: "toggle",
|
|
76317
|
+
key: SettingsPanelKeys.ControlBarVisibilityClearSelection,
|
|
76318
|
+
label: "Clear Selection",
|
|
76319
|
+
getter: (s) => s.ui.visibilityClearSelection,
|
|
76320
|
+
setter: (s, v) => s.ui.visibilityClearSelection = v
|
|
76321
|
+
},
|
|
76322
|
+
{
|
|
76323
|
+
type: "toggle",
|
|
76324
|
+
key: SettingsPanelKeys.ControlBarVisibilityShowAll,
|
|
76325
|
+
label: "Show All",
|
|
76326
|
+
getter: (s) => s.ui.visibilityShowAll,
|
|
76327
|
+
setter: (s, v) => s.ui.visibilityShowAll = v
|
|
76328
|
+
},
|
|
76329
|
+
{
|
|
76330
|
+
type: "toggle",
|
|
76331
|
+
key: SettingsPanelKeys.ControlBarVisibilityToggle,
|
|
76332
|
+
label: "Toggle",
|
|
76333
|
+
getter: (s) => s.ui.visibilityToggle,
|
|
76334
|
+
setter: (s, v) => s.ui.visibilityToggle = v
|
|
76335
|
+
},
|
|
76336
|
+
{
|
|
76337
|
+
type: "toggle",
|
|
76338
|
+
key: SettingsPanelKeys.ControlBarVisibilityIsolate,
|
|
76339
|
+
label: "Isolate",
|
|
76340
|
+
getter: (s) => s.ui.visibilityIsolate,
|
|
76341
|
+
setter: (s, v) => s.ui.visibilityIsolate = v
|
|
76342
|
+
},
|
|
76343
|
+
{
|
|
76344
|
+
type: "toggle",
|
|
76345
|
+
key: SettingsPanelKeys.ControlBarVisibilityAutoIsolate,
|
|
76346
|
+
label: "Auto Isolate",
|
|
76347
|
+
getter: (s) => s.ui.visibilityAutoIsolate,
|
|
76348
|
+
setter: (s, v) => s.ui.visibilityAutoIsolate = v
|
|
76349
|
+
},
|
|
76350
|
+
{
|
|
76351
|
+
type: "toggle",
|
|
76352
|
+
key: SettingsPanelKeys.ControlBarVisibilitySettings,
|
|
76353
|
+
label: "Settings",
|
|
76354
|
+
getter: (s) => s.ui.visibilitySettings,
|
|
76355
|
+
setter: (s, v) => s.ui.visibilitySettings = v
|
|
76356
|
+
}
|
|
76357
|
+
];
|
|
76358
|
+
}
|
|
76359
|
+
function getControlBarVariousSettings() {
|
|
76360
|
+
return [
|
|
76361
|
+
{
|
|
76362
|
+
type: "subtitle",
|
|
76363
|
+
key: SettingsPanelKeys.ControlBarSettingsSubtitle,
|
|
76364
|
+
title: "Control Bar - Settings"
|
|
76365
|
+
},
|
|
76366
|
+
{
|
|
76367
|
+
type: "toggle",
|
|
76368
|
+
key: SettingsPanelKeys.ControlBarSettingsShowProjectInspectorButtonToggle,
|
|
76369
|
+
label: "Project Inspector",
|
|
76370
|
+
getter: (s) => s.ui.projectInspector,
|
|
76371
|
+
setter: (s, v) => s.ui.projectInspector = v
|
|
76372
|
+
},
|
|
76373
|
+
{
|
|
76374
|
+
type: "toggle",
|
|
76375
|
+
key: SettingsPanelKeys.ControlBarSettingsShowSettingsButtonToggle,
|
|
76376
|
+
label: "Settings",
|
|
76377
|
+
getter: (s) => s.ui.settings,
|
|
76378
|
+
setter: (s, v) => s.ui.settings = v
|
|
76379
|
+
},
|
|
76380
|
+
{
|
|
76381
|
+
type: "toggle",
|
|
76382
|
+
key: SettingsPanelKeys.ControlBarSettingsShowHelpButtonToggle,
|
|
76383
|
+
label: "Help",
|
|
76384
|
+
getter: (s) => s.ui.help,
|
|
76385
|
+
setter: (s, v) => s.ui.help = v
|
|
76386
|
+
},
|
|
76387
|
+
{
|
|
76388
|
+
type: "toggle",
|
|
76389
|
+
key: SettingsPanelKeys.ControlBarSettingsShowMaximiseButtonToggle,
|
|
76390
|
+
label: "Maximise",
|
|
76391
|
+
getter: (s) => s.ui.maximise,
|
|
76392
|
+
setter: (s, v) => s.ui.maximise = v
|
|
76393
|
+
}
|
|
76394
|
+
];
|
|
76395
|
+
}
|
|
76396
|
+
function getPanelsVisibilitySettings() {
|
|
76397
|
+
return [
|
|
76398
|
+
{
|
|
76399
|
+
type: "subtitle",
|
|
76400
|
+
key: SettingsPanelKeys.PanelsSubtitle,
|
|
76401
|
+
title: "Panels Visibility"
|
|
76402
|
+
},
|
|
76403
|
+
{
|
|
76404
|
+
type: "toggle",
|
|
76405
|
+
key: SettingsPanelKeys.PanelsShowLogoToggle,
|
|
76406
|
+
label: "Logo",
|
|
76407
|
+
getter: (s) => s.ui.logo,
|
|
76408
|
+
setter: (s, v) => s.ui.logo = v
|
|
76409
|
+
},
|
|
76410
|
+
{
|
|
76411
|
+
type: "toggle",
|
|
76412
|
+
key: SettingsPanelKeys.PanelsShowBimTreeToggle,
|
|
76413
|
+
label: "Bim Tree",
|
|
76414
|
+
getter: (s) => s.ui.bimTreePanel,
|
|
76415
|
+
setter: (s, v) => s.ui.bimTreePanel = v
|
|
76416
|
+
},
|
|
76417
|
+
{
|
|
76418
|
+
type: "toggle",
|
|
76419
|
+
key: SettingsPanelKeys.PanelsShowBimInfoToggle,
|
|
76420
|
+
label: "Bim Info",
|
|
76421
|
+
getter: (s) => s.ui.bimInfoPanel,
|
|
76422
|
+
setter: (s, v) => s.ui.bimInfoPanel = v
|
|
76423
|
+
},
|
|
76424
|
+
{
|
|
76425
|
+
type: "toggle",
|
|
76426
|
+
key: SettingsPanelKeys.PanelsShowAxesPanelToggle,
|
|
76427
|
+
label: "Axes",
|
|
76428
|
+
getter: (s) => s.ui.axesPanel,
|
|
76429
|
+
setter: (s, v) => s.ui.axesPanel = v
|
|
76430
|
+
},
|
|
76431
|
+
{
|
|
76432
|
+
type: "toggle",
|
|
76433
|
+
key: SettingsPanelKeys.PanelsShowPerformancePanelToggle,
|
|
76434
|
+
label: "Performance",
|
|
76435
|
+
getter: (s) => s.ui.performance,
|
|
76436
|
+
setter: (s, v) => s.ui.performance = v
|
|
76437
|
+
},
|
|
76438
|
+
{
|
|
76439
|
+
type: "toggle",
|
|
76440
|
+
key: SettingsPanelKeys.ControlBarShowControlBarToggle,
|
|
76441
|
+
label: "Control Bar",
|
|
76442
|
+
getter: (s) => s.ui.controlBar,
|
|
76443
|
+
setter: (s, v) => s.ui.controlBar = v
|
|
76444
|
+
}
|
|
76445
|
+
];
|
|
76446
|
+
}
|
|
76447
|
+
function getInputsSettings(viewer) {
|
|
76448
|
+
return [
|
|
76449
|
+
{
|
|
76450
|
+
type: "subtitle",
|
|
76451
|
+
key: SettingsPanelKeys.InputsSubtitle,
|
|
76452
|
+
title: "Inputs"
|
|
76453
|
+
},
|
|
76454
|
+
{
|
|
76455
|
+
type: "box",
|
|
76456
|
+
key: SettingsPanelKeys.InputsScrollSpeedBox,
|
|
76457
|
+
label: "Scroll Speed",
|
|
76458
|
+
info: "[0.1,10]",
|
|
76459
|
+
transform: (n) => MathUtils.clamp(n, 0.1, 10),
|
|
76460
|
+
getter: (_s) => viewer.inputs.scrollSpeed,
|
|
76461
|
+
setter: (_s, v) => {
|
|
76462
|
+
viewer.inputs.scrollSpeed = v;
|
|
76463
|
+
}
|
|
76464
|
+
}
|
|
76465
|
+
];
|
|
76466
|
+
}
|
|
76467
|
+
function getAxesPanelSettings() {
|
|
76468
|
+
return [
|
|
76469
|
+
{
|
|
76470
|
+
type: "subtitle",
|
|
76471
|
+
key: SettingsPanelKeys.AxesSubtitle,
|
|
76472
|
+
title: "Axes Panel"
|
|
76473
|
+
},
|
|
76474
|
+
{
|
|
76475
|
+
type: "toggle",
|
|
76476
|
+
key: SettingsPanelKeys.AxesShowOrthographicButtonToggle,
|
|
76477
|
+
label: "Orthographic Camera",
|
|
76478
|
+
getter: (s) => s.ui.orthographic,
|
|
76479
|
+
setter: (s, v) => s.ui.orthographic = v
|
|
76480
|
+
},
|
|
76481
|
+
{
|
|
76482
|
+
type: "toggle",
|
|
76483
|
+
key: SettingsPanelKeys.AxesShowResetCameraButtonToggle,
|
|
76484
|
+
label: "Reset Camera",
|
|
76485
|
+
getter: (s) => s.ui.resetCamera,
|
|
76486
|
+
setter: (s, v) => s.ui.resetCamera = v
|
|
76487
|
+
}
|
|
76488
|
+
];
|
|
76489
|
+
}
|
|
76490
|
+
function getControlBarMeasureSettings() {
|
|
76491
|
+
return [
|
|
76492
|
+
{
|
|
76493
|
+
type: "subtitle",
|
|
76494
|
+
key: SettingsPanelKeys.ControlBarToolsSubtitle,
|
|
76495
|
+
title: "Control Bar - Measurement"
|
|
76496
|
+
},
|
|
76497
|
+
{
|
|
76498
|
+
type: "toggle",
|
|
76499
|
+
key: SettingsPanelKeys.ControlBarToolsShowMeasuringModeButtonToggle,
|
|
76500
|
+
label: "Enable",
|
|
76501
|
+
getter: (s) => s.ui.measuringMode,
|
|
76502
|
+
setter: (s, v) => s.ui.measuringMode = v
|
|
76503
|
+
}
|
|
76504
|
+
];
|
|
76505
|
+
}
|
|
76506
|
+
function getWebglSettingsContent(viewer) {
|
|
76507
|
+
return [
|
|
76508
|
+
...getInputsSettings(viewer),
|
|
76509
|
+
...getPanelsVisibilitySettings(),
|
|
76510
|
+
...getAxesPanelSettings(),
|
|
76511
|
+
...getControlBarCursorSettings(),
|
|
76512
|
+
...getControlBarCameraSettings(),
|
|
76513
|
+
...getControlBarVisibilitySettings(),
|
|
76514
|
+
...getControlBarMeasureSettings(),
|
|
76515
|
+
...getControlBarSectionBoxSettings(),
|
|
76516
|
+
...getControlBarVariousSettings()
|
|
76517
|
+
];
|
|
76518
|
+
}
|
|
76519
|
+
function applyWebglSettings(settings2) {
|
|
76520
|
+
const performance2 = document.getElementsByClassName("vim-performance-div")[0];
|
|
76521
|
+
if (performance2) {
|
|
76522
|
+
if (isTrue(settings2.ui.performance)) {
|
|
76523
|
+
performance2.classList.remove("vc-hidden");
|
|
76524
|
+
} else {
|
|
76525
|
+
performance2.classList.add("vc-hidden");
|
|
76526
|
+
}
|
|
76527
|
+
}
|
|
76528
|
+
}
|
|
76062
76529
|
function createViewer$1(container, settings2 = {}, coreSettings = {}) {
|
|
76063
76530
|
const controllablePromise = new ControllablePromise();
|
|
76064
76531
|
const cmpContainer = container instanceof HTMLElement ? createContainer(container) : container ?? createContainer();
|
|
@@ -76089,7 +76556,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76089
76556
|
return controllablePromise.promise;
|
|
76090
76557
|
}
|
|
76091
76558
|
function Viewer$1(props) {
|
|
76092
|
-
const settings2 = useSettings(props.
|
|
76559
|
+
const settings2 = useSettings(props.settings ?? {}, getDefaultSettings(), (s) => applyWebglSettings(s));
|
|
76093
76560
|
const modal = React2.useRef(null);
|
|
76094
76561
|
const sectionBoxRef = useWebglSectionBox(props.viewer);
|
|
76095
76562
|
const isolationPanelHandle = React2.useRef(null);
|
|
@@ -76138,7 +76605,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76138
76605
|
loader: loader.current,
|
|
76139
76606
|
isolation: isolationRef,
|
|
76140
76607
|
camera: camera2,
|
|
76141
|
-
settings:
|
|
76608
|
+
settings: {
|
|
76609
|
+
update: settings2.update,
|
|
76610
|
+
register: settings2.register,
|
|
76611
|
+
customize: (c) => settings2.customizer.set(c)
|
|
76612
|
+
},
|
|
76142
76613
|
get isolationPanel() {
|
|
76143
76614
|
return isolationPanelHandle.current;
|
|
76144
76615
|
},
|
|
@@ -76184,7 +76655,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76184
76655
|
SettingsPanel,
|
|
76185
76656
|
{
|
|
76186
76657
|
visible: side.getContent() === "settings",
|
|
76187
|
-
|
|
76658
|
+
content: getWebglSettingsContent(props.viewer),
|
|
76188
76659
|
settings: settings2
|
|
76189
76660
|
}
|
|
76190
76661
|
)
|
|
@@ -76213,7 +76684,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76213
76684
|
}
|
|
76214
76685
|
),
|
|
76215
76686
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state: sectionBoxRef }),
|
|
76216
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef }),
|
|
76687
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef, transparency: true }),
|
|
76217
76688
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76218
76689
|
AxesPanelMemo,
|
|
76219
76690
|
{
|
|
@@ -76252,7 +76723,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76252
76723
|
const index$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
76253
76724
|
__proto__: null,
|
|
76254
76725
|
Viewer: Viewer$1,
|
|
76255
|
-
createViewer: createViewer$1
|
|
76726
|
+
createViewer: createViewer$1,
|
|
76727
|
+
getDefaultSettings
|
|
76256
76728
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
76257
76729
|
function getErrorMessage(state) {
|
|
76258
76730
|
if (state.status !== "error") return void 0;
|
|
@@ -76318,11 +76790,13 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76318
76790
|
};
|
|
76319
76791
|
return useSectionBox(ultraAdapter);
|
|
76320
76792
|
}
|
|
76321
|
-
function useUltraControlBar(viewer, section, isolation, camera2, customization) {
|
|
76322
|
-
|
|
76323
|
-
|
|
76324
|
-
|
|
76325
|
-
|
|
76793
|
+
function useUltraControlBar(viewer, section, isolation, camera2, settings2, side, customization) {
|
|
76794
|
+
let bar = [
|
|
76795
|
+
controlBarCamera(camera2, settings2.ui),
|
|
76796
|
+
controlBarVisibility(isolation, settings2.ui),
|
|
76797
|
+
controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
|
|
76798
|
+
controlBarSettingsUltra(side, settings2)
|
|
76799
|
+
];
|
|
76326
76800
|
bar = (customization == null ? void 0 : customization(bar)) ?? bar;
|
|
76327
76801
|
return bar;
|
|
76328
76802
|
}
|
|
@@ -76426,6 +76900,9 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76426
76900
|
}
|
|
76427
76901
|
}
|
|
76428
76902
|
},
|
|
76903
|
+
enableTransparency: (enable) => {
|
|
76904
|
+
console.log("enableTransparency not implemented");
|
|
76905
|
+
},
|
|
76429
76906
|
getGhostOpacity: () => viewer.renderer.ghostOpacity,
|
|
76430
76907
|
setGhostOpacity: (opacity) => {
|
|
76431
76908
|
viewer.renderer.ghostOpacity = opacity;
|
|
@@ -76467,7 +76944,61 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76467
76944
|
function allButSelection(viewer, vim) {
|
|
76468
76945
|
return false;
|
|
76469
76946
|
}
|
|
76470
|
-
function
|
|
76947
|
+
function getDefaultUltraSettings() {
|
|
76948
|
+
return {
|
|
76949
|
+
ui: {
|
|
76950
|
+
// Control bar - cursors
|
|
76951
|
+
cursorOrbit: true,
|
|
76952
|
+
cursorLookAround: true,
|
|
76953
|
+
cursorPan: true,
|
|
76954
|
+
cursorZoom: true,
|
|
76955
|
+
// Control bar - camera
|
|
76956
|
+
cameraAuto: true,
|
|
76957
|
+
cameraFrameScene: true,
|
|
76958
|
+
cameraFrameSelection: true,
|
|
76959
|
+
// Control bar - tools
|
|
76960
|
+
sectioningEnable: true,
|
|
76961
|
+
sectioningFitToSelection: true,
|
|
76962
|
+
sectioningReset: true,
|
|
76963
|
+
sectioningShow: true,
|
|
76964
|
+
sectioningAuto: true,
|
|
76965
|
+
sectioningSettings: true,
|
|
76966
|
+
// Control bar - Visibility
|
|
76967
|
+
visibilityClearSelection: true,
|
|
76968
|
+
visibilityShowAll: true,
|
|
76969
|
+
visibilityToggle: true,
|
|
76970
|
+
visibilityIsolate: true,
|
|
76971
|
+
visibilityAutoIsolate: true,
|
|
76972
|
+
visibilitySettings: true,
|
|
76973
|
+
settings: true
|
|
76974
|
+
}
|
|
76975
|
+
};
|
|
76976
|
+
}
|
|
76977
|
+
function getControlBarUltraSettings() {
|
|
76978
|
+
return [
|
|
76979
|
+
{
|
|
76980
|
+
type: "subtitle",
|
|
76981
|
+
key: SettingsPanelKeys.ControlBarSettingsSubtitle,
|
|
76982
|
+
title: "Control Bar - Settings"
|
|
76983
|
+
},
|
|
76984
|
+
{
|
|
76985
|
+
type: "toggle",
|
|
76986
|
+
key: SettingsPanelKeys.ControlBarSettingsShowSettingsButtonToggle,
|
|
76987
|
+
label: "Settings",
|
|
76988
|
+
getter: (s) => s.ui.settings,
|
|
76989
|
+
setter: (s, v) => s.ui.settings = v
|
|
76990
|
+
}
|
|
76991
|
+
];
|
|
76992
|
+
}
|
|
76993
|
+
function getUltraSettingsContent(viewer) {
|
|
76994
|
+
return [
|
|
76995
|
+
...getControlBarCameraSettings(),
|
|
76996
|
+
...getControlBarVisibilitySettings(),
|
|
76997
|
+
...getControlBarSectionBoxSettings(),
|
|
76998
|
+
...getControlBarUltraSettings()
|
|
76999
|
+
];
|
|
77000
|
+
}
|
|
77001
|
+
function createViewer(container, settings2) {
|
|
76471
77002
|
const controllablePromise = new ControllablePromise();
|
|
76472
77003
|
const cmpContainer = container instanceof HTMLElement ? createContainer(container) : container ?? createContainer();
|
|
76473
77004
|
const core = Viewer$2.createWithCanvas(cmpContainer.gfx);
|
|
@@ -76486,6 +77017,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76486
77017
|
{
|
|
76487
77018
|
container: cmpContainer,
|
|
76488
77019
|
core,
|
|
77020
|
+
settings: settings2,
|
|
76489
77021
|
onMount: (cmp) => controllablePromise.resolve(attachDispose(cmp))
|
|
76490
77022
|
}
|
|
76491
77023
|
)
|
|
@@ -76493,6 +77025,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76493
77025
|
return controllablePromise.promise;
|
|
76494
77026
|
}
|
|
76495
77027
|
function Viewer(props) {
|
|
77028
|
+
const settings2 = useSettings(props.settings ?? {}, getDefaultUltraSettings());
|
|
76496
77029
|
const sectionBoxRef = useUltraSectionBox(props.core);
|
|
76497
77030
|
const camera2 = useUltraCamera(props.core, sectionBoxRef);
|
|
76498
77031
|
const isolationPanelHandle = React2.useRef(null);
|
|
@@ -76502,7 +77035,15 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76502
77035
|
const [_, setSelectState] = React2.useState(0);
|
|
76503
77036
|
const [controlBarCustom, setControlBarCustom] = React2.useState(() => (c) => c);
|
|
76504
77037
|
const isolationRef = useUltraIsolation(props.core);
|
|
76505
|
-
const controlBar = useUltraControlBar(
|
|
77038
|
+
const controlBar = useUltraControlBar(
|
|
77039
|
+
props.core,
|
|
77040
|
+
sectionBoxRef,
|
|
77041
|
+
isolationRef,
|
|
77042
|
+
camera2,
|
|
77043
|
+
settings2.value,
|
|
77044
|
+
side,
|
|
77045
|
+
(_2) => _2
|
|
77046
|
+
);
|
|
76506
77047
|
useViewerInput(props.core.inputs, camera2);
|
|
76507
77048
|
React2.useEffect(() => {
|
|
76508
77049
|
sectionBoxRef.showOffsetPanel.onChange.subscribe((show) => {
|
|
@@ -76527,6 +77068,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76527
77068
|
isolation: isolationRef,
|
|
76528
77069
|
sectionBox: sectionBoxRef,
|
|
76529
77070
|
camera: camera2,
|
|
77071
|
+
settings: {
|
|
77072
|
+
update: settings2.update,
|
|
77073
|
+
register: settings2.register,
|
|
77074
|
+
customize: (c) => settings2.customizer.set(c)
|
|
77075
|
+
},
|
|
76530
77076
|
get isolationPanel() {
|
|
76531
77077
|
return isolationPanelHandle.current;
|
|
76532
77078
|
},
|
|
@@ -76541,7 +77087,24 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76541
77087
|
load: patchLoad(props.core, modalHandle)
|
|
76542
77088
|
});
|
|
76543
77089
|
}, []);
|
|
77090
|
+
const sidePanel = () => /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77091
|
+
SettingsPanel,
|
|
77092
|
+
{
|
|
77093
|
+
visible: side.getContent() === "settings",
|
|
77094
|
+
content: getUltraSettingsContent(props.core),
|
|
77095
|
+
settings: settings2
|
|
77096
|
+
}
|
|
77097
|
+
) });
|
|
76544
77098
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
77099
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77100
|
+
SidePanelMemo,
|
|
77101
|
+
{
|
|
77102
|
+
container: props.container,
|
|
77103
|
+
viewer: props.core,
|
|
77104
|
+
side,
|
|
77105
|
+
content: sidePanel
|
|
77106
|
+
}
|
|
77107
|
+
),
|
|
76545
77108
|
/* @__PURE__ */ jsxRuntimeExports.jsx(RestOfScreen, { side, content: () => {
|
|
76546
77109
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
76547
77110
|
whenTrue(true, /* @__PURE__ */ jsxRuntimeExports.jsx(LogoMemo, {})),
|
|
@@ -76554,7 +77117,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76554
77117
|
}
|
|
76555
77118
|
),
|
|
76556
77119
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state: sectionBoxRef }),
|
|
76557
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef })
|
|
77120
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef, transparency: false })
|
|
76558
77121
|
] });
|
|
76559
77122
|
} }),
|
|
76560
77123
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Modal, { ref: modalHandle, canFollowLinks: true }),
|
|
@@ -76592,7 +77155,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76592
77155
|
const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
76593
77156
|
__proto__: null,
|
|
76594
77157
|
Viewer,
|
|
76595
|
-
createViewer
|
|
77158
|
+
createViewer,
|
|
77159
|
+
getDefaultUltraSettings
|
|
76596
77160
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
76597
77161
|
const SectionBoxPanel = {
|
|
76598
77162
|
Ids
|