Code cleanup: Replace magic number with verbose name for math node operations
Should be no functional changes, just much less cryptic code.
This commit is contained in:
parent
1073c6ae8e
commit
035026f48a
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
};
|
||||
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue