Fix inconsistent stroke width in 'Outline' view mode (#2417)

* fix noise pattern parameter issue

* removed the commented out line

* Fix outline mode stroke width not consistent
This commit is contained in:
Ellen Gu 2025-03-10 06:29:53 -04:00 committed by GitHub
parent 74b6abbb97
commit 7a3bb999a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -445,12 +445,9 @@ impl GraphicElementRendered for VectorDataTable {
fn render_svg(&self, render: &mut SvgRender, render_params: &RenderParams) {
for instance in self.instances() {
let multiplied_transform = render.transform * instance.transform();
let set_stroke_transform = instance
.instance
.style
.stroke()
.map(|stroke| stroke.transform)
.filter(|transform| transform.matrix2.determinant() != 0.);
// Only consider strokes with non-zero weight, since default strokes with zero weight would prevent assigning the correct stroke transform
let has_real_stroke = instance.instance.style.stroke().filter(|stroke| stroke.weight() > 0.);
let set_stroke_transform = has_real_stroke.map(|stroke| stroke.transform).filter(|transform| transform.matrix2.determinant() != 0.);
let applied_stroke_transform = set_stroke_transform.unwrap_or(instance.transform());
let element_transform = set_stroke_transform.map(|stroke_transform| multiplied_transform * stroke_transform.inverse());
let element_transform = element_transform.unwrap_or(DAffine2::IDENTITY);
@ -468,6 +465,7 @@ impl GraphicElementRendered for VectorDataTable {
attributes.push("transform", matrix);
let defs = &mut attributes.0.svg_defs;
let fill_and_stroke = instance
.instance
.style