@@ -199,99 +199,14 @@ export const useHybridViewerStore = defineStore("hybridViewer", () => {
199199 }
200200
201201 function exportStores ( ) {
202- const cam =
203- Object . keys ( camera_options ) . length > 0
204- ? { ...camera_options }
205- : ( ( ) => {
206- if ( ! genericRenderWindow . value || status . value !== Status . CREATED ) {
207- return undefined
208- }
209- const renderer = genericRenderWindow . value . getRenderer ( )
210- const camera = renderer . getActiveCamera ( )
211- return {
212- focal_point : camera . getFocalPoint ( ) ,
213- view_up : camera . getViewUp ( ) ,
214- position : camera . getPosition ( ) ,
215- view_angle : camera . getViewAngle ( ) ,
216- clipping_range : camera . getClippingRange ( ) ,
217- distance : camera . getDistance ( ) ,
218- // Ajouts pour style et zoom corrects
219- parallel_projection :
220- typeof camera . getParallelProjection === "function"
221- ? camera . getParallelProjection ( )
222- : undefined ,
223- parallel_scale :
224- typeof camera . getParallelScale === "function"
225- ? camera . getParallelScale ( )
226- : undefined ,
227- roll :
228- typeof camera . getRoll === "function"
229- ? camera . getRoll ( )
230- : undefined ,
231- }
232- } ) ( )
233- return { zScale : zScale . value , camera_options : cam }
202+ return { zScale : zScale . value }
234203 }
235204
236205 async function importStores ( snapshot ) {
237206 const z_scale = snapshot ?. zScale
238207 if ( z_scale != null ) {
239208 await setZScaling ( z_scale )
240209 }
241-
242- const cam = snapshot ?. camera_options
243- if ( cam && genericRenderWindow . value && status . value === Status . CREATED ) {
244- const renderer = genericRenderWindow . value . getRenderer ( )
245- const camera = renderer . getActiveCamera ( )
246-
247- // Appliquer après que la scène soit prête (évite les reset ultérieurs)
248- await new Promise ( ( resolve ) => requestAnimationFrame ( resolve ) )
249-
250- // Mode de projection et zoom
251- if (
252- cam . parallel_projection !== undefined &&
253- typeof camera . setParallelProjection === "function"
254- ) {
255- camera . setParallelProjection ( ! ! cam . parallel_projection )
256- }
257-
258- // Pose / orientation
259- if ( cam . focal_point ) camera . setFocalPoint ( ...cam . focal_point )
260- if ( cam . view_up ) camera . setViewUp ( ...cam . view_up )
261- if ( cam . position ) camera . setPosition ( ...cam . position )
262-
263- // Zoom selon le mode
264- if (
265- typeof camera . getParallelProjection === "function" &&
266- camera . getParallelProjection ( ) &&
267- cam . parallel_scale !== undefined &&
268- typeof camera . setParallelScale === "function"
269- ) {
270- camera . setParallelScale ( cam . parallel_scale )
271- } else if ( cam . view_angle != null ) {
272- camera . setViewAngle ( cam . view_angle )
273- }
274-
275- // Roll (si dispo)
276- if ( cam . roll != null && typeof camera . setRoll === "function" ) {
277- camera . setRoll ( cam . roll )
278- }
279-
280- // Clipping et rendu
281- if ( cam . clipping_range ) camera . setClippingRange ( ...cam . clipping_range )
282- if ( typeof camera . modified === "function" ) camera . modified ( )
283- renderer . resetCameraClippingRange ( )
284- genericRenderWindow . value . getRenderWindow ( ) . render ( )
285-
286- // Sync côté viewer distant (si schéma présent)
287- const schema = viewer_schemas ?. opengeodeweb_viewer ?. viewer ?. update_camera
288- if ( schema ) {
289- await viewer_call ( {
290- schema,
291- params : { camera_options : cam } ,
292- } )
293- }
294- }
295210 }
296211
297212 return {
0 commit comments