render3d-Schnitt: Öffnungen — Brüstung/Sturz-Teilpolygone und Durchblick
WallInput bekommt openings (from/to/sill/height, serde-default). Der Cut durch eine Öffnung liefert mehrere einfache Rechtecke (Brüstung, Sturz, Leibungen) statt Lochpolygon — kompatibel zu render2d::FillPolygon. Der Verdeckungstest behandelt Öffnungen als Durchblick (u-Zuordnung exakt im Elevationsfall, konservativ undurchsichtig bei kantennaher Ausrichtung); Fensterrahmen-Kanten werden als projizierte Kanten ausgegeben. Tests 26 auf 29, Beweis-SVG mit Fenster + dahinterliegender Wand neu generiert (sichtbares Band exakt im Fensterausschnitt). mesh.rs (3D-Vollkoerper) beruecksichtigt Öffnungen weiterhin nicht — dokumentierte Luecke.
This commit is contained in:
@@ -57,6 +57,7 @@ mod tests {
|
||||
height,
|
||||
base_elevation: 0.0,
|
||||
color: [0.8, 0.8, 0.8],
|
||||
openings: vec![],
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,6 +93,7 @@ mod tests {
|
||||
height: 2.5,
|
||||
base_elevation: 0.0,
|
||||
color: [0.8, 0.8, 0.8],
|
||||
openings: vec![],
|
||||
},
|
||||
]);
|
||||
assert_eq!(mesh.vertex_count(), 2 * VERTS_PER_BOX);
|
||||
@@ -168,6 +170,7 @@ mod tests {
|
||||
height: 3.0,
|
||||
base_elevation: 0.0,
|
||||
color: [0.8, 0.8, 0.8],
|
||||
openings: vec![],
|
||||
};
|
||||
let mut mesh = Mesh::default();
|
||||
extrude_wall(&mut mesh, &w);
|
||||
@@ -187,6 +190,7 @@ mod tests {
|
||||
height: 2.5,
|
||||
base_elevation: 0.0,
|
||||
color: [0.8, 0.8, 0.8],
|
||||
openings: vec![],
|
||||
};
|
||||
let mesh = build_walls_mesh(&[w]);
|
||||
assert_eq!(mesh.vertex_count(), 0);
|
||||
|
||||
Reference in New Issue
Block a user