Fix linetype refresh and circle rendering

This commit is contained in:
gianlucafiore authored and Hakan Seven committed 2026-08-06 23:35:16 +03:00
1 parent 30b8974b73
commit 6752df6ea4
2 files changed
+12 -3

No files matched your search

+2
View File
@@ -1887,6 +1887,8 @@ impl OpenCADStudio {
if v > 0.0 {
self.push_undo_snapshot(i, "LTSCALE");
self.tabs[i].scene.document.header.linetype_scale = v;
// LTSCALE affects the cached linetype geometry of the whole drawing.
self.tabs[i].scene.bump_geometry();
self.tabs[i].dirty = true;
self.command_line
.push_output(crate::tf!("LTSCALE set to {v:.4}").as_ref());
+10 -3
View File
@@ -1189,7 +1189,14 @@ pub fn tessellate(
} else {
color
};
// Circles use the Lines path for large-coordinate precision, but they
// must still preserve the entity's resolved linetype pattern.
let (edge_pattern_length, edge_pattern) =
if matches!(entity, EntityType::Circle(_)) {
(pattern_length, pattern)
} else {
(0.0, [0.0; 8])
};
if !local_pts.is_empty() {
let (snap, keys, tangents) = if is_first {
is_first = false;
@@ -1217,8 +1224,8 @@ pub fn tessellate(
points_low: local_pts_low,
color: edge_color,
selected,
pattern_length: 0.0,
pattern: [0.0; 8],
pattern_length: edge_pattern_length,
pattern: edge_pattern,
line_weight_px,
snap_pts: snap,
tangent_geoms: tangents,