jellyflow-runtime 0.1.0

Headless store, rules, schema, profile, and change pipeline for Jellyflow.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use jellyflow_core::core::NodeOrigin;

pub(crate) fn normalize_node_origin(origin: (f32, f32)) -> (f32, f32) {
    let mut ox = origin.0;
    let mut oy = origin.1;
    if !ox.is_finite() {
        ox = 0.0;
    }
    if !oy.is_finite() {
        oy = 0.0;
    }
    (ox.clamp(0.0, 1.0), oy.clamp(0.0, 1.0))
}

pub(crate) fn resolve_node_origin(origin: Option<NodeOrigin>, fallback: (f32, f32)) -> (f32, f32) {
    normalize_node_origin(origin.map(NodeOrigin::as_tuple).unwrap_or(fallback))
}