From 035026f48a2766cd5793f92062c7268bfb02a5c6 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 5 Nov 2014 11:27:52 +0100 Subject: Code cleanup: Replace magic number with verbose name for math node operations Should be no functional changes, just much less cryptic code. --- source/blender/compositor/nodes/COM_MathNode.cpp | 38 +++++------ source/blender/makesdna/DNA_node_types.h | 23 +++++++ source/blender/makesrna/intern/rna_nodetree.c | 38 +++++------ .../blender/nodes/shader/nodes/node_shader_math.c | 74 +++++++++++----------- .../nodes/texture/nodes/node_texture_math.c | 38 +++++------ 5 files changed, 117 insertions(+), 94 deletions(-) (limited to 'source/blender') diff --git a/source/blender/compositor/nodes/COM_MathNode.cpp b/source/blender/compositor/nodes/COM_MathNode.cpp index ef7046b8165..4cd6964ed3b 100644 --- a/source/blender/compositor/nodes/COM_MathNode.cpp +++ b/source/blender/compositor/nodes/COM_MathNode.cpp @@ -29,61 +29,61 @@ void MathNode::convertToOperations(NodeConverter &converter, const CompositorCon MathBaseOperation *operation = NULL; switch (this->getbNode()->custom1) { - case 0: /* Add */ + case NODE_MATH_ADD: operation = new MathAddOperation(); break; - case 1: /* Subtract */ + case NODE_MATH_SUB: operation = new MathSubtractOperation(); break; - case 2: /* Multiply */ + case NODE_MATH_MUL: operation = new MathMultiplyOperation(); break; - case 3: /* Divide */ + case NODE_MATH_DIVIDE: operation = new MathDivideOperation(); break; - case 4: /* Sine */ + case NODE_MATH_SIN: operation = new MathSineOperation(); break; - case 5: /* Cosine */ + case NODE_MATH_COS: operation = new MathCosineOperation(); break; - case 6: /* Tangent */ + case NODE_MATH_TAN: operation = new MathTangentOperation(); break; - case 7: /* Arc-Sine */ + case NODE_MATH_ASIN: operation = new MathArcSineOperation(); break; - case 8: /* Arc-Cosine */ + case NODE_MATH_ACOS: operation = new MathArcCosineOperation(); break; - case 9: /* Arc-Tangent */ + case NODE_MATH_ATAN: operation = new MathArcTangentOperation(); break; - case 10: /* Power */ + case NODE_MATH_POW: operation = new MathPowerOperation(); break; - case 11: /* Logarithm */ + case NODE_MATH_LOG: operation = new MathLogarithmOperation(); break; - case 12: /* Minimum */ + case NODE_MATH_MIN: operation = new MathMinimumOperation(); break; - case 13: /* Maximum */ + case NODE_MATH_MAX: operation = new MathMaximumOperation(); break; - case 14: /* Round */ + case NODE_MATH_ROUND: operation = new MathRoundOperation(); break; - case 15: /* Less Than */ + case NODE_MATH_LESS: operation = new MathLessThanOperation(); break; - case 16: /* Greater Than */ + case NODE_MATH_GREATER: operation = new MathGreaterThanOperation(); break; - case 17: /* Modulo */ + case NODE_MATH_MOD: operation = new MathModuloOperation(); break; - case 18: /* Absolute Value */ + case NODE_MATH_ABS: operation = new MathAbsoluteOperation(); break; } diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 656e24d57b1..02c451e8549 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -988,6 +988,29 @@ typedef struct NodeSunBeams { /* math node clamp */ #define SHD_MATH_CLAMP 1 +/* Math node operation/ */ +enum { + NODE_MATH_ADD = 0, + NODE_MATH_SUB = 1, + NODE_MATH_MUL = 2, + NODE_MATH_DIVIDE = 3, + NODE_MATH_SIN = 4, + NODE_MATH_COS = 5, + NODE_MATH_TAN = 6, + NODE_MATH_ASIN = 7, + NODE_MATH_ACOS = 8, + NODE_MATH_ATAN = 9, + NODE_MATH_POW = 10, + NODE_MATH_LOG = 11, + NODE_MATH_MIN = 12, + NODE_MATH_MAX = 13, + NODE_MATH_ROUND = 14, + NODE_MATH_LESS = 15, + NODE_MATH_GREATER = 16, + NODE_MATH_MOD = 17, + NODE_MATH_ABS = 18, +}; + /* mix rgb node flags */ #define SHD_MIXRGB_USE_ALPHA 1 #define SHD_MIXRGB_CLAMP 2 diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 9ced016611f..91dcb9f4d81 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -112,25 +112,25 @@ EnumPropertyItem node_icon_items[] = { #undef DEF_VICO EnumPropertyItem node_math_items[] = { - { 0, "ADD", 0, "Add", ""}, - { 1, "SUBTRACT", 0, "Subtract", ""}, - { 2, "MULTIPLY", 0, "Multiply", ""}, - { 3, "DIVIDE", 0, "Divide", ""}, - { 4, "SINE", 0, "Sine", ""}, - { 5, "COSINE", 0, "Cosine", ""}, - { 6, "TANGENT", 0, "Tangent", ""}, - { 7, "ARCSINE", 0, "Arcsine", ""}, - { 8, "ARCCOSINE", 0, "Arccosine", ""}, - { 9, "ARCTANGENT", 0, "Arctangent", ""}, - {10, "POWER", 0, "Power", ""}, - {11, "LOGARITHM", 0, "Logarithm", ""}, - {12, "MINIMUM", 0, "Minimum", ""}, - {13, "MAXIMUM", 0, "Maximum", ""}, - {14, "ROUND", 0, "Round", ""}, - {15, "LESS_THAN", 0, "Less Than", ""}, - {16, "GREATER_THAN", 0, "Greater Than", ""}, - {17, "MODULO", 0, "Modulo", ""}, - {18, "ABSOLUTE", 0, "Absolute", ""}, + {NODE_MATH_ADD, "ADD", 0, "Add", ""}, + {NODE_MATH_SUB, "SUBTRACT", 0, "Subtract", ""}, + {NODE_MATH_MUL, "MULTIPLY", 0, "Multiply", ""}, + {NODE_MATH_DIVIDE, "DIVIDE", 0, "Divide", ""}, + {NODE_MATH_SIN, "SINE", 0, "Sine", ""}, + {NODE_MATH_COS, "COSINE", 0, "Cosine", ""}, + {NODE_MATH_TAN, "TANGENT", 0, "Tangent", ""}, + {NODE_MATH_ASIN, "ARCSINE", 0, "Arcsine", ""}, + {NODE_MATH_ACOS, "ARCCOSINE", 0, "Arccosine", ""}, + {NODE_MATH_ATAN, "ARCTANGENT", 0, "Arctangent", ""}, + {NODE_MATH_POW, "POWER", 0, "Power", ""}, + {NODE_MATH_LOG, "LOGARITHM", 0, "Logarithm", ""}, + {NODE_MATH_MIN, "MINIMUM", 0, "Minimum", ""}, + {NODE_MATH_MAX, "MAXIMUM", 0, "Maximum", ""}, + {NODE_MATH_ROUND, "ROUND", 0, "Round", ""}, + {NODE_MATH_LESS, "LESS_THAN", 0, "Less Than", ""}, + {NODE_MATH_GREATER, "GREATER_THAN", 0, "Greater Than", ""}, + {NODE_MATH_MOD, "MODULO", 0, "Modulo", ""}, + {NODE_MATH_ABS, "ABSOLUTE", 0, "Absolute", ""}, {0, NULL, 0, NULL, NULL} }; diff --git a/source/blender/nodes/shader/nodes/node_shader_math.c b/source/blender/nodes/shader/nodes/node_shader_math.c index a33b33682ce..eb018e6c7eb 100644 --- a/source/blender/nodes/shader/nodes/node_shader_math.c +++ b/source/blender/nodes/shader/nodes/node_shader_math.c @@ -54,16 +54,16 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode switch (node->custom1) { - case 0: /* Add */ + case NODE_MATH_ADD: r = a + b; break; - case 1: /* Subtract */ + case NODE_MATH_SUB: r = a - b; break; - case 2: /* Multiply */ + case NODE_MATH_MUL: r = a * b; break; - case 3: /* Divide */ + case NODE_MATH_DIVIDE: { if (b == 0) /* We don't want to divide by zero. */ r = 0.0; @@ -71,7 +71,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = a / b; break; } - case 4: /* Sine */ + case NODE_MATH_SIN: { if (in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ r = sinf(a); @@ -79,7 +79,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = sinf(b); break; } - case 5: /* Cosine */ + case NODE_MATH_COS: { if (in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ r = cosf(a); @@ -87,7 +87,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = cosf(b); break; } - case 6: /* Tangent */ + case NODE_MATH_TAN: { if (in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ r = tanf(a); @@ -95,7 +95,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = tanf(b); break; } - case 7: /* Arc-Sine */ + case NODE_MATH_ASIN: { if (in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ /* Can't do the impossible... */ @@ -113,7 +113,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode } break; } - case 8: /* Arc-Cosine */ + case NODE_MATH_ACOS: { if (in[0]->hasinput || !in[1]->hasinput) { /* This one only takes one input, so we've got to choose. */ /* Can't do the impossible... */ @@ -131,7 +131,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode } break; } - case 9: /* Arc-Tangent */ + case NODE_MATH_ATAN: { if (in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ r = atan(a); @@ -139,7 +139,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = atan(b); break; } - case 10: /* Power */ + case NODE_MATH_POW: { /* Only raise negative numbers by full integers */ if (a >= 0) { @@ -159,7 +159,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode break; } - case 11: /* Logarithm */ + case NODE_MATH_LOG: { /* Don't want any imaginary numbers... */ if (a > 0 && b > 0) @@ -168,7 +168,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = 0.0; break; } - case 12: /* Minimum */ + case NODE_MATH_MIN: { if (a < b) r = a; @@ -176,7 +176,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = b; break; } - case 13: /* Maximum */ + case NODE_MATH_MAX: { if (a > b) r = a; @@ -184,7 +184,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = b; break; } - case 14: /* Round */ + case NODE_MATH_ROUND: { if (in[0]->hasinput || !in[1]->hasinput) /* This one only takes one input, so we've got to choose. */ r = (a < 0) ? (int)(a - 0.5f) : (int)(a + 0.5f); @@ -192,7 +192,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = (b < 0) ? (int)(b - 0.5f) : (int)(b + 0.5f); break; } - case 15: /* Less Than */ + case NODE_MATH_LESS: { if (a < b) r = 1.0f; @@ -200,7 +200,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = 0.0f; break; } - case 16: /* Greater Than */ + case NODE_MATH_GREATER: { if (a > b) r = 1.0f; @@ -208,7 +208,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = 0.0f; break; } - case 17: /* Modulo */ + case NODE_MATH_MOD: { if (b == 0.0f) r = 0.0f; @@ -216,7 +216,7 @@ static void node_shader_exec_math(void *UNUSED(data), int UNUSED(thread), bNode r = fmod(a, b); break; } - case 18: /* Absolute */ + case NODE_MATH_ABS: { r = fabsf(a); break; @@ -236,26 +236,26 @@ static int gpu_shader_math(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED( "math_round", "math_less_than", "math_greater_than", "math_modulo", "math_absolute"}; switch (node->custom1) { - case 0: - case 1: - case 2: - case 3: - case 10: - case 11: - case 12: - case 13: - case 15: - case 16: - case 17: + case NODE_MATH_ADD: + case NODE_MATH_SUB: + case NODE_MATH_MUL: + case NODE_MATH_DIVIDE: + case NODE_MATH_POW: + case NODE_MATH_LOG: + case NODE_MATH_MIN: + case NODE_MATH_MAX: + case NODE_MATH_LESS: + case NODE_MATH_GREATER: + case NODE_MATH_MOD: GPU_stack_link(mat, names[node->custom1], in, out); break; - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 14: + case NODE_MATH_SIN: + case NODE_MATH_COS: + case NODE_MATH_TAN: + case NODE_MATH_ASIN: + case NODE_MATH_ACOS: + case NODE_MATH_ATAN: + case NODE_MATH_ROUND: if (in[0].hasinput || !in[1].hasinput) { /* use only first item and terminator */ GPUNodeStack tmp_in[2]; diff --git a/source/blender/nodes/texture/nodes/node_texture_math.c b/source/blender/nodes/texture/nodes/node_texture_math.c index 94e778e10fb..1984ee506e0 100644 --- a/source/blender/nodes/texture/nodes/node_texture_math.c +++ b/source/blender/nodes/texture/nodes/node_texture_math.c @@ -53,16 +53,16 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor switch (node->custom1) { - case 0: /* Add */ + case NODE_MATH_ADD: *out = in0 + in1; break; - case 1: /* Subtract */ + case NODE_MATH_SUB: *out = in0 - in1; break; - case 2: /* Multiply */ + case NODE_MATH_MUL: *out = in0 * in1; break; - case 3: /* Divide */ + case NODE_MATH_DIVIDE: { if (in1 == 0) /* We don't want to divide by zero. */ *out = 0.0; @@ -70,22 +70,22 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor *out = in0 / in1; break; } - case 4: /* Sine */ + case NODE_MATH_SIN: { *out = sinf(in0); break; } - case 5: /* Cosine */ + case NODE_MATH_COS: { *out = cosf(in0); break; } - case 6: /* Tangent */ + case NODE_MATH_TAN: { *out = tanf(in0); break; } - case 7: /* Arc-Sine */ + case NODE_MATH_ASIN: { /* Can't do the impossible... */ if (in0 <= 1 && in0 >= -1) @@ -94,7 +94,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor *out = 0.0; break; } - case 8: /* Arc-Cosine */ + case NODE_MATH_ACOS: { /* Can't do the impossible... */ if (in0 <= 1 && in0 >= -1) @@ -103,12 +103,12 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor *out = 0.0; break; } - case 9: /* Arc-Tangent */ + case NODE_MATH_ATAN: { *out = atan(in0); break; } - case 10: /* Power */ + case NODE_MATH_POW: { /* Only raise negative numbers by full integers */ if (in0 >= 0) { @@ -125,7 +125,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor } break; } - case 11: /* Logarithm */ + case NODE_MATH_LOG: { /* Don't want any imaginary numbers... */ if (in0 > 0 && in1 > 0) @@ -134,7 +134,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor *out = 0.0; break; } - case 12: /* Minimum */ + case NODE_MATH_MIN: { if (in0 < in1) *out = in0; @@ -142,7 +142,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor *out = in1; break; } - case 13: /* Maximum */ + case NODE_MATH_MAX: { if (in0 > in1) *out = in0; @@ -150,13 +150,13 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor *out = in1; break; } - case 14: /* Round */ + case NODE_MATH_ROUND: { *out = (in0 < 0) ? (int)(in0 - 0.5f) : (int)(in0 + 0.5f); break; } - case 15: /* Less Than */ + case NODE_MATH_LESS: { if (in0 < in1) *out = 1.0f; @@ -165,7 +165,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor break; } - case 16: /* Greater Than */ + case NODE_MATH_GREATER: { if (in0 > in1) *out = 1.0f; @@ -174,7 +174,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor break; } - case 17: /* Modulo */ + case NODE_MATH_MOD: { if (in1 == 0.0f) *out = 0.0f; @@ -183,7 +183,7 @@ static void valuefn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor break; } - case 18: /* Absolute */ + case NODE_MATH_ABS: { *out = fabsf(in0); break; -- cgit v1.2.3