34 #ifndef CARTOBASE_TYPE_RGBA_DEF_H    35 #define CARTOBASE_TYPE_RGBA_DEF_H    42 #ifdef CARTO_DEBUG_RGB    64     #ifdef CARTO_DEBUG_RGB    65       std::cout << 
"RGBA:: Constructor( RGBA )" << std::endl;
    72     #ifdef CARTO_DEBUG_RGB    73       std::cout << 
"RGBA:: Constructor( RGB )" << std::endl;
    85     #ifdef CARTO_DEBUG_RGB    86       std::cout << 
"RGBA:: Constructor( VV<4> )" << std::endl;
    92                         const uint8_t &b, 
const uint8_t &a )
    94     #ifdef CARTO_DEBUG_RGB    95       std::cout << 
"RGBA:: Constructor( r,g,b,a )" << std::endl;
   106     #ifdef CARTO_DEBUG_RGB   107       std::cout << 
"RGBA:: Destructor" << std::endl;
   116     #ifdef CARTO_DEBUG_RGB   117       std::cout << 
"RGBA:: operator = ( RGBA )" << std::endl;
   129     #ifdef CARTO_DEBUG_RGB   130       std::cout << 
"RGBA:: operator = ( RGB )" << std::endl;
   142     #ifdef CARTO_DEBUG_RGB   143       std::cout << 
"RGBA:: operator = ( uint8_t )" << std::endl;
   157     #ifdef CARTO_DEBUG_RGB   158       std::cout << 
"RGBA:: operator += ( RGBA )" << std::endl;
   160     if( other.
alpha() == 0 ) {
   169     } 
else if( 
alpha() == 0 ) {
   188     #ifdef CARTO_DEBUG_RGB   189       std::cout << 
"RGBA:: operator += ( RGB )" << std::endl;
   207     #ifdef CARTO_DEBUG_RGB   208       std::cout << 
"RGBA:: operator -= ( RGBA )" << std::endl;
   210     if( other.
alpha() == 0 ) {
   219     } 
else if( 
alpha() == 0 ) {
   236     #ifdef CARTO_DEBUG_RGB   237       std::cout << 
"RGBA:: operator -= ( RGB )" << std::endl;
   254     #ifdef CARTO_DEBUG_RGB   255       std::cout << 
"RGBA:: operator += ( uint8_t )" << std::endl;
   273     #ifdef CARTO_DEBUG_RGB   274       std::cout << 
"RGBA:: operator -= ( uint8_t )" << std::endl;
   292     #ifdef CARTO_DEBUG_RGB   293       std::cout << 
"RGBA:: operator *= ( uint8_t )" << std::endl;
   295     red()   *= 
static_cast<uint8_t
>( value );
   296     green() *= 
static_cast<uint8_t
>( value );
   297     blue()  *= 
static_cast<uint8_t
>( value );
   304     #ifdef CARTO_DEBUG_RGB   305       std::cout << 
"RGBA:: operator *= ( uint16_t )" << std::endl;
   307     red()   *= 
static_cast<uint8_t
>( value );
   308     green() *= 
static_cast<uint8_t
>( value );
   309     blue()  *= 
static_cast<uint8_t
>( value );
   316     #ifdef CARTO_DEBUG_RGB   317       std::cout << 
"RGBA:: operator *= ( uint32_t )" << std::endl;
   319     red()   *= 
static_cast<uint8_t
>( value );
   320     green() *= 
static_cast<uint8_t
>( value );
   321     blue()  *= 
static_cast<uint8_t
>( value );
   328     #ifdef CARTO_DEBUG_RGB   329       std::cout << 
"RGBA:: operator *= ( uint64_t )" << std::endl;
   331     red()   *= 
static_cast<uint8_t
>( value );
   332     green() *= 
static_cast<uint8_t
>( value );
   333     blue()  *= 
static_cast<uint8_t
>( value );
   340     #ifdef CARTO_DEBUG_RGB   341       std::cout << 
"RGBA:: operator *= ( float )" << std::endl;
   344     red()   = 
static_cast<uint8_t
>( 
red() * value );
   345     green() = 
static_cast<uint8_t
>( 
green() * value );
   346     blue()  = 
static_cast<uint8_t
>( 
blue() * value );
   353     #ifdef CARTO_DEBUG_RGB   354       std::cout << 
"RGBA:: operator *= ( double )" << std::endl;
   357     red()   = 
static_cast<uint8_t
>( 
red() * value );
   358     green() = 
static_cast<uint8_t
>( 
green() * value );
   359     blue()  = 
static_cast<uint8_t
>( 
blue() * value );
   366     #ifdef CARTO_DEBUG_RGB   367       std::cout << 
"RGBA:: operator /= ( uint8_t )" << std::endl;
   370     red()   /= 
static_cast<uint8_t
>( value );
   371     green() /= 
static_cast<uint8_t
>( value );
   372     blue()  /= 
static_cast<uint8_t
>( value );
   379     #ifdef CARTO_DEBUG_RGB   380       std::cout << 
"RGBA:: operator /= ( uint16_t )" << std::endl;
   383     red()   /= 
static_cast<uint8_t
>( value );
   384     green() /= 
static_cast<uint8_t
>( value );
   385     blue()  /= 
static_cast<uint8_t
>( value );
   392     #ifdef CARTO_DEBUG_RGB   393       std::cout << 
"RGBA:: operator /= ( uint32_t )" << std::endl;
   396     red()   /= 
static_cast<uint8_t
>( value );
   397     green() /= 
static_cast<uint8_t
>( value );
   398     blue()  /= 
static_cast<uint8_t
>( value );
   405     #ifdef CARTO_DEBUG_RGB   406       std::cout << 
"RGBA:: operator /= ( uint64_t )" << std::endl;
   409     red()   /= 
static_cast<uint8_t
>( value );
   410     green() /= 
static_cast<uint8_t
>( value );
   411     blue()  /= 
static_cast<uint8_t
>( value );
   418     #ifdef CARTO_DEBUG_RGB   419       std::cout << 
"RGBA:: operator /= ( float )" << std::endl;
   423     red()   = 
static_cast<uint8_t
>( 
red() / value );
   424     green() = 
static_cast<uint8_t
>( 
green() / value );
   425     blue()  = 
static_cast<uint8_t
>( 
blue() / value );
   432     #ifdef CARTO_DEBUG_RGB   433       std::cout << 
"RGBA:: operator /= ( double )" << std::endl;
   437     red()   = 
static_cast<uint8_t
>( 
red() / value );
   438     green() = 
static_cast<uint8_t
>( 
green() / value );
   439     blue()  = 
static_cast<uint8_t
>( 
blue() / value );
   448     #ifdef CARTO_DEBUG_RGB   449       std::cout << 
"RGBA:: RGBA + RGBA" << std::endl;
   458     #ifdef CARTO_DEBUG_RGB   459       std::cout << 
"RGBA:: RGBA + uint8_t" << std::endl;
   468     #ifdef CARTO_DEBUG_RGB   469       std::cout << 
"RGBA:: RGBA + uint16_t" << std::endl;
   478     #ifdef CARTO_DEBUG_RGB   479       std::cout << 
"RGBA:: RGBA + uint32_t" << std::endl;
   488     #ifdef CARTO_DEBUG_RGB   489       std::cout << 
"RGBA:: RGBA + uint64_t" << std::endl;
   498     #ifdef CARTO_DEBUG_RGB   499       std::cout << 
"RGBA:: RGBA + float" << std::endl;
   502     return result += 
static_cast<uint8_t
>(bb);
   508     #ifdef CARTO_DEBUG_RGB   509       std::cout << 
"RGBA:: RGBA + double" << std::endl;
   512     return result += 
static_cast<uint8_t
>(bb);
   518     #ifdef CARTO_DEBUG_RGB   519       std::cout << 
"RGBA:: uint8_t + RGBA" << std::endl;
   528     #ifdef CARTO_DEBUG_RGB   529       std::cout << 
"RGBA:: uint16_t + RGBA" << std::endl;
   538     #ifdef CARTO_DEBUG_RGB   539       std::cout << 
"RGBA:: uint32_t + RGBA" << std::endl;
   548     #ifdef CARTO_DEBUG_RGB   549       std::cout << 
"RGBA:: uint64_t + RGBA" << std::endl;
   558     #ifdef CARTO_DEBUG_RGB   559       std::cout << 
"RGBA:: float + RGBA" << std::endl;
   561     VoxelRGBA result( static_cast<uint8_t>(aa) );
   568     #ifdef CARTO_DEBUG_RGB   569       std::cout << 
"RGBA:: double + RGBA" << std::endl;
   571     VoxelRGBA result( static_cast<uint8_t>(aa) );
   578     #ifdef CARTO_DEBUG_RGB   579       std::cout << 
"RGBA:: RGBA - RGBA" << std::endl;
   588     #ifdef CARTO_DEBUG_RGB   589       std::cout << 
"RGBA:: RGBA - uint8_t" << std::endl;
   598     #ifdef CARTO_DEBUG_RGB   599       std::cout << 
"RGBA:: RGBA - uint16_t" << std::endl;
   608     #ifdef CARTO_DEBUG_RGB   609       std::cout << 
"RGBA:: RGBA - uint32_t" << std::endl;
   618     #ifdef CARTO_DEBUG_RGB   619       std::cout << 
"RGBA:: RGBA - uint64_t" << std::endl;
   628     #ifdef CARTO_DEBUG_RGB   629       std::cout << 
"RGBA:: RGBA - float" << std::endl;
   632     return result -= 
static_cast<uint8_t
>(bb);
   638     #ifdef CARTO_DEBUG_RGB   639       std::cout << 
"RGBA:: RGBA - double" << std::endl;
   642     return result -= 
static_cast<uint8_t
>(bb);
   648     #ifdef CARTO_DEBUG_RGB   649       std::cout << 
"RGBA:: uint8_t - RGBA" << std::endl;
   658     #ifdef CARTO_DEBUG_RGB   659       std::cout << 
"RGBA:: uint16_t - RGBA" << std::endl;
   668     #ifdef CARTO_DEBUG_RGB   669       std::cout << 
"RGBA:: uint32_t - RGBA" << std::endl;
   678     #ifdef CARTO_DEBUG_RGB   679       std::cout << 
"RGBA:: uint64_t - RGBA" << std::endl;
   688     #ifdef CARTO_DEBUG_RGB   689       std::cout << 
"RGBA:: float - RGBA" << std::endl;
   691     VoxelRGBA result( static_cast<uint8_t>(aa) );
   698     #ifdef CARTO_DEBUG_RGB   699       std::cout << 
"RGBA:: double - RGBA" << std::endl;
   701     VoxelRGBA result( static_cast<uint8_t>(aa) );
   708     #ifdef CARTO_DEBUG_RGB   709       std::cout << 
"RGBA:: RGBA * uint8_t" << std::endl;
   718     #ifdef CARTO_DEBUG_RGB   719       std::cout << 
"RGBA:: RGBA * uint16_t" << std::endl;
   728     #ifdef CARTO_DEBUG_RGB   729       std::cout << 
"RGBA:: RGBA * uint32_t" << std::endl;
   738     #ifdef CARTO_DEBUG_RGB   739       std::cout << 
"RGBA:: RGBA * uint64_t" << std::endl;
   748     #ifdef CARTO_DEBUG_RGB   749       std::cout << 
"RGBA:: RGBA * float" << std::endl;
   758     #ifdef CARTO_DEBUG_RGB   759       std::cout << 
"RGBA:: RGBA * double" << std::endl;
   768     #ifdef CARTO_DEBUG_RGB   769       std::cout << 
"RGBA:: uint8_t * RGBA" << std::endl;
   778     #ifdef CARTO_DEBUG_RGB   779       std::cout << 
"RGBA:: uint16_t * RGBA" << std::endl;
   788     #ifdef CARTO_DEBUG_RGB   789       std::cout << 
"RGBA:: uint32_t * RGBA" << std::endl;
   798     #ifdef CARTO_DEBUG_RGB   799       std::cout << 
"RGBA:: uint64_t * RGBA" << std::endl;
   808     #ifdef CARTO_DEBUG_RGB   809       std::cout << 
"RGBA:: float * RGBA" << std::endl;
   818     #ifdef CARTO_DEBUG_RGB   819       std::cout << 
"RGBA:: double * RGBA" << std::endl;
   828     #ifdef CARTO_DEBUG_RGB   829       std::cout << 
"RGBA:: RGBA / uint8_t" << std::endl;
   838     #ifdef CARTO_DEBUG_RGB   839       std::cout << 
"RGBA:: RGBA / uint16_t" << std::endl;
   848     #ifdef CARTO_DEBUG_RGB   849       std::cout << 
"RGBA:: RGBA / uint32_t" << std::endl;
   858     #ifdef CARTO_DEBUG_RGB   859       std::cout << 
"RGBA:: RGBA / uint64_t" << std::endl;
   868     #ifdef CARTO_DEBUG_RGB   869       std::cout << 
"RGBA:: RGBA / float" << std::endl;
   878     #ifdef CARTO_DEBUG_RGB   879       std::cout << 
"RGBA:: RGBA / double" << std::endl;
   890     #ifdef CARTO_DEBUG_RGB   891       std::cout << 
"RGBA:: operator *= ( long )" << std::endl;
   893     red()   *= 
static_cast<uint8_t
>( value );
   894     green() *= 
static_cast<uint8_t
>( value );
   895     blue()  *= 
static_cast<uint8_t
>( value );
   902     #ifdef CARTO_DEBUG_RGB   903       std::cout << 
"RGBA:: operator /= ( long )" << std::endl;
   906     red()   /= 
static_cast<uint8_t
>( value );
   907     green() /= 
static_cast<uint8_t
>( value );
   908     blue()  /= 
static_cast<uint8_t
>( value );
   915     #ifdef CARTO_DEBUG_RGB   916       std::cout << 
"RGBA:: RGBA * long" << std::endl;
   925     #ifdef CARTO_DEBUG_RGB   926       std::cout << 
"RGBA:: long * RGBA" << std::endl;
   935     #ifdef CARTO_DEBUG_RGB   936       std::cout << 
"RGBA:: RGBA / long" << std::endl;
 
VoxelRGB operator/(const VoxelRGB &aa, const uint8_t &bb)
const uint8_t & blue() const
VoxelRGBA & operator*=(const uint8_t &value)
const uint8_t & red() const
VoxelRGB operator+(const VoxelRGB &aa, const VoxelRGB &bb)
Base class for any multichannel data (RGB, RGBA, HSV, ...) 
VoxelRGB operator*(const VoxelRGB &aa, const uint8_t &bb)
VoxelRGBA & operator=(const VoxelRGBA &other)
VoxelRGBA & operator-=(const VoxelRGBA &other)
const uint8_t & alpha() const
VoxelRGBA & operator+=(const VoxelRGBA &other)
VoxelRGB operator-(const VoxelRGB &aa, const VoxelRGB &bb)
const uint8_t & green() const
VoxelRGBA(const VoxelRGBA &other)
const uint8_t & blue() const
VoxelRGBA & operator/=(const uint8_t &value)
const uint8_t & green() const
const uint8_t & red() const