From cb1455eaeec9de13f39a4898ef57ea5d4f856c84 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Tue, 2 Jul 2019 23:52:12 +0200 Subject: [PATCH] Update Math material node --- Sources/arm/nodes/Cycles.hx | 67 ++++++++++++++++++------------ Sources/arm/nodes/NodesMaterial.hx | 2 +- 2 files changed, 42 insertions(+), 27 deletions(-) diff --git a/Sources/arm/nodes/Cycles.hx b/Sources/arm/nodes/Cycles.hx index 5ad8bfbe..8cd4649c 100644 --- a/Sources/arm/nodes/Cycles.hx +++ b/Sources/arm/nodes/Cycles.hx @@ -1547,6 +1547,45 @@ class Cycles { else if (op == 'DIVIDE') { out_val = '($val1 / $val2)'; } + else if (op == 'POWER') { + out_val = 'pow($val1, $val2)'; + } + else if (op == 'LOGARITHM') { + out_val = 'log($val1)'; + } + else if (op == 'SQUARE_ROOT') { + out_val = 'sqrt($val1)'; + } + else if (op == 'ABSOLUTE') { + out_val = 'abs($val1)'; + } + else if (op == 'MINIMUM') { + out_val = 'min($val1, $val2)'; + } + else if (op == 'MAXIMUM') { + out_val = 'max($val1, $val2)'; + } + else if (op == 'LESS_THAN') { + out_val = 'float($val1 < $val2)'; + } + else if (op == 'GREATER_THAN') { + out_val = 'float($val1 > $val2)'; + } + else if (op == 'ROUND') { + out_val = 'floor($val1 + 0.5)'; + } + else if (op == 'FLOOR') { + out_val = 'floor($val1)'; + } + else if (op == 'CEIL') { + out_val = 'ceil($val1)'; + } + else if (op == 'FRACT') { + out_val = 'fract($val1)'; + } + else if (op == 'MODULO') { + out_val = 'mod($val1, $val2)'; + } else if (op == 'SINE') { out_val = 'sin($val1)'; } @@ -1565,32 +1604,8 @@ class Cycles { else if (op == 'ARCTANGENT') { out_val = 'atan($val1)'; } - else if (op == 'POWER') { - out_val = 'pow($val1, $val2)'; - } - else if (op == 'LOGARITHM') { - out_val = 'log($val1)'; - } - else if (op == 'MINIMUM') { - out_val = 'min($val1, $val2)'; - } - else if (op == 'MAXIMUM') { - out_val = 'max($val1, $val2)'; - } - else if (op == 'ROUND') { - out_val = 'floor($val1 + 0.5)'; - } - else if (op == 'LESS_THAN') { - out_val = 'float($val1 < $val2)'; - } - else if (op == 'GREATER_THAN') { - out_val = 'float($val1 > $val2)'; - } - else if (op == 'MODULO') { - out_val = 'mod($val1, $val2)'; - } - else if (op == 'ABSOLUTE') { - out_val = 'abs($val1)'; + else if (op == 'ARCTAN2') { + out_val = 'atan2($val1, $val2)'; } if (use_clamp) { return 'clamp($out_val, 0.0, 1.0)'; diff --git a/Sources/arm/nodes/NodesMaterial.hx b/Sources/arm/nodes/NodesMaterial.hx index 222874d2..05d69b5e 100644 --- a/Sources/arm/nodes/NodesMaterial.hx +++ b/Sources/arm/nodes/NodesMaterial.hx @@ -1666,7 +1666,7 @@ class NodesMaterial { { name: "operation", type: "ENUM", - data: ["Add", "Subtract", "Multiply", "Divide", "Sine", "Cosine", "Tangent", "Arcsine", "Arccosine", "Arctangent", "Power", "Logarithm", "Minimum", "Maximum", "Round", "Less Than", "Greater Than", "Module", "Absolute"], + data: ["Add", "Subtract", "Multiply", "Divide", "Power", "Logarithm", "Square Root", "Absolute", "Minimum", "Maximum", "Less Than", "Greater Than", "Round", "Floor", "Ceil", "Fract", "Modulo", "Sine", "Cosine", "Tangent", "Arcsine", "Arccosine", "Arctangent", "Arctan2"], default_value: 0, output: 0 },