Changeset 2188 for trunk/src


Ignore:
Timestamp:
Dec 31, 2012, 6:05:21 AM (8 years ago)
Author:
sam
Message:

math: define lol::pow to remove ambiguous calls.

Location:
trunk/src/lol
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lol/image/color.h

    r2187 r2188  
    3131    static vec3 LinearRGBTosRGB(vec3 c)
    3232    {
    33         using std::pow;
    34         vec3 ret = 12.92 * c;
    35         if (c.r > 0.0031308)
    36             ret.r = 1.055 * pow(c.r, 1.0 / 2.4) - 0.055;
    37         if (c.g > 0.0031308)
    38             ret.g = 1.055 * pow(c.g, 1.0 / 2.4) - 0.055;
    39         if (c.b > 0.0031308)
    40             ret.b = 1.055 * pow(c.b, 1.0 / 2.4) - 0.055;
     33        vec3 ret = 12.92f * c;
     34        if (c.r > 0.0031308f)
     35            ret.r = 1.055f * pow(c.r, 1.0f / 2.4f) - 0.055f;
     36        if (c.g > 0.0031308f)
     37            ret.g = 1.055f * pow(c.g, 1.0f / 2.4f) - 0.055f;
     38        if (c.b > 0.0031308f)
     39            ret.b = 1.055f * pow(c.b, 1.0f / 2.4f) - 0.055f;
    4140        return ret;
    4241    }
     
    5251    static vec3 sRGBToLinearRGB(vec3 c)
    5352    {
    54         using std::pow;
    55         vec3 ret = 1.0 / 12.92 * c;
    56         if (c.r > 0.04045)
    57             ret.r = pow(c.r + 0.055, 2.4) / pow(1.055, 2.4);
    58         if (c.g > 0.04045)
    59             ret.g = pow(c.g + 0.055, 2.4) / pow(1.055, 2.4);
    60         if (c.b > 0.04045)
    61             ret.b = pow(c.b + 0.055, 2.4) / pow(1.055, 2.4);
     53        vec3 ret = 1.0f / 12.92f * c;
     54        if (c.r > 0.04045f)
     55            ret.r = pow(c.r + 0.055f, 2.4f) / pow(1.055f, 2.4f);
     56        if (c.g > 0.04045f)
     57            ret.g = pow(c.g + 0.055f, 2.4f) / pow(1.055f, 2.4f);
     58        if (c.b > 0.04045f)
     59            ret.b = pow(c.b + 0.055f, 2.4f) / pow(1.055f, 2.4f);
    6260        return ret;
    6361    }
     
    7371    static vec3 LinearRGBToCIEXYZ(vec3 c)
    7472    {
    75         mat3 m(vec3(3.2406, -0.9689, 0.0557),
    76                vec3(-1.5372, 1.8758, -0.2040),
    77                vec3(-0.4986, 0.0415, 1.0570));
     73        mat3 m(vec3(3.2406f, -0.9689f, 0.0557f),
     74               vec3(-1.5372f, 1.8758f, -0.2040f),
     75               vec3(-0.4986f, 0.0415f, 1.0570f));
    7876        return m * c;
    7977    }
     
    8987    static vec3 CIEXYZToLinearRGB(vec3 c)
    9088    {
    91         mat3 m(vec3(0.4124, 0.2126, 0.0193),
    92                vec3(0.3576, 0.7152, 0.1192),
    93                vec3(0.1805, 0.0722, 0.9505));
     89        mat3 m(vec3(0.4124f, 0.2126f, 0.0193f),
     90               vec3(0.3576f, 0.7152f, 0.1192f),
     91               vec3(0.1805f, 0.0722f, 0.9505f));
    9492        return m * c;
    9593    }
  • trunk/src/lol/math/math.h

    r2183 r2188  
    5656{
    5757    return std::atan2(y, x);
     58}
     59
     60static inline double pow(double const &x, double const &y)
     61{
     62    return std::pow(x, y);
     63}
     64
     65static inline float pow(float const &x, float const &y)
     66{
     67    return std::pow(x, y);
    5868}
    5969
Note: See TracChangeset for help on using the changeset viewer.