Skip to content

Commit

Permalink
chore(web): fix camera behavior in interaction mode (#824)
Browse files Browse the repository at this point in the history
  • Loading branch information
keiya01 committed Nov 20, 2023
1 parent b80a31d commit 912d681
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 9 deletions.
8 changes: 5 additions & 3 deletions web/src/beta/lib/core/Crust/featureFlags.ts
@@ -1,7 +1,9 @@
export const FEATURE_FLAGS = {
CAMERA_MOVE: 1 << 0,
CAMERA_ZOOM: 1 << 1,
SINGLE_SELECTION: 1 << 2,
MULTIPLE_SELECTION: 1 << 3,
SKETCH: 1 << 4,
CAMERA_TILT: 1 << 2,
CAMERA_LOOK: 1 << 3,
SINGLE_SELECTION: 1 << 4,
MULTIPLE_SELECTION: 1 << 5,
SKETCH: 1 << 6,
};
20 changes: 16 additions & 4 deletions web/src/beta/lib/core/Crust/interactionMode.ts
Expand Up @@ -5,9 +5,21 @@ export type InteractionModeType = "default" | "move" | "selection" | "sketch";
// If you would like enable a feature in a specific mode,
// just set the feature's flag here to that mode.
export const INTERACTION_MODES: Record<InteractionModeType, number> = {
default: FEATURE_FLAGS.CAMERA_MOVE | FEATURE_FLAGS.CAMERA_ZOOM | FEATURE_FLAGS.SINGLE_SELECTION,
move: FEATURE_FLAGS.CAMERA_MOVE | FEATURE_FLAGS.CAMERA_ZOOM,
default:
FEATURE_FLAGS.CAMERA_MOVE |
FEATURE_FLAGS.CAMERA_ZOOM |
FEATURE_FLAGS.CAMERA_LOOK |
FEATURE_FLAGS.CAMERA_TILT |
FEATURE_FLAGS.SINGLE_SELECTION,
move:
FEATURE_FLAGS.CAMERA_MOVE |
FEATURE_FLAGS.CAMERA_ZOOM |
FEATURE_FLAGS.CAMERA_LOOK |
FEATURE_FLAGS.CAMERA_TILT,
selection:
FEATURE_FLAGS.SINGLE_SELECTION | FEATURE_FLAGS.MULTIPLE_SELECTION | FEATURE_FLAGS.CAMERA_ZOOM,
sketch: FEATURE_FLAGS.SKETCH | FEATURE_FLAGS.CAMERA_ZOOM,
FEATURE_FLAGS.SINGLE_SELECTION |
FEATURE_FLAGS.MULTIPLE_SELECTION |
FEATURE_FLAGS.CAMERA_ZOOM |
FEATURE_FLAGS.CAMERA_TILT,
sketch: FEATURE_FLAGS.SKETCH | FEATURE_FLAGS.CAMERA_ZOOM | FEATURE_FLAGS.CAMERA_TILT,
};
6 changes: 4 additions & 2 deletions web/src/beta/lib/core/engines/Cesium/hooks.ts
Expand Up @@ -743,11 +743,13 @@ export default ({
if (!cesium.current?.cesiumElement) return;
const allowCameraMove = !!(featureFlags & FEATURE_FLAGS.CAMERA_MOVE);
const allowCameraZoom = !!(featureFlags & FEATURE_FLAGS.CAMERA_ZOOM);
const allowCameraTilt = !!(featureFlags & FEATURE_FLAGS.CAMERA_TILT);
const allowCameraLook = !!(featureFlags & FEATURE_FLAGS.CAMERA_LOOK);
cesium.current.cesiumElement.scene.screenSpaceCameraController.enableTranslate =
allowCameraMove;
cesium.current.cesiumElement.scene.screenSpaceCameraController.enableRotate = allowCameraMove;
cesium.current.cesiumElement.scene.screenSpaceCameraController.enableLook = allowCameraMove;
cesium.current.cesiumElement.scene.screenSpaceCameraController.enableTilt = allowCameraMove;
cesium.current.cesiumElement.scene.screenSpaceCameraController.enableLook = allowCameraLook;
cesium.current.cesiumElement.scene.screenSpaceCameraController.enableTilt = allowCameraTilt;
cesium.current.cesiumElement.scene.screenSpaceCameraController.enableZoom = allowCameraZoom;
}, [featureFlags]);

Expand Down

0 comments on commit 912d681

Please sign in to comment.