34 #ifndef CARTOBASE_TYPE_RGB_DEF_H 
   35 #define CARTOBASE_TYPE_RGB_DEF_H 
   42 #ifdef CARTO_DEBUG_RGB 
   64     #ifdef CARTO_DEBUG_RGB 
   65       std::cout << 
"RGB:: Constructor( RGB )" << std::endl;
 
   72     #ifdef CARTO_DEBUG_RGB 
   73       std::cout << 
"RGB:: Constructor( RGBA )" << std::endl;
 
   84     #ifdef CARTO_DEBUG_RGB 
   85       std::cout << 
"RGB:: Constructor( VV<3> )" << std::endl;
 
   92     #ifdef CARTO_DEBUG_RGB 
   93       std::cout << 
"RGB:: Constructor( r,g,b )" << std::endl;
 
  103     #ifdef CARTO_DEBUG_RGB 
  104       std::cout << 
"RGB:: Destructor" << std::endl;
 
  113     #ifdef CARTO_DEBUG_RGB 
  114       std::cout << 
"RGB:: operator = ( RGB )" << std::endl;
 
  125     #ifdef CARTO_DEBUG_RGB 
  126       std::cout << 
"RGB:: operator = ( RGBA )" << std::endl;
 
  137     #ifdef CARTO_DEBUG_RGB 
  138       std::cout << 
"RGB:: operator = ( uint8_t )" << std::endl;
 
  151     #ifdef CARTO_DEBUG_RGB 
  152       std::cout << 
"RGB:: operator += ( RGB )" << std::endl;
 
  163     #ifdef CARTO_DEBUG_RGB 
  164       std::cout << 
"RGB:: operator += ( RGBA )" << std::endl;
 
  175     #ifdef CARTO_DEBUG_RGB 
  176       std::cout << 
"RGB:: operator -= ( RGB )" << std::endl;
 
  187     #ifdef CARTO_DEBUG_RGB 
  188       std::cout << 
"RGB:: operator -= ( RGBA )" << std::endl;
 
  199     #ifdef CARTO_DEBUG_RGB 
  200       std::cout << 
"RGB:: operator += ( uint8_t )" << std::endl;
 
  211     #ifdef CARTO_DEBUG_RGB 
  212       std::cout << 
"RGB:: operator -= ( uint8_t )" << std::endl;
 
  223     #ifdef CARTO_DEBUG_RGB 
  224       std::cout << 
"RGB:: operator *= ( uint8_t )" << std::endl;
 
  226     red()   *= 
static_cast<uint8_t
>( value );
 
  227     green() *= 
static_cast<uint8_t
>( value );
 
  228     blue()  *= 
static_cast<uint8_t
>( value );
 
  235     #ifdef CARTO_DEBUG_RGB 
  236       std::cout << 
"RGB:: operator *= ( uint16_t )" << std::endl;
 
  238     red()   *= 
static_cast<uint8_t
>( value );
 
  239     green() *= 
static_cast<uint8_t
>( value );
 
  240     blue()  *= 
static_cast<uint8_t
>( value );
 
  247     #ifdef CARTO_DEBUG_RGB 
  248       std::cout << 
"RGB:: operator *= ( uint32_t )" << std::endl;
 
  250     red()   *= 
static_cast<uint8_t
>( value );
 
  251     green() *= 
static_cast<uint8_t
>( value );
 
  252     blue()  *= 
static_cast<uint8_t
>( value );
 
  259     #ifdef CARTO_DEBUG_RGB 
  260       std::cout << 
"RGB:: operator *= ( uint64_t )" << std::endl;
 
  262     red()   *= 
static_cast<uint8_t
>( value );
 
  263     green() *= 
static_cast<uint8_t
>( value );
 
  264     blue()  *= 
static_cast<uint8_t
>( value );
 
  271     #ifdef CARTO_DEBUG_RGB 
  272       std::cout << 
"RGB:: operator *= ( float )" << std::endl;
 
  275     red()   = 
static_cast<uint8_t
>( 
red() * value );
 
  276     green() = 
static_cast<uint8_t
>( 
green() * value );
 
  277     blue()  = 
static_cast<uint8_t
>( 
blue() * value );
 
  284     #ifdef CARTO_DEBUG_RGB 
  285       std::cout << 
"RGB:: operator *= ( double )" << std::endl;
 
  288     red()   = 
static_cast<uint8_t
>( 
red() * value );
 
  289     green() = 
static_cast<uint8_t
>( 
green() * value );
 
  290     blue()  = 
static_cast<uint8_t
>( 
blue() * value );
 
  297     #ifdef CARTO_DEBUG_RGB 
  298       std::cout << 
"RGB:: operator /= ( uint8_t )" << std::endl;
 
  301     red()   /= 
static_cast<uint8_t
>( value );
 
  302     green() /= 
static_cast<uint8_t
>( value );
 
  303     blue()  /= 
static_cast<uint8_t
>( value );
 
  310     #ifdef CARTO_DEBUG_RGB 
  311       std::cout << 
"RGB:: operator /= ( uint16_t )" << std::endl;
 
  314     red()   /= 
static_cast<uint8_t
>( value );
 
  315     green() /= 
static_cast<uint8_t
>( value );
 
  316     blue()  /= 
static_cast<uint8_t
>( value );
 
  323     #ifdef CARTO_DEBUG_RGB 
  324       std::cout << 
"RGB:: operator /= ( uint32_t )" << std::endl;
 
  327     red()   /= 
static_cast<uint8_t
>( value );
 
  328     green() /= 
static_cast<uint8_t
>( value );
 
  329     blue()  /= 
static_cast<uint8_t
>( value );
 
  336     #ifdef CARTO_DEBUG_RGB 
  337       std::cout << 
"RGB:: operator /= ( uint64_t )" << std::endl;
 
  340     red()   /= 
static_cast<uint8_t
>( value );
 
  341     green() /= 
static_cast<uint8_t
>( value );
 
  342     blue()  /= 
static_cast<uint8_t
>( value );
 
  349     #ifdef CARTO_DEBUG_RGB 
  350       std::cout << 
"RGB:: operator /= ( float )" << std::endl;
 
  354     red()   = 
static_cast<uint8_t
>( 
red() / value );
 
  355     green() = 
static_cast<uint8_t
>( 
green() / value );
 
  356     blue()  = 
static_cast<uint8_t
>( 
blue() / value );
 
  363     #ifdef CARTO_DEBUG_RGB 
  364       std::cout << 
"RGB:: operator /= ( double )" << std::endl;
 
  368     red()   = 
static_cast<uint8_t
>( 
red() / value );
 
  369     green() = 
static_cast<uint8_t
>( 
green() / value );
 
  370     blue()  = 
static_cast<uint8_t
>( 
blue() / value );
 
  379     #ifdef CARTO_DEBUG_RGB 
  380       std::cout << 
"RGB:: RGB + RGB" << std::endl;
 
  389     #ifdef CARTO_DEBUG_RGB 
  390       std::cout << 
"RGB:: RGB + uint8_t" << std::endl;
 
  399     #ifdef CARTO_DEBUG_RGB 
  400       std::cout << 
"RGB:: RGB + uint16_t" << std::endl;
 
  409     #ifdef CARTO_DEBUG_RGB 
  410       std::cout << 
"RGB:: RGB + uint32_t" << std::endl;
 
  419     #ifdef CARTO_DEBUG_RGB 
  420       std::cout << 
"RGB:: RGB + uint64_t" << std::endl;
 
  429     #ifdef CARTO_DEBUG_RGB 
  430       std::cout << 
"RGB:: RGB + float" << std::endl;
 
  433     return result += 
static_cast<uint8_t
>(bb);
 
  439     #ifdef CARTO_DEBUG_RGB 
  440       std::cout << 
"RGB:: RGB + double" << std::endl;
 
  443     return result += 
static_cast<uint8_t
>(bb);
 
  449     #ifdef CARTO_DEBUG_RGB 
  450       std::cout << 
"RGB:: uint8_t + RGB" << std::endl;
 
  459     #ifdef CARTO_DEBUG_RGB 
  460       std::cout << 
"RGB:: uint16_t + RGB" << std::endl;
 
  469     #ifdef CARTO_DEBUG_RGB 
  470       std::cout << 
"RGB:: uint32_t + RGB" << std::endl;
 
  479     #ifdef CARTO_DEBUG_RGB 
  480       std::cout << 
"RGB:: uint64_t + RGB" << std::endl;
 
  489     #ifdef CARTO_DEBUG_RGB 
  490       std::cout << 
"RGB:: float + RGB" << std::endl;
 
  492     VoxelRGB result( 
static_cast<uint8_t
>(aa) );
 
  499     #ifdef CARTO_DEBUG_RGB 
  500       std::cout << 
"RGB:: double + RGB" << std::endl;
 
  502     VoxelRGB result( 
static_cast<uint8_t
>(aa) );
 
  509     #ifdef CARTO_DEBUG_RGB 
  510       std::cout << 
"RGB:: RGB - RGB" << std::endl;
 
  519     #ifdef CARTO_DEBUG_RGB 
  520       std::cout << 
"RGB:: RGB - uint8_t" << std::endl;
 
  529     #ifdef CARTO_DEBUG_RGB 
  530       std::cout << 
"RGB:: RGB - uint16_t" << std::endl;
 
  539     #ifdef CARTO_DEBUG_RGB 
  540       std::cout << 
"RGB:: RGB - uint32_t" << std::endl;
 
  549     #ifdef CARTO_DEBUG_RGB 
  550       std::cout << 
"RGB:: RGB - uint64_t" << std::endl;
 
  559     #ifdef CARTO_DEBUG_RGB 
  560       std::cout << 
"RGB:: RGB - float" << std::endl;
 
  563     return result -= 
static_cast<uint8_t
>(bb);
 
  569     #ifdef CARTO_DEBUG_RGB 
  570       std::cout << 
"RGB:: RGB - double" << std::endl;
 
  573     return result -= 
static_cast<uint8_t
>(bb);
 
  579     #ifdef CARTO_DEBUG_RGB 
  580       std::cout << 
"RGB:: uint8_t - RGB" << std::endl;
 
  589     #ifdef CARTO_DEBUG_RGB 
  590       std::cout << 
"RGB:: uint16_t - RGB" << std::endl;
 
  599     #ifdef CARTO_DEBUG_RGB 
  600       std::cout << 
"RGB:: uint32_t - RGB" << std::endl;
 
  609     #ifdef CARTO_DEBUG_RGB 
  610       std::cout << 
"RGB:: uint64_t - RGB" << std::endl;
 
  619     #ifdef CARTO_DEBUG_RGB 
  620       std::cout << 
"RGB:: float - RGB" << std::endl;
 
  622     VoxelRGB result( 
static_cast<uint8_t
>(aa) );
 
  629     #ifdef CARTO_DEBUG_RGB 
  630       std::cout << 
"RGB:: double - RGB" << std::endl;
 
  632     VoxelRGB result( 
static_cast<uint8_t
>(aa) );
 
  639     #ifdef CARTO_DEBUG_RGB 
  640       std::cout << 
"RGB:: RGB * uint8_t" << std::endl;
 
  649     #ifdef CARTO_DEBUG_RGB 
  650       std::cout << 
"RGB:: RGB * uint16_t" << std::endl;
 
  659     #ifdef CARTO_DEBUG_RGB 
  660       std::cout << 
"RGB:: RGB * uint32_t" << std::endl;
 
  669     #ifdef CARTO_DEBUG_RGB 
  670       std::cout << 
"RGB:: RGB * uint64_t" << std::endl;
 
  679     #ifdef CARTO_DEBUG_RGB 
  680       std::cout << 
"RGB:: RGB * float" << std::endl;
 
  689     #ifdef CARTO_DEBUG_RGB 
  690       std::cout << 
"RGB:: RGB * double" << std::endl;
 
  699     #ifdef CARTO_DEBUG_RGB 
  700       std::cout << 
"RGB:: uint8_t * RGB" << std::endl;
 
  709     #ifdef CARTO_DEBUG_RGB 
  710       std::cout << 
"RGB:: uint16_t * RGB" << std::endl;
 
  719     #ifdef CARTO_DEBUG_RGB 
  720       std::cout << 
"RGB:: uint32_t * RGB" << std::endl;
 
  729     #ifdef CARTO_DEBUG_RGB 
  730       std::cout << 
"RGB:: uint64_t * RGB" << std::endl;
 
  739     #ifdef CARTO_DEBUG_RGB 
  740       std::cout << 
"RGB:: float * RGB" << std::endl;
 
  749     #ifdef CARTO_DEBUG_RGB 
  750       std::cout << 
"RGB:: double * RGB" << std::endl;
 
  759     #ifdef CARTO_DEBUG_RGB 
  760       std::cout << 
"RGB:: RGB / uint8_t" << std::endl;
 
  769     #ifdef CARTO_DEBUG_RGB 
  770       std::cout << 
"RGB:: RGB / uint16_t" << std::endl;
 
  779     #ifdef CARTO_DEBUG_RGB 
  780       std::cout << 
"RGB:: RGB / uint32_t" << std::endl;
 
  789     #ifdef CARTO_DEBUG_RGB 
  790       std::cout << 
"RGB:: RGB / uint64_t" << std::endl;
 
  799     #ifdef CARTO_DEBUG_RGB 
  800       std::cout << 
"RGB:: RGB / float" << std::endl;
 
  809     #ifdef CARTO_DEBUG_RGB 
  810       std::cout << 
"RGB:: RGB / double" << std::endl;
 
  821     #ifdef CARTO_DEBUG_RGB 
  822       std::cout << 
"RGB:: operator *= ( long )" << std::endl;
 
  824     red()   *= 
static_cast<uint8_t
>( value );
 
  825     green() *= 
static_cast<uint8_t
>( value );
 
  826     blue()  *= 
static_cast<uint8_t
>( value );
 
  833     #ifdef CARTO_DEBUG_RGB 
  834       std::cout << 
"RGB:: operator /= ( long )" << std::endl;
 
  837     red()   /= 
static_cast<uint8_t
>( value );
 
  838     green() /= 
static_cast<uint8_t
>( value );
 
  839     blue()  /= 
static_cast<uint8_t
>( value );
 
  846     #ifdef CARTO_DEBUG_RGB 
  847       std::cout << 
"RGB:: RGB * long" << std::endl;
 
  856     #ifdef CARTO_DEBUG_RGB 
  857       std::cout << 
"RGB:: long * RGB" << std::endl;
 
  866     #ifdef CARTO_DEBUG_RGB 
  867       std::cout << 
"RGB:: RGB / long" << std::endl;
 
const uint8_t & green() const
const uint8_t & blue() const
const uint8_t & red() const
const uint8_t & red() const
VoxelRGB & operator/=(const uint8_t &value)
const uint8_t & blue() const
VoxelRGB & operator-=(const VoxelRGB &other)
VoxelRGB & operator=(const VoxelRGB &other)
VoxelRGB & operator+=(const VoxelRGB &other)
VoxelRGB & operator*=(const uint8_t &value)
VoxelRGB(const VoxelRGB &other)
const uint8_t & green() const
Base class for any multichannel data (RGB, RGBA, HSV, ...)
VoxelRGB operator/(const VoxelRGB &aa, const uint8_t &bb)
VoxelRGB operator+(const VoxelRGB &aa, const VoxelRGB &bb)
VoxelRGB operator-(const VoxelRGB &aa, const VoxelRGB &bb)
VoxelRGB operator*(const VoxelRGB &aa, const uint8_t &bb)