Nordstern: Geo-Kontext-Meshes (Terrain/Import) rendern
Bisher zeigte nur three.js importierte Gebaeude/DXF-Meshes und das Terrain-TIN (Project.context). Neuer MeshInput-Typ + Kontext-Mesh-Pfad in render3d (Flat-Normalen, doppelseitig gegen unbekanntes Winding), projectToModel3d speist project.context jetzt in beide Renderer (nativ + WASM) ein. Nebenbei: fehlendes layers-Feld in demo_walls() behoben, das den native3d-Feature-Build zuvor schon brach.
This commit is contained in:
@@ -32,7 +32,7 @@ use web_sys::HtmlCanvasElement;
|
||||
use crate::gpu::Renderer;
|
||||
use crate::math::preset_camera;
|
||||
use crate::section::{cut_section, SectionPlane};
|
||||
use crate::types::{Camera, CameraPreset, Projection, SlabInput, WallInput};
|
||||
use crate::types::{Camera, CameraPreset, MeshInput, Projection, SlabInput, WallInput};
|
||||
|
||||
/// JSON-Eingabe des Modells: Waende (bereits in Teilquader zerlegt, siehe
|
||||
/// `projectToWalls3d`) + Deckenplatten. `slabs` optional (leeres Modell ohne
|
||||
@@ -42,6 +42,10 @@ struct ModelInput {
|
||||
walls: Vec<WallInput>,
|
||||
#[serde(default)]
|
||||
slabs: Vec<SlabInput>,
|
||||
/// Rohe Kontext-Meshes (Terrain/importierte Volumen). `#[serde(default)]`
|
||||
/// haelt aeltere Payloads ohne `meshes` gueltig.
|
||||
#[serde(default)]
|
||||
meshes: Vec<MeshInput>,
|
||||
}
|
||||
|
||||
/// Berechnet einen Schnitt/eine Ansicht (`section::cut_section`) gegen das Modell
|
||||
@@ -232,7 +236,7 @@ impl WebModelRenderer {
|
||||
.map_err(|e| JsValue::from_str(&format!("Modell parsen: {e}")))?;
|
||||
self.bounds = model_bounds(&model.walls, &model.slabs);
|
||||
self.renderer
|
||||
.upload_model(&self.device, &model.walls, &model.slabs);
|
||||
.upload_model(&self.device, &model.walls, &model.slabs, &model.meshes);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user