Vordergrund wirkt jetzt wirklich auf die Schraffurfarbe (war seit
2026-07-04 hart auf Tinte gezwungen) Nutzer-Report: "Vordergrund funktioniert bei mir jetzt nicht, es ist und bleibt schwarz, idk y. Hintergrund geht." Ursache gefunden: resolveHatch() (plan/generatePlan/shared.ts) zwang `color` schon immer fest auf HATCH_INK, mit explizitem Code-Kommentar "Nutzer-Vorgabe 2026-07-04" -- eine frühere, bewusste Entscheidung, dass Schnitt- UND Ansichtsschraffur IMMER dieselbe dunkle Tinte zeigen, unabhängig vom aufgelösten Vordergrund. Der `_foreground`-Parameter wurde entgegen- genommen, aber nie verwendet (Unterstrich-Präfix als Markierung). Rückfrage gestellt (Entscheidung von 2026-07-04 aufheben oder als gewollt so belassen?) -- Nutzer bestätigt: aufheben. Fix: `color: foreground ?? HATCH_INK` -- ein aufgelöster Vordergrund gewinnt, fehlt er (der heutige Normalfall, da Component.foreground bei den meisten Bauteilen nie gesetzt ist), bleibt es exakt beim bisherigen Verhalten. Betrifft ALLE Aufrufer von resolveHatch (Wand, Decke, Stütze, Drawing2D, Grundriss UND Schnitt) einheitlich, da sie den Vordergrund schon vorher korrekt auflösten und durchreichten -- nur eben verworfen wurde. +2 Tests in structures.column.test.ts (Default bleibt Tinte, expliziter Vordergrund-Override schlägt jetzt durch). tsc/vitest 940/940 grün.
This commit is contained in:
@@ -121,8 +121,9 @@ export function resolveWallSectionStyle(project: Project, wall: Wall): SectionCu
|
||||
wallAngleDeg,
|
||||
resolveForeground(best, wall.foreground, category, wall.foregroundSource),
|
||||
);
|
||||
// Poché-Hintergrund neutral (Papier) statt Bauteil-Albedo; Vollmuster → Tinte.
|
||||
// `hatch.color` ist bereits über {@link resolveHatch} auf HATCH_INK gezwungen.
|
||||
// Poché-Hintergrund neutral (Papier) statt Bauteil-Albedo; Vollmuster → Tinte
|
||||
// (unabhängig von `hatch.color`, das jetzt den aufgelösten Vordergrund tragen
|
||||
// kann, s. {@link resolveHatch}).
|
||||
const solid = hatch.pattern === "solid";
|
||||
return {
|
||||
fill: solid ? HATCH_INK : HATCH_PAPER,
|
||||
|
||||
@@ -369,20 +369,20 @@ export type Primitive =
|
||||
* {@link HatchRender} auf. Der Linienstil der Musterlinien wird, falls gesetzt,
|
||||
* aus dem Line Manager nachgeschlagen; sonst gilt ein dünner Default.
|
||||
*
|
||||
* VORDERGRUND (Muster-/Schraffurlinienfarbe bzw. Vollfüllung): AKTUELL fest auf
|
||||
* {@link HATCH_INK} gezwungen (Nutzer-Vorgabe 2026-07-04) — Schnitt- WIE
|
||||
* Oberflächen-/Ansichtsschraffur zeigen dieselbe dunkle Tinte, unabhängig von
|
||||
* Material-/Bauteilfarbe, HatchStyle.color oder einem By-Layer/By-Object-
|
||||
* Vordergrund-Override. `_foreground` bleibt Teil der Signatur — alle Aufrufer
|
||||
* reichen weiterhin den über {@link resolveForeground} aufgelösten Bauteil-
|
||||
* Vordergrund durch (z. B. für eine spätere Wiederherstellung der materialtreuen
|
||||
* Schraffur) —, fließt aber bewusst nicht mehr in `color` ein.
|
||||
* VORDERGRUND (Muster-/Schraffurlinienfarbe bzw. Vollfüllung): der über
|
||||
* {@link resolveForeground} aufgelöste Vordergrund gewinnt, wenn gesetzt (Nach
|
||||
* Ebene/Nach Bauteil/eigener Wert); OHNE aufgelösten Wert bleibt es bei der
|
||||
* neutralen Tinte {@link HATCH_INK} (bisheriges Verhalten — 2026-07-04 war die
|
||||
* Vordergrund-Kette hier noch fest auf HATCH_INK gezwungen, unabhängig vom
|
||||
* Ergebnis; auf Nutzer-Wunsch wieder aufgehoben, da „Vordergrund" im Attribut-
|
||||
* Panel sonst wirkungslos bliebe — betrifft nur Elemente mit tatsächlich
|
||||
* gesetztem Vordergrund, unverändertes Verhalten für alle anderen).
|
||||
*/
|
||||
export function resolveHatch(
|
||||
project: Project,
|
||||
hatchId: string,
|
||||
wallAngleDeg?: number,
|
||||
_foreground?: string,
|
||||
foreground?: string,
|
||||
): HatchRender {
|
||||
const h = getHatch(project, hatchId);
|
||||
const ls = h.lineStyleId ? getLineStyle(project, h.lineStyleId) : null;
|
||||
@@ -399,9 +399,8 @@ export function resolveHatch(
|
||||
pattern: h.pattern,
|
||||
scale: h.scale,
|
||||
angle,
|
||||
// Fest auf die Monochrom-Tinte gezwungen (siehe JSDoc oben) — weder
|
||||
// `_foreground` noch `HatchStyle.color` (Material-/Bauteilfarbe) fließen ein.
|
||||
color: HATCH_INK,
|
||||
// Aufgelöster Vordergrund gewinnt (s. JSDoc oben), sonst neutrale Tinte.
|
||||
color: foreground ?? HATCH_INK,
|
||||
lineWeight: ls?.weight ?? 0.13,
|
||||
dash: ls?.dash ?? null,
|
||||
kind: h.kind,
|
||||
|
||||
@@ -116,4 +116,16 @@ describe("addColumnPoche — Attribut-Override greift", () => {
|
||||
);
|
||||
expect(polygonOf(out).hatch.pattern).toBe("none");
|
||||
});
|
||||
|
||||
it("ohne gesetzten Vordergrund: Schraffurfarbe bleibt die neutrale Tinte (Default unverändert)", () => {
|
||||
const out: Primitive[] = [];
|
||||
addColumnPoche(out, project(), column(), false, 0.35, category);
|
||||
expect(polygonOf(out).hatch.color).toBe("#0f0f0f");
|
||||
});
|
||||
|
||||
it("mit explizitem foreground-Override: die Schraffurfarbe wird die Override-Farbe (vorher wirkungslos)", () => {
|
||||
const out: Primitive[] = [];
|
||||
addColumnPoche(out, project(), column({ foreground: "#00ff88" }), false, 0.35, category);
|
||||
expect(polygonOf(out).hatch.color).toBe("#00ff88");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user