From 15e9ad94623c23345e7a0fca398dd2bd02153de0 Mon Sep 17 00:00:00 2001 From: Alexandru Popovici Date: Fri, 28 Jun 2024 22:05:08 +0300 Subject: [PATCH] Oboarding undead-patch (#2456) * Fixed sandbox lint error * Added back the polar view and setting it. Changed the onboarding hardoced vectors from Z up to Y up, since that's what the camera controller now requires when setting inline views --- .../components/tour/Segmentation.vue | 13 ++++++++--- .../frontend-2/lib/tour/slideshowItems.ts | 12 +++++----- .../modules/extensions/CameraController.ts | 22 +++++++++++++++++++ 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/packages/frontend-2/components/tour/Segmentation.vue b/packages/frontend-2/components/tour/Segmentation.vue index 97d8e4f504..e1b226b35d 100644 --- a/packages/frontend-2/components/tour/Segmentation.vue +++ b/packages/frontend-2/components/tour/Segmentation.vue @@ -64,7 +64,7 @@ diff --git a/packages/frontend-2/lib/tour/slideshowItems.ts b/packages/frontend-2/lib/tour/slideshowItems.ts index 6cd21525b7..b677686ae7 100644 --- a/packages/frontend-2/lib/tour/slideshowItems.ts +++ b/packages/frontend-2/lib/tour/slideshowItems.ts @@ -11,20 +11,20 @@ export type SlideshowItem = { export const items = [ { - camPos: [-31.86138, 41.14196, 15.93344, -22.0765, 35.10095, 15.93344, 0, 1], + camPos: [-31.86138, 15.93344, -41.14196, -22.0765, 15.93344, -35.10095, 0, 1], style: {} as Partial, viewed: false, showControls: true, expanded: true, filters: {}, location: { - x: -22.07650243501704, - y: 35.10094975369238, - z: 15.933444297269238 + x: -22.0765, + y: 35.10095, + z: 15.93344 } }, { - camPos: [-3.3795, 40.78977, 23.25852, -20.65056, 40.72203, 21.78906, 0, 1], + camPos: [-3.3795, 23.25852, -40.78977, -20.65056, 21.78906, -40.72203, 0, 1], style: {} as Partial, viewed: false, showControls: true, @@ -36,7 +36,7 @@ export const items = [ } }, { - camPos: [-39.91711, 46.26069, 42.83686, -18.44162, 29.75982, 34.91624, 0, 1], + camPos: [-39.91711, 42.83686, -46.26069, -18.44162, 34.91624, -29.75982, 0, 1], style: {} as Partial, viewed: false, showControls: false, diff --git a/packages/viewer/src/modules/extensions/CameraController.ts b/packages/viewer/src/modules/extensions/CameraController.ts index 05933da875..dfb0bda0af 100644 --- a/packages/viewer/src/modules/extensions/CameraController.ts +++ b/packages/viewer/src/modules/extensions/CameraController.ts @@ -549,6 +549,15 @@ export class CameraController extends Extension implements SpeckleCamera { ) } + protected isPolarView( + view: CanonicalView | SpeckleView | InlineView | PolarView + ): view is PolarView { + return ( + (view as PolarView).azimuth !== undefined && + (view as PolarView).polar !== undefined + ) + } + protected isBox3( view: CanonicalView | SpeckleView | InlineView | PolarView | Box3 ): view is Box3 { @@ -568,6 +577,9 @@ export class CameraController extends Extension implements SpeckleCamera { if (this.isInlineView(view)) { this.setViewInline(view, transition) } + if (this.isPolarView(view)) { + this.setViewPolar(view, transition) + } } protected setViewSpeckle(view: SpeckleView, transition = true) { @@ -672,4 +684,14 @@ export class CameraController extends Extension implements SpeckleCamera { this.enableRotations() } + + private setViewPolar(view: PolarView, transition = true) { + ;(this._activeControls as SmoothOrbitControls).adjustOrbit( + view.azimuth, + view.polar, + view.radius ? view.radius : 0 + ) + if (!transition) this._activeControls.jumpToGoal() + this.enableRotations() + } }