forked from 1b-agent/opencadstudio-upstream
feat(table): coloured synthesis render honouring all TableStyle fields
Tables without a baked block (e.g. created in-app) were drawn as a single monochrome wire, ignoring cell colours/fills/border styling. Add a coloured synthesis path that emits per-colour WireModels for: - cell background fill (fill_color + fill_enabled), - per-cell text in its content/text colour, - grid borders with per-edge type/weight/colour/visibility (cell-style override → row-style → default), - horizontal/vertical margins and flow direction (down/up). Imported tables keep using AutoCAD's baked block. Resolution layers the per-cell CellStyle over the TableStyle row style over defaults. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
90c9ac62c8
commit
1b20d7d781
2 files changed
+379
No files matched your search
@@ -6734,6 +6734,20 @@ fn tessellate_entity(
|
||||
}
|
||||
}
|
||||
}
|
||||
// No baked block (e.g. a table created in-app) — synthesise coloured
|
||||
// geometry from the rows + TableStyle so fills/colours/borders/margins
|
||||
// are honoured instead of the monochrome fallback.
|
||||
let mut wires = crate::entities::table::tessellate_table(
|
||||
tab, document, sel, entity_color, line_weight_px, world_offset,
|
||||
);
|
||||
if !wires.is_empty() {
|
||||
let aabb = entity_aabb(e, world_offset);
|
||||
for w in &mut wires {
|
||||
w.aci = aci;
|
||||
w.aabb = aabb;
|
||||
}
|
||||
return wires;
|
||||
}
|
||||
}
|
||||
|
||||
if let EntityType::Insert(ins) = e {
|
||||
|
||||
Reference in new issue
Block a user