mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
Add corner rounding to the Rectangle node (#1648)
* add skeleton implementation * add corner rounding * fix crash when `border_radius` is zero * rename `Border Radius` to `Corner Radius` * add clamped property * add `TaggedValue::F64Array4` * add frontend support for individual corner rounding * added individual corner rounding * fix rebase * change default values when switching rounding type * fix crash caused by negative scale * remove `Any` trait * add `Message::Batched` * fix stale property bug * add smarter clamping for individual rounding * Rearrange widgets in properties panel * update individual clamping algorithm * add better variable names * make variable names clearer * Final code cleanup --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
@@ -42,6 +42,7 @@ pub enum TaggedValue {
|
||||
VectorData(graphene_core::vector::VectorData),
|
||||
Fill(graphene_core::vector::style::Fill),
|
||||
Stroke(graphene_core::vector::style::Stroke),
|
||||
F64Array4([f64; 4]),
|
||||
VecF64(Vec<f64>),
|
||||
VecDVec2(Vec<DVec2>),
|
||||
RedGreenBlue(graphene_core::raster::RedGreenBlue),
|
||||
@@ -109,6 +110,7 @@ impl Hash for TaggedValue {
|
||||
Self::VectorData(x) => x.hash(state),
|
||||
Self::Fill(x) => x.hash(state),
|
||||
Self::Stroke(x) => x.hash(state),
|
||||
Self::F64Array4(x) => x.iter().for_each(|x| x.to_bits().hash(state)),
|
||||
Self::VecF64(x) => x.iter().for_each(|val| val.to_bits().hash(state)),
|
||||
Self::VecDVec2(x) => x.iter().for_each(|val| val.to_array().iter().for_each(|x| x.to_bits().hash(state))),
|
||||
Self::RedGreenBlue(x) => x.hash(state),
|
||||
@@ -183,6 +185,7 @@ impl<'a> TaggedValue {
|
||||
TaggedValue::VectorData(x) => Box::new(x),
|
||||
TaggedValue::Fill(x) => Box::new(x),
|
||||
TaggedValue::Stroke(x) => Box::new(x),
|
||||
TaggedValue::F64Array4(x) => Box::new(x),
|
||||
TaggedValue::VecF64(x) => Box::new(x),
|
||||
TaggedValue::VecDVec2(x) => Box::new(x),
|
||||
TaggedValue::RedGreenBlue(x) => Box::new(x),
|
||||
@@ -259,6 +262,7 @@ impl<'a> TaggedValue {
|
||||
TaggedValue::VectorData(_) => concrete!(graphene_core::vector::VectorData),
|
||||
TaggedValue::Fill(_) => concrete!(graphene_core::vector::style::Fill),
|
||||
TaggedValue::Stroke(_) => concrete!(graphene_core::vector::style::Stroke),
|
||||
TaggedValue::F64Array4(_) => concrete!([f64; 4]),
|
||||
TaggedValue::VecF64(_) => concrete!(Vec<f64>),
|
||||
TaggedValue::VecDVec2(_) => concrete!(Vec<DVec2>),
|
||||
TaggedValue::RedGreenBlue(_) => concrete!(graphene_core::raster::RedGreenBlue),
|
||||
|
||||
Reference in New Issue
Block a user