diff --git a/app/src/components/NumberSliderToggle.vue b/app/src/components/NumberSliderToggle.vue
new file mode 100644
index 00000000..afab8c09
--- /dev/null
+++ b/app/src/components/NumberSliderToggle.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/components/lobby/VrSpacePreview.vue b/app/src/components/lobby/VrSpacePreview.vue
index d7e45af9..4626d0ef 100644
--- a/app/src/components/lobby/VrSpacePreview.vue
+++ b/app/src/components/lobby/VrSpacePreview.vue
@@ -15,11 +15,26 @@
x
-
+
+
+
y
-
+
+
+
z
-
+
+
+
@@ -27,8 +42,13 @@
- zoom_out_map
-
+ zoom_out_map
+
+
+
Rotation
@@ -37,13 +57,28 @@
360
-
+
+
+
360
-
+
+
+
refresh
-
+
+
+
@@ -100,6 +135,7 @@ import { defaultHeightOverGround } from 'schemas';
import { useCurrentCursorIntersection, useSelectedPlacedObject, useCurrentlyMovedObject } from '@/composables/vrSpaceComposables';
import OffsetSlider from '@/components/OffsetSlider.vue';
import { arrToCoordString, attachOrbitControls } from '@/modules/3DUtils';
+import NumberSliderToggle from '@/components/NumberSliderToggle.vue';
const vrSpaceStore = useVrSpaceStore();
@@ -127,6 +163,18 @@ const uniformScale = computed({
}
})
+const worldPositionBounds = computed(() => {
+ if (!modelTag.value) return { min: -1000, max: 1000 }
+
+ const obj3D = modelTag.value.getObject3D('mesh') as THREE.Object3D
+ const bbox = new THREE.Box3().setFromObject(obj3D)
+
+ return {
+ min: bbox.min.x - bbox.getSize(new THREE.Vector3()).x * 0.5,
+ max: bbox.max.x + bbox.getSize(new THREE.Vector3()).x * 0.5
+ }
+})
+
const worldModelScaleString = computed(() => {
return `${vrSpaceStore.writableVrSpaceDbData?.worldModelScale} ${vrSpaceStore.writableVrSpaceDbData?.worldModelScale} ${vrSpaceStore.writableVrSpaceDbData?.worldModelScale}`
})