diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-12-03 02:14:20 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-12-03 02:14:20 +0400 |
commit | 06c3d5bd09e104d070d9e6c97e4baa265094240c (patch) | |
tree | 4f2c500b06e67c06f7186b381245016acc2221fe /source/blender/render/intern | |
parent | 20620a988a8919116c69b618af04a15535f89c4b (diff) |
de-duplicate dominant axis calculation, exact same checks were in 6 different places.
added function: axis_dominant_v3(...)
Diffstat (limited to 'source/blender/render/intern')
-rw-r--r-- | source/blender/render/intern/source/rayshade.c | 12 | ||||
-rw-r--r-- | source/blender/render/intern/source/render_texture.c | 10 | ||||
-rw-r--r-- | source/blender/render/intern/source/shadeinput.c | 10 |
3 files changed, 7 insertions, 25 deletions
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c index 1a58a665e0a..b8c4b05de50 100644 --- a/source/blender/render/intern/source/rayshade.c +++ b/source/blender/render/intern/source/rayshade.c @@ -485,18 +485,12 @@ void makeraytree(Render *re) /* if(shi->osatex) */ static void shade_ray_set_derivative(ShadeInput *shi) { - float detsh, t00, t10, t01, t11, xn, yn, zn; + float detsh, t00, t10, t01, t11; int axis1, axis2; /* find most stable axis to project */ - xn= fabs(shi->facenor[0]); - yn= fabs(shi->facenor[1]); - zn= fabs(shi->facenor[2]); - - if(zn>=xn && zn>=yn) { axis1= 0; axis2= 1; } - else if(yn>=xn && yn>=zn) { axis1= 0; axis2= 2; } - else { axis1= 1; axis2= 2; } - + axis_dominant_v3(&axis1, &axis2, shi->facenor); + /* compute u,v and derivatives */ if(shi->obi->flag & R_TRANSFORMED) { float v1[3], v2[3], v3[3]; diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c index 9459745cdbc..ae48b0f777f 100644 --- a/source/blender/render/intern/source/render_texture.c +++ b/source/blender/render/intern/source/render_texture.c @@ -3494,17 +3494,11 @@ void render_realtime_texture(ShadeInput *shi, Image *ima) static void textured_face_generate_uv(float *uv, float *normal, float *hit, float *v1, float *v2, float *v3) { - float detsh, t00, t10, t01, t11, xn, yn, zn; + float detsh, t00, t10, t01, t11; int axis1, axis2; /* find most stable axis to project */ - xn= fabs(normal[0]); - yn= fabs(normal[1]); - zn= fabs(normal[2]); - - if(zn>=xn && zn>=yn) { axis1= 0; axis2= 1; } - else if(yn>=xn && yn>=zn) { axis1= 0; axis2= 2; } - else { axis1= 1; axis2= 2; } + axis_dominant_v3(&axis1, &axis2, normal); /* compute u,v and derivatives */ t00= v3[axis1]-v1[axis1]; t01= v3[axis2]-v1[axis2]; diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c index f2a053e89d9..dd026740c33 100644 --- a/source/blender/render/intern/source/shadeinput.c +++ b/source/blender/render/intern/source/shadeinput.c @@ -756,17 +756,11 @@ void shade_input_set_uv(ShadeInput *shi) } else { /* most of this could become re-used for faces */ - float detsh, t00, t10, t01, t11, xn, yn, zn; + float detsh, t00, t10, t01, t11; int axis1, axis2; /* find most stable axis to project */ - xn= fabs(shi->facenor[0]); - yn= fabs(shi->facenor[1]); - zn= fabs(shi->facenor[2]); - - if(zn>=xn && zn>=yn) { axis1= 0; axis2= 1; } - else if(yn>=xn && yn>=zn) { axis1= 0; axis2= 2; } - else { axis1= 1; axis2= 2; } + axis_dominant_v3(&axis1, &axis2, shi->facenor); /* compute u,v and derivatives */ t00= v3[axis1]-v1[axis1]; t01= v3[axis2]-v1[axis2]; |