Commit: b985176b57397d2a1be6e9b7d5333e699560717b
Author: Lukas Tönne
Date:   Mon Dec 7 11:43:38 2015 +0100
Branches: object_nodes
https://developer.blender.org/rBb985176b57397d2a1be6e9b7d5333e699560717b

Moved math eval functions to a dedicated file.

===================================================================

M       source/blender/blenvm/bvm/CMakeLists.txt
M       source/blender/blenvm/bvm/bvm_eval.cc
A       source/blender/blenvm/bvm/bvm_eval_math.h

===================================================================

diff --git a/source/blender/blenvm/bvm/CMakeLists.txt 
b/source/blender/blenvm/bvm/CMakeLists.txt
index 3294e8a..0a5e848 100644
--- a/source/blender/blenvm/bvm/CMakeLists.txt
+++ b/source/blender/blenvm/bvm/CMakeLists.txt
@@ -41,6 +41,7 @@ set(SRC
        bvm_eval.cc
        bvm_eval.h
        bvm_eval_common.h
+       bvm_eval_math.h
        bvm_eval_mesh.h
        bvm_eval_texture.h
        bvm_function.cc
diff --git a/source/blender/blenvm/bvm/bvm_eval.cc 
b/source/blender/blenvm/bvm/bvm_eval.cc
index 078f292..0611d1d 100644
--- a/source/blender/blenvm/bvm/bvm_eval.cc
+++ b/source/blender/blenvm/bvm/bvm_eval.cc
@@ -44,11 +44,10 @@ extern "C" {
 
 #include "bvm_eval.h"
 #include "bvm_eval_common.h"
+#include "bvm_eval_math.h"
 #include "bvm_eval_mesh.h"
 #include "bvm_eval_texture.h"
 
-#include "bvm_util_math.h"
-
 namespace bvm {
 
 EvalContext::EvalContext()
@@ -143,28 +142,6 @@ static void eval_op_get_elem_float4(float *stack, int 
index, StackIndex offset_f
        stack_store_float(stack, offset_to, f[index]);
 }
 
-static void eval_op_matrix44_to_locrotscale(float *stack, StackIndex 
offset_from, StackIndex offset_loc,
-                                            StackIndex offset_rot, StackIndex 
offset_scale)
-{
-       matrix44 m = stack_load_matrix44(stack, offset_from);
-       float loc[3], rot[4], scale[3];
-       mat4_decompose(loc, rot, scale, m.data);
-       stack_store_float3(stack, offset_loc, float3::from_data(loc));
-       stack_store_float4(stack, offset_rot, float4::from_data(rot));
-       stack_store_float3(stack, offset_scale, float3::from_data(scale));
-}
-
-static void eval_op_locrotscale_to_matrix44(float *stack, StackIndex 
offset_loc, StackIndex offset_rot,
-                                              StackIndex offset_scale, 
StackIndex offset_to)
-{
-       float3 loc = stack_load_float3(stack, offset_loc);
-       float4 rot = stack_load_float4(stack, offset_rot);
-       float3 scale = stack_load_float3(stack, offset_scale);
-       float mat[4][4];
-       loc_quat_size_to_mat4(mat, loc.data(), rot.data(), scale.data());
-       stack_store_matrix44(stack, offset_to, matrix44::from_data(&mat[0][0]));
-}
-
 static void eval_op_init_mesh_ptr(float *stack, StackIndex offset, int 
use_count)
 {
        mesh_ptr p(NULL);
@@ -189,210 +166,6 @@ static void eval_op_point_velocity(const EvalData *data, 
float *stack, StackInde
        stack_store_float3(stack, offset, data->effector.velocity);
 }
 
-static void eval_op_add_float(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, a + b);
-}
-
-static void eval_op_sub_float(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, a - b);
-}
-
-static void eval_op_mul_float(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, a * b);
-}
-
-static void eval_op_div_float(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, div_safe(a, b));
-}
-
-static void eval_op_sine(float *stack, StackIndex offset, StackIndex offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, sinf(f));
-}
-
-static void eval_op_cosine(float *stack, StackIndex offset, StackIndex 
offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, cosf(f));
-}
-
-static void eval_op_tangent(float *stack, StackIndex offset, StackIndex 
offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, tanf(f));
-}
-
-static void eval_op_arcsine(float *stack, StackIndex offset, StackIndex 
offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, asinf(f));
-}
-
-static void eval_op_arccosine(float *stack, StackIndex offset, StackIndex 
offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, acosf(f));
-}
-
-static void eval_op_arctangent(float *stack, StackIndex offset, StackIndex 
offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, atanf(f));
-}
-
-static void eval_op_power(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, (a >= 0.0f)? powf(a, b): 0.0f);
-}
-
-static void eval_op_logarithm(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, (a >= 0.0f && b >= 0.0f)? logf(a) / 
logf(b): 0.0f);
-}
-
-static void eval_op_minimum(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, min_ff(a, b));
-}
-
-static void eval_op_maximum(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, max_ff(a, b));
-}
-
-static void eval_op_round(float *stack, StackIndex offset, StackIndex offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, floorf(f + 0.5f));
-}
-
-static void eval_op_less_than(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, (a < b) ? 1.0f : 0.0f);
-}
-
-static void eval_op_greater_than(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, (a > b) ? 1.0f : 0.0f);
-}
-
-static void eval_op_modulo(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float a = stack_load_float(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float(stack, offset_r, (b != 0.0f) ? fmodf(a, b) : 0.0f);
-}
-
-static void eval_op_absolute(float *stack, StackIndex offset, StackIndex 
offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, fabsf(f));
-}
-
-static void eval_op_clamp(float *stack, StackIndex offset, StackIndex offset_r)
-{
-       float f = stack_load_float(stack, offset);
-       stack_store_float(stack, offset_r, CLAMPIS(f, 0.0f, 1.0f));
-}
-
-static void eval_op_add_float3(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float3 b = stack_load_float3(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(a.x + b.x, a.y + b.y, a.z + 
b.z));
-}
-
-static void eval_op_sub_float3(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float3 b = stack_load_float3(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(a.x - b.x, a.y - b.y, a.z - 
b.z));
-}
-
-static void eval_op_mul_float3(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float3 b = stack_load_float3(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(a.x * b.x, a.y * b.y, a.z * 
b.z));
-}
-
-static void eval_op_div_float3(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float3 b = stack_load_float3(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(div_safe(a.x, b.x), 
div_safe(a.y, b.y), div_safe(a.z, b.z)));
-}
-
-static void eval_op_mul_float3_float(float *stack, StackIndex offset_a, 
StackIndex offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(a.x * b, a.y * b, a.z * b));
-}
-
-static void eval_op_div_float3_float(float *stack, StackIndex offset_a, 
StackIndex offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float b = stack_load_float(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(div_safe(a.x, b), 
div_safe(a.y, b), div_safe(a.z, b)));
-}
-
-static void eval_op_average_float3(float *stack, StackIndex offset_a, 
StackIndex offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float3 b = stack_load_float3(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(0.5f*(a.x+b.x), 
0.5f*(a.y+b.y), 0.5f*(a.z+b.z)));
-}
-
-static void eval_op_dot_float3(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float3 b = stack_load_float3(stack, offset_b);
-       stack_store_float(stack, offset_r, a.x * b.x + a.y * b.y + a.z * b.z);
-}
-
-static void eval_op_cross_float3(float *stack, StackIndex offset_a, StackIndex 
offset_b, StackIndex offset_r)
-{
-       float3 a = stack_load_float3(stack, offset_a);
-       float3 b = stack_load_float3(stack, offset_b);
-       stack_store_float3(stack, offset_r, float3(a.y*b.z - a.z*b.y, a.z*b.x - 
a.x*b.z, a.x*b.y - a.y*b.x));
-}
-
-static void eval_op_normalize_float3(float *stack, StackIndex offset, 
StackIndex offset_vec, StackIndex offset_val)
-{
-       float3 v = stack_load_float3(stack, offset);
-       float l = sqrtf(v.x*v.x + v.y*v.y + v.z*v.z);
-       float f = l > 0.0f ? 1.0f/l : 0.0f;
-       float3 vec(v.x * f, v.y * f, v.z * f);
-       stack_store_float3(stack, offset_vec, vec);
-       stack_store_float(stack, offset_val, l);
-}
-
 static void eval_op_mix_rgb(float *stack, int mode, StackIndex offset_col_a, 
StackIndex offset_col_b, StackIndex offset_fac, StackIndex offset_r)
 {
        fl

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to