diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-03-03 09:07:58 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-03-03 09:07:58 +0400 |
commit | 79e80d83229aaa1d81da84edc3102db0b00171d9 (patch) | |
tree | 29604d9c659ea1caca47b460d5a7cbe7f5372d01 /source/blender/blenlib | |
parent | b4a16269070b24c3f11c522cdd440920af4aa625 (diff) |
code cleanup: ~400 duplicate lines for AO form factor math.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/BLI_math_geom.h | 5 | ||||
-rw-r--r-- | source/blender/blenlib/intern/math_geom.c | 18 |
2 files changed, 14 insertions, 9 deletions
diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h index c4e17b1ed48..13f47d94160 100644 --- a/source/blender/blenlib/BLI_math_geom.h +++ b/source/blender/blenlib/BLI_math_geom.h @@ -260,6 +260,11 @@ MINLINE void madd_sh_shfl(float r[9], const float sh[3], const float f); /********************************* Form Factor *******************************/ +float form_factor_quad(const float p[3], const float n[3], + const float q0[3], const float q1[3], const float q2[3], const float q3[3]); +int form_factor_visible_quad(const float p[3], const float n[3], + const float v0[3], const float v1[3], const float v2[3], + float q0[3], float q1[3], float q2[3], float q3[3]); float form_factor_hemi_poly(float p[3], float n[3], float v1[3], float v2[3], float v3[3], float v4[3]); diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index baca7bb8f8a..8f7ecdcfde8 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -3171,9 +3171,9 @@ static void vec_add_dir(float r[3], const float v1[3], const float v2[3], const r[2] = v1[2] + fac * (v2[2] - v1[2]); } -static int ff_visible_quad(const float p[3], const float n[3], - const float v0[3], const float v1[3], const float v2[3], - float q0[3], float q1[3], float q2[3], float q3[3]) +int form_factor_visible_quad(const float p[3], const float n[3], + const float v0[3], const float v1[3], const float v2[3], + float q0[3], float q1[3], float q2[3], float q3[3]) { static const float epsilon = 1e-6f; float c, sd[3]; @@ -3532,8 +3532,8 @@ static void ff_normalize(float n[3]) } } -static float ff_quad_form_factor(const float p[3], const float n[3], - const float q0[3], const float q1[3], const float q2[3], const float q3[3]) +float form_factor_quad(const float p[3], const float n[3], + const float q0[3], const float q1[3], const float q2[3], const float q3[3]) { float r0[3], r1[3], r2[3], r3[3], g0[3], g1[3], g2[3], g3[3]; float a1, a2, a3, a4, dot1, dot2, dot3, dot4, result; @@ -3579,11 +3579,11 @@ float form_factor_hemi_poly(float p[3], float n[3], float v1[3], float v2[3], fl * covered by a quad or triangle, cosine weighted */ float q0[3], q1[3], q2[3], q3[3], contrib = 0.0f; - if (ff_visible_quad(p, n, v1, v2, v3, q0, q1, q2, q3)) - contrib += ff_quad_form_factor(p, n, q0, q1, q2, q3); + if (form_factor_visible_quad(p, n, v1, v2, v3, q0, q1, q2, q3)) + contrib += form_factor_quad(p, n, q0, q1, q2, q3); - if (v4 && ff_visible_quad(p, n, v1, v3, v4, q0, q1, q2, q3)) - contrib += ff_quad_form_factor(p, n, q0, q1, q2, q3); + if (v4 && form_factor_visible_quad(p, n, v1, v3, v4, q0, q1, q2, q3)) + contrib += form_factor_quad(p, n, q0, q1, q2, q3); return contrib; } |