camera view
This commit is contained in:
@@ -44,9 +44,18 @@ type GridEvents = {
|
||||
[K in `grid:${EventSuffix}`]: GridEvent;
|
||||
};
|
||||
|
||||
export interface CameraControlEvent {
|
||||
nodeId: AnyNode["id"];
|
||||
}
|
||||
|
||||
type CameraControlEvents = {
|
||||
"camera-controls:view": CameraControlEvent;
|
||||
"camera-controls:capture": CameraControlEvent;
|
||||
};
|
||||
type EditorEvents = GridEvents &
|
||||
NodeEvents<"wall", WallEvent> &
|
||||
NodeEvents<"item", ItemEvent> &
|
||||
NodeEvents<"building", BuildingEvent>;
|
||||
NodeEvents<"building", BuildingEvent> &
|
||||
CameraControlEvents;
|
||||
|
||||
export const emitter = mitt<EditorEvents>();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Store
|
||||
|
||||
export type {
|
||||
CameraControlEvent,
|
||||
EventSuffix,
|
||||
GridEvent,
|
||||
ItemEvent,
|
||||
@@ -14,7 +15,10 @@ export {
|
||||
sceneRegistry,
|
||||
useRegistry,
|
||||
} from './hooks/scene-registry/scene-registry'
|
||||
export { initSpatialGridSync, resolveLevelId } from './hooks/spatial-grid/spatial-grid-sync'
|
||||
export {
|
||||
initSpatialGridSync,
|
||||
resolveLevelId,
|
||||
} from './hooks/spatial-grid/spatial-grid-sync'
|
||||
export { useSpatialQuery } from './hooks/spatial-grid/use-spatial-query'
|
||||
// Schema
|
||||
export * from './schema'
|
||||
|
||||
@@ -28,6 +28,9 @@ type ViewerState = {
|
||||
hoveredId: AnyNode["id"] | null;
|
||||
setHoveredId: (id: AnyNode["id"] | null) => void;
|
||||
|
||||
cameraMode: "perspective" | "orthographic";
|
||||
setCameraMode: (mode: "perspective" | "orthographic") => void;
|
||||
|
||||
levelMode: "stacked" | "exploded" | "solo" | "manual";
|
||||
setLevelMode: (mode: "stacked" | "exploded" | "solo" | "manual") => void;
|
||||
|
||||
@@ -43,6 +46,9 @@ const useViewer = create<ViewerState>()((set, get) => ({
|
||||
hoveredId: null,
|
||||
setHoveredId: (id) => set({ hoveredId: id }),
|
||||
|
||||
cameraMode: "perspective",
|
||||
setCameraMode: (mode) => set({ cameraMode: mode }),
|
||||
|
||||
levelMode: "stacked",
|
||||
setLevelMode: (mode) => set({ levelMode: mode }),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user