feat: add debug node
This commit is contained in:
6
nodes/max/plantarium/debug/.gitignore
vendored
Normal file
6
nodes/max/plantarium/debug/.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/target
|
||||
**/*.rs.bk
|
||||
Cargo.lock
|
||||
bin/
|
||||
pkg/
|
||||
wasm-pack.log
|
||||
12
nodes/max/plantarium/debug/Cargo.toml
Normal file
12
nodes/max/plantarium/debug/Cargo.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[package]
|
||||
name = "debug"
|
||||
version = "0.1.0"
|
||||
authors = ["Max Richter <jim-x@web.de>"]
|
||||
edition = "2018"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "rlib"]
|
||||
|
||||
[dependencies]
|
||||
nodarium_macros = { version = "0.1.0", path = "../../../../packages/macros" }
|
||||
nodarium_utils = { version = "0.1.0", path = "../../../../packages/utils" }
|
||||
22
nodes/max/plantarium/debug/src/input.json
Normal file
22
nodes/max/plantarium/debug/src/input.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"id": "max/plantarium/debug",
|
||||
"outputs": [],
|
||||
"inputs": {
|
||||
"input": {
|
||||
"type": "float",
|
||||
"accepts": [
|
||||
"*"
|
||||
],
|
||||
"external": true
|
||||
},
|
||||
"type": {
|
||||
"type": "select",
|
||||
"options": [
|
||||
"float",
|
||||
"vec3",
|
||||
"geometry"
|
||||
],
|
||||
"internal": true
|
||||
}
|
||||
}
|
||||
}
|
||||
25
nodes/max/plantarium/debug/src/lib.rs
Normal file
25
nodes/max/plantarium/debug/src/lib.rs
Normal file
@@ -0,0 +1,25 @@
|
||||
use nodarium_macros::nodarium_definition_file;
|
||||
use nodarium_macros::nodarium_execute;
|
||||
use nodarium_utils::encode_float;
|
||||
use nodarium_utils::evaluate_float;
|
||||
use nodarium_utils::evaluate_vec3;
|
||||
use nodarium_utils::read_i32;
|
||||
use nodarium_utils::read_i32_slice;
|
||||
|
||||
nodarium_definition_file!("src/input.json");
|
||||
|
||||
#[nodarium_execute]
|
||||
pub fn execute(input: (i32, i32), input_type: (i32, i32)) -> Vec<i32> {
|
||||
let inp = read_i32_slice(input);
|
||||
let t = read_i32(input_type.0);
|
||||
if t == 0 {
|
||||
let f = evaluate_float(inp.as_slice());
|
||||
return vec![encode_float(f)];
|
||||
}
|
||||
if t == 1 {
|
||||
let f = evaluate_vec3(inp.as_slice());
|
||||
return vec![encode_float(f[0]), encode_float(f[1]), encode_float(f[2])];
|
||||
}
|
||||
|
||||
return inp;
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
use nodarium_macros::nodarium_definition_file;
|
||||
use nodarium_macros::nodarium_execute;
|
||||
use nodarium_utils::log;
|
||||
use nodarium_utils::{concat_arg_vecs, read_i32_slice};
|
||||
|
||||
nodarium_definition_file!("src/input.json");
|
||||
|
||||
#[nodarium_execute]
|
||||
pub fn execute(op_type: (i32, i32), a: (i32, i32), b: (i32, i32)) -> Vec<i32> {
|
||||
log!("math.op {:?}", op_type);
|
||||
let op = read_i32_slice(op_type);
|
||||
let a_val = read_i32_slice(a);
|
||||
let b_val = read_i32_slice(b);
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"input": {
|
||||
"type": "path",
|
||||
"accepts": [
|
||||
"geometry"
|
||||
"*"
|
||||
],
|
||||
"external": true
|
||||
},
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
use nodarium_macros::nodarium_definition_file;
|
||||
use nodarium_macros::nodarium_execute;
|
||||
use nodarium_utils::encode_float;
|
||||
use nodarium_utils::evaluate_float;
|
||||
use nodarium_utils::evaluate_vec3;
|
||||
use nodarium_utils::log;
|
||||
use nodarium_utils::read_i32_slice;
|
||||
|
||||
nodarium_definition_file!("src/input.json");
|
||||
@@ -11,17 +7,5 @@ nodarium_definition_file!("src/input.json");
|
||||
#[nodarium_execute]
|
||||
pub fn execute(input: (i32, i32), _res: (i32, i32)) -> Vec<i32> {
|
||||
let inp = read_i32_slice(input);
|
||||
let length = inp.len();
|
||||
if length == 1 {
|
||||
let f = evaluate_float(inp.as_slice());
|
||||
log!("out.float f={:?}", f);
|
||||
return vec![encode_float(f)];
|
||||
}
|
||||
if length == 3 {
|
||||
let f = evaluate_vec3(inp.as_slice());
|
||||
log!("out.vec3 x={:?} y={:?} z={:?}", f[0], f[1], f[2]);
|
||||
return vec![encode_float(f[0]), encode_float(f[1]), encode_float(f[2])];
|
||||
}
|
||||
|
||||
return inp;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user