mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-08-03 21:08:18 +00:00
Add more math nodes (#1378)
* Adds Max, Min and Equal Nodes * Add LogToConsoleNode Logs the data given as the input to the browser console and returns it as the output
This commit is contained in:
parent
e820cf48f6
commit
2377240d07
6 changed files with 133 additions and 1 deletions
|
@ -9,6 +9,7 @@ extern crate log;
|
|||
|
||||
pub mod consts;
|
||||
pub mod generic;
|
||||
pub mod logic;
|
||||
pub mod ops;
|
||||
pub mod structural;
|
||||
#[cfg(feature = "std")]
|
||||
|
|
9
node-graph/gcore/src/logic.rs
Normal file
9
node-graph/gcore/src/logic.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
use crate::Node;
|
||||
|
||||
pub struct LogToConsoleNode;
|
||||
|
||||
#[node_macro::node_fn(LogToConsoleNode)]
|
||||
fn log_to_console<T: core::fmt::Debug>(value: T) -> T {
|
||||
debug!("{:#?}", value);
|
||||
value
|
||||
}
|
|
@ -83,6 +83,42 @@ where
|
|||
first.pow(second)
|
||||
}
|
||||
|
||||
// Minimum
|
||||
pub struct MinParameterNode<Second> {
|
||||
second: Second,
|
||||
}
|
||||
|
||||
#[node_macro::node_fn(MinParameterNode)]
|
||||
fn min<T: core::cmp::PartialOrd>(first: T, second: T) -> T {
|
||||
match first < second {
|
||||
true => first,
|
||||
false => second,
|
||||
}
|
||||
}
|
||||
|
||||
// Maximum
|
||||
pub struct MaxParameterNode<Second> {
|
||||
second: Second,
|
||||
}
|
||||
|
||||
#[node_macro::node_fn(MaxParameterNode)]
|
||||
fn max<T: core::cmp::PartialOrd>(first: T, second: T) -> T {
|
||||
match first > second {
|
||||
true => first,
|
||||
false => second,
|
||||
}
|
||||
}
|
||||
|
||||
// Equality
|
||||
pub struct EqParameterNode<Second> {
|
||||
second: Second,
|
||||
}
|
||||
|
||||
#[node_macro::node_fn(EqParameterNode)]
|
||||
fn eq<T: core::cmp::PartialEq>(first: T, second: T) -> bool {
|
||||
first == second
|
||||
}
|
||||
|
||||
// Modulo
|
||||
pub struct ModuloParameterNode<Second> {
|
||||
second: Second,
|
||||
|
|
|
@ -227,7 +227,12 @@ fn node_registry() -> HashMap<NodeIdentifier, HashMap<NodeIOTypes, NodeConstruct
|
|||
register_node!(graphene_core::ops::ExponentParameterNode<_>, input: f32, params: [f32]),
|
||||
register_node!(graphene_core::ops::ExponentParameterNode<_>, input: &f32, params: [f32]),
|
||||
register_node!(graphene_core::ops::ExponentParameterNode<_>, input: f32, params: [&f32]),
|
||||
register_node!(graphene_core::ops::ExponentParameterNode<_>, input: &f32, params: [&f32]),
|
||||
register_node!(graphene_core::ops::MaxParameterNode<_>, input: u32, params: [u32]),
|
||||
register_node!(graphene_core::ops::MaxParameterNode<_>, input: f32, params: [f32]),
|
||||
register_node!(graphene_core::ops::MinParameterNode<_>, input: u32, params: [u32]),
|
||||
register_node!(graphene_core::ops::MinParameterNode<_>, input: f32, params: [f32]),
|
||||
register_node!(graphene_core::ops::EqParameterNode<_>, input: u32, params: [u32]),
|
||||
register_node!(graphene_core::ops::EqParameterNode<_>, input: f32, params: [f32]),
|
||||
register_node!(graphene_core::ops::ModuloParameterNode<_>, input: u32, params: [u32]),
|
||||
register_node!(graphene_core::ops::ModuloParameterNode<_>, input: &u32, params: [u32]),
|
||||
register_node!(graphene_core::ops::ModuloParameterNode<_>, input: u32, params: [&u32]),
|
||||
|
@ -237,6 +242,15 @@ fn node_registry() -> HashMap<NodeIdentifier, HashMap<NodeIOTypes, NodeConstruct
|
|||
register_node!(graphene_core::ops::ModuloParameterNode<_>, input: f32, params: [&f32]),
|
||||
register_node!(graphene_core::ops::ModuloParameterNode<_>, input: &f32, params: [&f32]),
|
||||
register_node!(graphene_core::ops::SomeNode, input: WasmEditorApi, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: bool, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: f32, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: f64, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: u32, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: u64, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: String, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: DVec2, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: VectorData, params: []),
|
||||
register_node!(graphene_core::logic::LogToConsoleNode, input: DAffine2, params: []),
|
||||
async_node!(graphene_core::ops::IntoNode<_, ImageFrame<SRGBA8>>, input: ImageFrame<Color>, output: ImageFrame<SRGBA8>, params: []),
|
||||
async_node!(graphene_core::ops::IntoNode<_, ImageFrame<Color>>, input: ImageFrame<SRGBA8>, output: ImageFrame<Color>, params: []),
|
||||
#[cfg(feature = "gpu")]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue