#ifndef PIXEL_H_INCLUDED #define PIXEL_H_INCLUDED class Pixel { public: Pixel( double rval = 0.0, double gval = 0.0, double bval = 0.0 ) : r( rval ), g( gval ), b( bval ) {} ~Pixel( void ) {} static Pixel black; static Pixel white; Pixel multiply( const Pixel &right ) const { return Pixel( r * right.r, g * right.g, b * right.b ); } Pixel add( const Pixel &right ) const { return Pixel( r + right.r, g + right.g, b + right.b ); } Pixel subtract( const Pixel &right ) const { return Pixel( r - right.r, g - right.g, b - right.b ); } Pixel scalarMult( double val ) const { return Pixel( r * val, g * val, b * val ); } double intensity( void ) const { return sqrt( ( r * r ) + ( g * g ) + ( b * b ) ); } Pixel clamp( void ) const { return Pixel( r > 1.0 ? 1.0 : r, g > 1.0 ? 1.0 : g, b > 1.0 ? 1.0 : b ); } double r; double g; double b; }; #endif // PIXEL_H_INCLUDED