Skip to content

Commit 328eb14

Browse files
committed
test
1 parent eecd8b7 commit 328eb14

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

composables/project_manager.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export function useProjectManager() {
6262
const hybridViewerStore = useHybridViewerStore()
6363
await hybridViewerStore.initHybridViewer()
6464
hybridViewerStore.clear()
65+
await hybridViewerStore.importStores(snapshot?.hybridViewer)
6566

6667
const snapshotDataBase = snapshot?.dataBase?.db || {}
6768
const items = Object.entries(snapshotDataBase).map(([id, item]) => ({
@@ -76,6 +77,9 @@ export function useProjectManager() {
7677

7778
await importWorkflowFromSnapshot(items)
7879

80+
// Appliquer la caméra importée après avoir créé les actors
81+
await hybridViewerStore.importStores(snapshot?.hybridViewer)
82+
7983
const dataStyleStore = useDataStyleStore()
8084
await dataStyleStore.importStores(snapshot?.dataStyle)
8185
await dataStyleStore.applyAllStylesFromState()

stores/hybrid_viewer.js

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,14 +199,49 @@ export const useHybridViewerStore = defineStore("hybridViewer", () => {
199199
}
200200

201201
function exportStores() {
202-
return { zScale: zScale.value }
202+
const renderer = genericRenderWindow.value?.getRenderer?.()
203+
const camera = renderer?.getActiveCamera?.()
204+
const cameraSnapshot = camera
205+
? {
206+
focal_point: Array.from(camera.getFocalPoint()),
207+
view_up: Array.from(camera.getViewUp()),
208+
position: Array.from(camera.getPosition()),
209+
view_angle: camera.getViewAngle(),
210+
clipping_range: Array.from(camera.getClippingRange()),
211+
distance: camera.getDistance(),
212+
}
213+
: camera_options
214+
return { zScale: zScale.value, camera_options: cameraSnapshot }
203215
}
204216

205217
async function importStores(snapshot) {
206218
const z_scale = snapshot?.zScale
207219
if (z_scale != null) {
208220
await setZScaling(z_scale)
209221
}
222+
223+
const cam = snapshot?.camera_options
224+
if (cam) {
225+
const renderer = genericRenderWindow.value.getRenderer()
226+
const camera = renderer.getActiveCamera()
227+
228+
if (cam.focal_point) camera.setFocalPoint(cam.focal_point)
229+
if (cam.view_up) camera.setViewUp(cam.view_up)
230+
if (cam.position) camera.setPosition(cam.position)
231+
if (cam.view_angle != null) camera.setViewAngle(cam.view_angle)
232+
if (cam.clipping_range) camera.setClippingRange(cam.clipping_range)
233+
234+
genericRenderWindow.value.getRenderWindow().render()
235+
236+
await viewer_call({
237+
schema: viewer_schemas.opengeodeweb_viewer.viewer.update_camera,
238+
params: { camera_options: cam },
239+
})
240+
241+
for (const key in cam) {
242+
camera_options[key] = cam[key]
243+
}
244+
}
210245
}
211246

212247
return {

0 commit comments

Comments
 (0)