Rgba.inl

Go to the documentation of this file.
00001 /**<!-------------------------------------------------------------------->
00002   @file   Rgba.inl
00003   @author Travis Fischer (fisch0920@gmail.com)
00004   @author Matthew Jacobs (jacobs.mh@gmail.com)
00005   @date   Fall 2008
00006 
00007   @brief
00008      32-bit and 128-bit Rgba structs
00009   <!-------------------------------------------------------------------->**/
00010 
00011 #ifndef MILTON_RGBA_INL_
00012 #define MILTON_RGBA_INL_
00013 
00014 
00015 inline Rgba32::Rgba32(unsigned char r_, unsigned char g_, 
00016                       unsigned char b_, unsigned char a_)
00017    : b(b_), g(g_), r(r_), a(a_)
00018 { }
00019 
00020 inline Rgba32::operator Vector3() const {
00021    return Vector3(CAP(r / 255.0, 0, 1), 
00022                   CAP(g / 255.0, 0, 1),  
00023                   CAP(b / 255.0, 0, 1));
00024 }
00025 
00026 inline Rgba32::operator RgbaHDR() const {
00027    return RgbaHDR::fromVector(*this);
00028 }
00029 
00030 inline real_t Rgba32::luminance() const {
00031    return (0.299 * r + 0.587 * g + 0.11 * b) / 255;
00032 }
00033 
00034 
00035 inline RgbaHDR::RgbaHDR(real_t r_, real_t g_, 
00036                         real_t b_, real_t a_)
00037    : r(r_), g(g_), b(b_), a(a_)
00038 { }
00039 
00040 inline RgbaHDR::operator Vector3() const {
00041    return Vector3(r, g, b);
00042 }
00043 
00044 inline RgbaHDR::operator Rgba32() const {
00045    return Rgba32::fromVector(*this);
00046 }
00047 
00048 inline real_t RgbaHDR::luminance() const {
00049    return (0.299 * r + 0.587 * g + 0.11 * b);
00050 }
00051 
00052 inline RgbaHDR RgbaHDR::operator*(real_t scalar) const {
00053    return RgbaHDR(r * scalar, g * scalar, b * scalar, a);
00054 }
00055 
00056 inline RgbaHDR &RgbaHDR::operator*=(real_t scalar) {
00057    r *= scalar;
00058    g *= scalar;
00059    b *= scalar;
00060    
00061    return *this;
00062 }
00063 
00064 #endif // MILTON_RGBA_INL_
00065 

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6