Zeichnungsebenen merken sich eigenen 2D/3D-Zustand
Bisher war viewType (Grundriss/Perspektive) ein einziger globaler Wert. Beim Tab-Wechsel blieb er unverändert stehen, was wirkte, als würde die Ansicht "durchsickern". Jede Ebene merkt sich jetzt ihren zuletzt gewählten Ansichtstyp und stellt ihn beim Zurückwechseln wieder her.
This commit is contained in:
+14
-2
@@ -21,6 +21,9 @@ export interface ViewSlice {
|
|||||||
activeLevelId: string;
|
activeLevelId: string;
|
||||||
// Ansichtstyp (Grundriss / Perspektive).
|
// Ansichtstyp (Grundriss / Perspektive).
|
||||||
viewType: ViewType;
|
viewType: ViewType;
|
||||||
|
// Zuletzt gewählter Ansichtstyp je Zeichnungsebene — jeder Tab merkt sich
|
||||||
|
// seinen eigenen 2D/3D-Zustand statt eines rein globalen Umschalters.
|
||||||
|
viewTypeByLevel: Record<string, ViewType>;
|
||||||
// Detailgrad im Grundriss.
|
// Detailgrad im Grundriss.
|
||||||
detail: DetailLevel;
|
detail: DetailLevel;
|
||||||
// Render-Modus der 3D-Ansicht.
|
// Render-Modus der 3D-Ansicht.
|
||||||
@@ -65,6 +68,7 @@ export function createViewSlice(api: StoreApi<ViewSlice>): ViewSlice {
|
|||||||
return {
|
return {
|
||||||
activeLevelId: sampleProject.drawingLevels[0].id,
|
activeLevelId: sampleProject.drawingLevels[0].id,
|
||||||
viewType: "grundriss",
|
viewType: "grundriss",
|
||||||
|
viewTypeByLevel: {},
|
||||||
detail: "mittel",
|
detail: "mittel",
|
||||||
renderMode: "shaded",
|
renderMode: "shaded",
|
||||||
view3d: "perspective",
|
view3d: "perspective",
|
||||||
@@ -77,8 +81,16 @@ export function createViewSlice(api: StoreApi<ViewSlice>): ViewSlice {
|
|||||||
sampleProject.walls[0]?.categoryCode ?? sampleProject.layers[0].code,
|
sampleProject.walls[0]?.categoryCode ?? sampleProject.layers[0].code,
|
||||||
displayModes: {},
|
displayModes: {},
|
||||||
|
|
||||||
setActiveLevelId: (id) => set({ activeLevelId: id }),
|
setActiveLevelId: (id) =>
|
||||||
setViewType: (v) => set({ viewType: v }),
|
set((s) => ({
|
||||||
|
activeLevelId: id,
|
||||||
|
viewType: s.viewTypeByLevel[id] ?? "grundriss",
|
||||||
|
})),
|
||||||
|
setViewType: (v) =>
|
||||||
|
set((s) => ({
|
||||||
|
viewType: v,
|
||||||
|
viewTypeByLevel: { ...s.viewTypeByLevel, [s.activeLevelId]: v },
|
||||||
|
})),
|
||||||
setDetail: (d) => set({ detail: d }),
|
setDetail: (d) => set({ detail: d }),
|
||||||
setRenderMode: (m) => set({ renderMode: m }),
|
setRenderMode: (m) => set({ renderMode: m }),
|
||||||
setView3d: (v) => set({ view3d: v }),
|
setView3d: (v) => set({ view3d: v }),
|
||||||
|
|||||||
Reference in New Issue
Block a user