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)