Kontext-Objekte im 3D-Viewport anwählbar (Klick, Bounding-Box-Highlight, Löschen)

Importierte Gebäude/Terrain-Meshes waren bisher nur ein Eintrag im Geo-Panel,
nicht direkt im 3D anwählbar. Raycast/Pick-Geometrie um Kontext-Meshes
erweitert, Auswahl-Kanal (selectedContextObjectIds) ergänzt, Highlight als
Bounding-Box-Umriss (volles Dreiecks-Wireframe wäre bei grossen Importen zu
dicht), Entf-Taste löscht die Auswahl, SitePanel hebt sie in der Liste hervor.
This commit is contained in:
2026-07-12 19:54:00 +02:00
parent 02c36bd35b
commit 0ab3f70277
10 changed files with 317 additions and 13 deletions
+7 -1
View File
@@ -115,7 +115,13 @@ export function SitePanel() {
) : (
<ul className="site-list">
{objects.map((obj) => (
<li key={obj.id} className="site-row">
<li
key={obj.id}
className={
"site-row" +
(host.selectedContextObjectIds.includes(obj.id) ? " site-row-selected" : "")
}
>
<span className="site-name" title={obj.name}>
{obj.name}
</span>
+2
View File
@@ -402,6 +402,8 @@ export interface PanelHostValue {
// ── Site-/Kontext-Schicht (SitePanel) ───────────────────────────────────
/** Aktuelle Kontext-Objekte (Meshes/Konturen/Gelände) aus `project.context`. */
contextObjects: ContextObject[];
/** Im 3D-Viewport angewählte Kontext-Objekte (Umriss-Hervorhebung), s. selectionSlice. */
selectedContextObjectIds: string[];
/** Fügt mehrere Kontext-Objekte hinzu (z. B. aus einem DXF-Import). */
onAddContextObjects: (objs: ContextObject[]) => void;
/** Entfernt ein Kontext-Objekt per ID. */