forked from 1b-agent/opencadstudio-upstream
Fix linetype refresh and circle rendering
This commit is contained in:
1 parent
30b8974b73
commit
6752df6ea4
2 files changed
+12
-3
No files matched your search
@@ -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());
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user