rename axis_primary_v3() to max_axis_v3() to avoid confusion with axis_dominant_v3...
authorCampbell Barton <ideasman42@gmail.com>
Wed, 24 Oct 2012 02:25:00 +0000 (02:25 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 24 Oct 2012 02:25:00 +0000 (02:25 +0000)
source/blender/blenlib/BLI_math_geom.h
source/blender/blenlib/intern/math_geom_inline.c
source/blender/compositor/operations/COM_KeyingDespillOperation.cpp
source/blender/compositor/operations/COM_KeyingOperation.cpp

index 5fbec6a32935dd3e5b0dc981563838ddd549473f..245e39a92880c4ea796df321789d7f9faefe88ef 100644 (file)
@@ -283,7 +283,8 @@ float form_factor_hemi_poly(float p[3], float n[3],
 
 void axis_dominant_v3(int *axis_a, int *axis_b, const float axis[3]);
 
-MINLINE int axis_primary_v3(const float vec[3]);
+MINLINE int max_axis_v3(const float vec[3]);
+MINLINE int min_axis_v3(const float vec[3]);
 
 #ifdef __cplusplus
 }
index bbf6dc9dfc2113319b37f2d2439e4e74ff832e78..01585c93bc85a0294f01e47d4f2da6274a7be783 100644 (file)
@@ -137,28 +137,24 @@ MINLINE void madd_sh_shfl(float r[9], const float sh[9], const float f)
        add_sh_shsh(r, r, tmp);
 }
 
-MINLINE int axis_primary_v3(const float vec[3])
+MINLINE int max_axis_v3(const float vec[3])
 {
        const float x = vec[0];
        const float y = vec[1];
        const float z = vec[2];
+       return ((x > y) ?
+              ((x > z) ? 0 : 2) :
+              ((y > z) ? 1 : 2));
+}
 
-       if (x > y) {
-               if (x > z) {
-                       return 0;
-               }
-               else {
-                       return 2;
-               }
-       }
-       else {
-               if (y > z) {
-                       return 1;
-               }
-               else {
-                       return 2;
-               }
-       }
+MINLINE int min_axis_v3(const float vec[3])
+{
+       const float x = vec[0];
+       const float y = vec[1];
+       const float z = vec[2];
+       return ((x < y) ?
+              ((x < z) ? 0 : 2) :
+              ((y < z) ? 1 : 2));
 }
 
 #endif /* __MATH_GEOM_INLINE_C__ */
index 73bc5fb27016b407fbfcedbc949e149195255603..01f5c032730ee1e5a12386e7acf8876e51480ce2 100644 (file)
@@ -61,7 +61,7 @@ void KeyingDespillOperation::executePixel(float output[4], float x, float y, Pix
        this->m_pixelReader->read(pixelColor, x, y, sampler);
        this->m_screenReader->read(screenColor, x, y, sampler);
 
-       const int screen_primary_channel = axis_primary_v3(screenColor);
+       const int screen_primary_channel = max_axis_v3(screenColor);
        const int other_1 = (screen_primary_channel + 1) % 3;
        const int other_2 = (screen_primary_channel + 2) % 3;
 
@@ -75,7 +75,8 @@ void KeyingDespillOperation::executePixel(float output[4], float x, float y, Pix
 
        copy_v4_v4(output, pixelColor);
 
-       if (this->m_despillFactor * amount > 0) {
-               output[screen_primary_channel] = pixelColor[screen_primary_channel] - this->m_despillFactor * amount;
+       const float amount_despill = this->m_despillFactor * amount;
+       if (amount_despill > 0.0f) {
+               output[screen_primary_channel] = pixelColor[screen_primary_channel] - amount_despill;
        }
 }
index dcb15eda638931d89968d4cf9c99baf3158467c6..baeacb56744da457f4cddcb98a45ee186fdac210 100644 (file)
 #include "BLI_listbase.h"
 #include "BLI_math.h"
 
-static float get_pixel_saturation(float pixelColor[4], float screen_balance, int primary_channel)
+static float get_pixel_saturation(const float pixelColor[4], float screen_balance, int primary_channel)
 {
-       int other_1 = (primary_channel + 1) % 3;
-       int other_2 = (primary_channel + 2) % 3;
+       const int other_1 = (primary_channel + 1) % 3;
+       const int other_2 = (primary_channel + 2) % 3;
 
-       int min_channel = min(other_1, other_2);
-       int max_channel = max(other_1, other_2);
+       const int min_channel = min(other_1, other_2);
+       const int max_channel = max(other_1, other_2);
 
-       float val = screen_balance * pixelColor[min_channel] + (1.0f - screen_balance) * pixelColor[max_channel];
+       const float val = screen_balance * pixelColor[min_channel] + (1.0f - screen_balance) * pixelColor[max_channel];
 
        return (pixelColor[primary_channel] - val) * fabsf(1.0f - val);
 }
@@ -73,13 +73,13 @@ void KeyingOperation::executePixel(float output[4], float x, float y, PixelSampl
        this->m_pixelReader->read(pixelColor, x, y, sampler);
        this->m_screenReader->read(screenColor, x, y, sampler);
 
-       const int primary_channel = axis_primary_v3(screenColor);
+       const int primary_channel = max_axis_v3(screenColor);
 
        if (pixelColor[primary_channel] > 1.0f) {
                /* overexposure doesn't happen on screen itself and usually happens
                 * on light sources in the shot, this need to be checked separately
                 * because saturation and falloff calculation is based on the fact
-                * that pixels are not overexposured
+                * that pixels are not overexposed
                 */
                output[0] = 1.0f;
        }