Nordstern-3D: Boden-Referenzraster + bessere Kamera-Steuerung
- Boden-Grid-Fläche auf y = baseElevation des aktiven Geschosses, ein-/ausschaltbar (Overlay-Button im Viewport, State in viewSlice grid3dVisible). Eigene LineList-Pipeline in der Engine (grid.rs, GRID_WGSL, geteilte View-Projection/Depth mit der Mesh-Pipeline), neue set_ground_grid(visible, elevation, extent, spacing)-Methode. Minor-Linien dezent, jede 5. als Major betont. - Kamera-Steuerung überarbeitet (vorher nur Mitte=Orbit, Pan auf Shift+Mitte versteckt): Links=Orbit, Mitte/Rechts=Pan (bewegen), Rad=Zoom zum Cursor. Laptop-freundlich, konsistent mit der 2D-Plan-Navigation (dort Mitte=Pan).
This commit is contained in:
+14
@@ -269,6 +269,10 @@ export default function App() {
|
||||
const setView3d = useStore((s) => s.setView3d);
|
||||
const fov = useStore((s) => s.fov);
|
||||
const setFov = useStore((s) => s.setFov);
|
||||
// Boden-Referenzraster im 3D-Viewport (wirkt nur im WASM/Nordstern-Pfad,
|
||||
// s. Wasm3DViewport.tsx) — Umschalter sitzt als Overlay-Button im Viewport.
|
||||
const grid3dVisible = useStore((s) => s.grid3dVisible);
|
||||
const setGrid3dVisible = useStore((s) => s.setGrid3dVisible);
|
||||
const planColorMode = useStore((s) => s.planColorMode);
|
||||
const setPlanColorMode = useStore((s) => s.setPlanColorMode);
|
||||
const referenceLines = useStore((s) => s.referenceLines);
|
||||
@@ -3104,6 +3108,8 @@ export default function App() {
|
||||
renderMode={renderMode}
|
||||
view3d={view3d}
|
||||
fov={fov}
|
||||
grid3dVisible={grid3dVisible}
|
||||
onToggleGrid3d={() => setGrid3dVisible(!grid3dVisible)}
|
||||
mono={planColorMode === "mono"}
|
||||
drawings={drawings}
|
||||
onSelectLevel={setActiveLevelId}
|
||||
@@ -4065,6 +4071,8 @@ function Content({
|
||||
renderMode,
|
||||
view3d,
|
||||
fov,
|
||||
grid3dVisible,
|
||||
onToggleGrid3d,
|
||||
mono,
|
||||
drawings,
|
||||
onSelectLevel,
|
||||
@@ -4126,6 +4134,10 @@ function Content({
|
||||
view3d: View3d;
|
||||
/** Sichtwinkel der 3D-Perspektivkamera in Grad. */
|
||||
fov: number;
|
||||
/** Boden-Referenzraster im 3D-Viewport sichtbar (wirkt nur im WASM-Pfad). */
|
||||
grid3dVisible: boolean;
|
||||
/** Klick auf den Grid-Umschalter-Button im 3D-Viewport (WASM-Pfad). */
|
||||
onToggleGrid3d: () => void;
|
||||
/** Grundriss in Schwarz-Weiss (mono) statt mit Kategorie-/Element-Farben. */
|
||||
mono: boolean;
|
||||
/** Dokument-Tabs der Kopfzeile — ein Tab je Geschoss-Grundriss. */
|
||||
@@ -4310,6 +4322,8 @@ function Content({
|
||||
view3d={view3d}
|
||||
fov={fov}
|
||||
gridElevation={level.baseElevation ?? 0}
|
||||
gridVisible={grid3dVisible}
|
||||
onToggleGrid={onToggleGrid3d}
|
||||
onSelectWall={onViewportSelectWall}
|
||||
onSelectCeiling={onViewportSelectCeiling}
|
||||
onSelectOpening={onViewportSelectOpening}
|
||||
|
||||
Reference in New Issue
Block a user