mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 14:18:04 +08:00
Rename the 'Sample Gradient' node to 'Evaluate Gradient' (#4422)
* Rename the 'Sample Gradient' node to 'Evaluate Gradient' * Let the Evaluate Gradient node's position reach the out-of-range values its spread modes handle
This commit is contained in:
@@ -801,9 +801,9 @@ async fn legacy_four_input_fill_migrates_to_the_split_transform_shape() {
|
||||
"the transform input should hold a matrix, but became {transform:?}"
|
||||
);
|
||||
|
||||
// The Sample Gradient parameter held the tuple-form stops, which parse as the ramp value with even positions elided
|
||||
let sample_gradient_node = &network.nodes[&graph_craft::document::NodeId(2)];
|
||||
let stops = sample_gradient_node.input_value(graphene_std::math_nodes::sample_gradient::GradientInput);
|
||||
// The Evaluate Gradient parameter held the tuple-form stops, which parse as the ramp value with even positions elided
|
||||
let evaluate_gradient_node = &network.nodes[&graph_craft::document::NodeId(2)];
|
||||
let stops = evaluate_gradient_node.input_value(graphene_std::math_nodes::evaluate_gradient::GradientInput);
|
||||
let Some(TaggedValue::GradientRamp(ramp)) = stops else {
|
||||
panic!("the legacy stops parameter should become a gradient ramp value, but became {stops:?}");
|
||||
};
|
||||
|
||||
@@ -258,6 +258,10 @@ const NODE_REPLACEMENTS: &[NodeReplacement<'static>] = &[
|
||||
node: graphene_std::math_nodes::equals::IDENTIFIER,
|
||||
aliases: &["graphene_math_nodes::EqualsNode", "graphene_core::ops::EqualsNode"],
|
||||
},
|
||||
NodeReplacement {
|
||||
node: graphene_std::math_nodes::evaluate_gradient::IDENTIFIER,
|
||||
aliases: &["math_nodes::SampleGradientNode", "graphene_math_nodes::SampleGradientNode", "graphene_core::ops::SampleGradientNode"],
|
||||
},
|
||||
NodeReplacement {
|
||||
node: graphene_std::math_nodes::exponent::IDENTIFIER,
|
||||
aliases: &["graphene_math_nodes::ExponentNode", "graphene_core::ops::ExponentNode"],
|
||||
@@ -399,10 +403,6 @@ const NODE_REPLACEMENTS: &[NodeReplacement<'static>] = &[
|
||||
node: graphene_std::math_nodes::round::IDENTIFIER,
|
||||
aliases: &["graphene_math_nodes::RoundNode", "graphene_core::ops::RoundNode"],
|
||||
},
|
||||
NodeReplacement {
|
||||
node: graphene_std::math_nodes::sample_gradient::IDENTIFIER,
|
||||
aliases: &["graphene_math_nodes::SampleGradientNode", "graphene_core::ops::SampleGradientNode"],
|
||||
},
|
||||
NodeReplacement {
|
||||
node: graphene_std::math_nodes::sine::IDENTIFIER,
|
||||
aliases: &["graphene_math_nodes::SineNode", "graphene_core::ops::SineNode"],
|
||||
|
||||
@@ -1451,7 +1451,14 @@ fn gradient_midpoints(_: impl Ctx, gradient: Item<Gradient>, midpoints: List<f64
|
||||
|
||||
/// Evaluates the color at the specified position along the gradient, given a position from 0 (left) to 1 (right). Positions beyond that range follow the gradient's `gradient_spread` attribute: Pad (default), Reflect, Repeat, or Clear. Colors between stops interpolate in the gradient's `gradient_space` color space.
|
||||
#[node_macro::node(category("Color"))]
|
||||
fn sample_gradient(_: impl Ctx, _primary: (), #[default(Color::BLACK, Color::WHITE)] gradient: Item<Gradient>, position: Item<Fraction>) -> Item<Color> {
|
||||
fn evaluate_gradient(
|
||||
_: impl Ctx,
|
||||
_primary: (),
|
||||
#[default(Color::BLACK, Color::WHITE)] gradient: Item<Gradient>,
|
||||
#[range]
|
||||
#[soft(0..1)]
|
||||
position: Item<f64>,
|
||||
) -> Item<Color> {
|
||||
let settings = vector_types::GradientSettings::from(&gradient);
|
||||
let color = gradient.element().evaluate(*position.element(), settings);
|
||||
Item::new_from_element(color)
|
||||
|
||||
Reference in New Issue
Block a user