34 #ifndef CARTOBASE_TYPE_HSV_H 35 #define CARTOBASE_TYPE_HSV_H 42 #ifdef CARTO_DEBUG_RGB 75 const uint8_t &v = 0 );
104 inline const uint8_t&
hue ()
const {
return (*
this)[0]; }
105 inline const uint8_t&
saturation ()
const {
return (*
this)[1]; }
106 inline const uint8_t&
value ()
const {
return (*
this)[2]; }
107 inline uint8_t&
hue () {
return (*
this)[0]; }
109 inline uint8_t&
value () {
return (*
this)[2]; }
151 #ifdef CARTO_DEBUG_RGB 152 std::cout <<
"HSV:: Constructor( HSV )" << std::endl;
160 #ifdef CARTO_DEBUG_RGB 161 std::cout <<
"HSV:: Constructor( VV<3> )" << std::endl;
168 #ifdef CARTO_DEBUG_RGB 169 std::cout <<
"HSV:: Constructor( h,s,v )" << std::endl;
179 #ifdef CARTO_DEBUG_RGB 180 std::cout <<
"HSV:: Destructor" << std::endl;
189 #ifdef CARTO_DEBUG_RGB 190 std::cout <<
"HSV:: operator = ( HSV )" << std::endl;
201 #ifdef CARTO_DEBUG_RGB 202 std::cout <<
"HSV:: operator = ( uint8_t )" << std::endl;
215 #ifdef CARTO_DEBUG_RGB 216 std::cout <<
"HSV:: operator += ( HSV )" << std::endl;
227 #ifdef CARTO_DEBUG_RGB 228 std::cout <<
"HSV:: operator -= ( HSV )" << std::endl;
239 #ifdef CARTO_DEBUG_RGB 240 std::cout <<
"HSV:: operator += ( uint8_t )" << std::endl;
251 #ifdef CARTO_DEBUG_RGB 252 std::cout <<
"HSV:: operator -= ( uint8_t )" << std::endl;
263 #ifdef CARTO_DEBUG_RGB 264 std::cout <<
"HSV:: operator *= ( uint8_t )" << std::endl;
266 hue() *=
static_cast<uint8_t
>( val );
268 value() *=
static_cast<uint8_t
>( val );
275 #ifdef CARTO_DEBUG_RGB 276 std::cout <<
"HSV:: operator *= ( uint16_t )" << std::endl;
278 hue() *=
static_cast<uint8_t
>( val );
280 value() *=
static_cast<uint8_t
>( val );
287 #ifdef CARTO_DEBUG_RGB 288 std::cout <<
"HSV:: operator *= ( uint32_t )" << std::endl;
290 hue() *=
static_cast<uint8_t
>( val );
292 value() *=
static_cast<uint8_t
>( val );
299 #ifdef CARTO_DEBUG_RGB 300 std::cout <<
"HSV:: operator *= ( uint64_t )" << std::endl;
302 hue() *=
static_cast<uint8_t
>( val );
304 value() *=
static_cast<uint8_t
>( val );
311 #ifdef CARTO_DEBUG_RGB 312 std::cout <<
"HSV:: operator *= ( float )" << std::endl;
314 hue() *=
static_cast<uint8_t
>( val );
316 value() *=
static_cast<uint8_t
>( val );
323 #ifdef CARTO_DEBUG_RGB 324 std::cout <<
"HSV:: operator *= ( double )" << std::endl;
326 hue() *=
static_cast<uint8_t
>( val );
328 value() *=
static_cast<uint8_t
>( val );
335 #ifdef CARTO_DEBUG_RGB 336 std::cout <<
"HSV:: operator /= ( uint8_t )" << std::endl;
339 hue() /=
static_cast<uint8_t
>( val );
341 value() /=
static_cast<uint8_t
>( val );
348 #ifdef CARTO_DEBUG_RGB 349 std::cout <<
"HSV:: operator /= ( uint16_t )" << std::endl;
352 hue() /=
static_cast<uint8_t
>( val );
354 value() /=
static_cast<uint8_t
>( val );
361 #ifdef CARTO_DEBUG_RGB 362 std::cout <<
"HSV:: operator /= ( uint32_t )" << std::endl;
365 hue() /=
static_cast<uint8_t
>( val );
367 value() /=
static_cast<uint8_t
>( val );
374 #ifdef CARTO_DEBUG_RGB 375 std::cout <<
"HSV:: operator /= ( uint64_t )" << std::endl;
378 hue() /=
static_cast<uint8_t
>( val );
380 value() /=
static_cast<uint8_t
>( val );
387 #ifdef CARTO_DEBUG_RGB 388 std::cout <<
"HSV:: operator /= ( float )" << std::endl;
391 hue() /=
static_cast<uint8_t
>( val );
393 value() /=
static_cast<uint8_t
>( val );
400 #ifdef CARTO_DEBUG_RGB 401 std::cout <<
"HSV:: operator /= ( double )" << std::endl;
404 hue() /=
static_cast<uint8_t
>( val );
406 value() /=
static_cast<uint8_t
>( val );
415 #ifdef CARTO_DEBUG_RGB 416 std::cout <<
"HSV:: HSV + HSV" << std::endl;
425 #ifdef CARTO_DEBUG_RGB 426 std::cout <<
"HSV:: HSV + uint8_t" << std::endl;
435 #ifdef CARTO_DEBUG_RGB 436 std::cout <<
"HSV:: HSV + uint16_t" << std::endl;
445 #ifdef CARTO_DEBUG_RGB 446 std::cout <<
"HSV:: HSV + uint32_t" << std::endl;
455 #ifdef CARTO_DEBUG_RGB 456 std::cout <<
"HSV:: HSV + uint64_t" << std::endl;
465 #ifdef CARTO_DEBUG_RGB 466 std::cout <<
"HSV:: HSV + float" << std::endl;
469 return result +=
static_cast<uint8_t
>(bb);
475 #ifdef CARTO_DEBUG_RGB 476 std::cout <<
"HSV:: HSV + double" << std::endl;
479 return result +=
static_cast<uint8_t
>(bb);
485 #ifdef CARTO_DEBUG_RGB 486 std::cout <<
"HSV:: uint8_t + HSV" << std::endl;
495 #ifdef CARTO_DEBUG_RGB 496 std::cout <<
"HSV:: uint16_t + HSV" << std::endl;
505 #ifdef CARTO_DEBUG_RGB 506 std::cout <<
"HSV:: uint32_t + HSV" << std::endl;
515 #ifdef CARTO_DEBUG_RGB 516 std::cout <<
"HSV:: uint64_t + HSV" << std::endl;
525 #ifdef CARTO_DEBUG_RGB 526 std::cout <<
"HSV:: float + HSV" << std::endl;
528 VoxelHSV result( static_cast<uint8_t>(aa) );
535 #ifdef CARTO_DEBUG_RGB 536 std::cout <<
"HSV:: double + HSV" << std::endl;
538 VoxelHSV result( static_cast<uint8_t>(aa) );
545 #ifdef CARTO_DEBUG_RGB 546 std::cout <<
"HSV:: HSV - HSV" << std::endl;
555 #ifdef CARTO_DEBUG_RGB 556 std::cout <<
"HSV:: HSV - uint8_t" << std::endl;
565 #ifdef CARTO_DEBUG_RGB 566 std::cout <<
"HSV:: HSV - uint16_t" << std::endl;
575 #ifdef CARTO_DEBUG_RGB 576 std::cout <<
"HSV:: HSV - uint32_t" << std::endl;
585 #ifdef CARTO_DEBUG_RGB 586 std::cout <<
"HSV:: HSV - uint64_t" << std::endl;
595 #ifdef CARTO_DEBUG_RGB 596 std::cout <<
"HSV:: HSV - float" << std::endl;
599 return result -=
static_cast<uint8_t
>(bb);
605 #ifdef CARTO_DEBUG_RGB 606 std::cout <<
"HSV:: HSV - double" << std::endl;
609 return result -=
static_cast<uint8_t
>(bb);
615 #ifdef CARTO_DEBUG_RGB 616 std::cout <<
"HSV:: uint8_t - HSV" << std::endl;
625 #ifdef CARTO_DEBUG_RGB 626 std::cout <<
"HSV:: uint16_t - HSV" << std::endl;
635 #ifdef CARTO_DEBUG_RGB 636 std::cout <<
"HSV:: uint32_t - HSV" << std::endl;
645 #ifdef CARTO_DEBUG_RGB 646 std::cout <<
"HSV:: uint64_t - HSV" << std::endl;
655 #ifdef CARTO_DEBUG_RGB 656 std::cout <<
"HSV:: float - HSV" << std::endl;
658 VoxelHSV result( static_cast<uint8_t>(aa) );
665 #ifdef CARTO_DEBUG_RGB 666 std::cout <<
"HSV:: double - HSV" << std::endl;
668 VoxelHSV result( static_cast<uint8_t>(aa) );
675 #ifdef CARTO_DEBUG_RGB 676 std::cout <<
"HSV:: HSV * uint8_t" << std::endl;
685 #ifdef CARTO_DEBUG_RGB 686 std::cout <<
"HSV:: HSV * uint16_t" << std::endl;
695 #ifdef CARTO_DEBUG_RGB 696 std::cout <<
"HSV:: HSV * uint32_t" << std::endl;
705 #ifdef CARTO_DEBUG_RGB 706 std::cout <<
"HSV:: HSV * uint64_t" << std::endl;
715 #ifdef CARTO_DEBUG_RGB 716 std::cout <<
"HSV:: HSV * float" << std::endl;
725 #ifdef CARTO_DEBUG_RGB 726 std::cout <<
"HSV:: HSV * double" << std::endl;
735 #ifdef CARTO_DEBUG_RGB 736 std::cout <<
"HSV:: uint8_t * HSV" << std::endl;
745 #ifdef CARTO_DEBUG_RGB 746 std::cout <<
"HSV:: uint16_t * HSV" << std::endl;
755 #ifdef CARTO_DEBUG_RGB 756 std::cout <<
"HSV:: uint32_t * HSV" << std::endl;
765 #ifdef CARTO_DEBUG_RGB 766 std::cout <<
"HSV:: uint64_t * HSV" << std::endl;
775 #ifdef CARTO_DEBUG_RGB 776 std::cout <<
"HSV:: float * HSV" << std::endl;
785 #ifdef CARTO_DEBUG_RGB 786 std::cout <<
"HSV:: double * HSV" << std::endl;
795 #ifdef CARTO_DEBUG_RGB 796 std::cout <<
"HSV:: HSV / uint8_t" << std::endl;
805 #ifdef CARTO_DEBUG_RGB 806 std::cout <<
"HSV:: HSV / uint16_t" << std::endl;
815 #ifdef CARTO_DEBUG_RGB 816 std::cout <<
"HSV:: HSV / uint32_t" << std::endl;
825 #ifdef CARTO_DEBUG_RGB 826 std::cout <<
"HSV:: HSV / uint64_t" << std::endl;
835 #ifdef CARTO_DEBUG_RGB 836 std::cout <<
"HSV:: HSV / float" << std::endl;
845 #ifdef CARTO_DEBUG_RGB 846 std::cout <<
"HSV:: HSV / double" << std::endl;
857 #ifdef CARTO_DEBUG_RGB 858 std::cout <<
"HSV:: operator *= ( long )" << std::endl;
860 hue() *=
static_cast<uint8_t
>( val );
862 value() *=
static_cast<uint8_t
>( val );
869 #ifdef CARTO_DEBUG_RGB 870 std::cout <<
"HSV:: operator /= ( long )" << std::endl;
873 hue() /=
static_cast<uint8_t
>( val );
875 value() /=
static_cast<uint8_t
>( val );
882 #ifdef CARTO_DEBUG_RGB 883 std::cout <<
"HSV:: HSV * long" << std::endl;
892 #ifdef CARTO_DEBUG_RGB 893 std::cout <<
"HSV:: long * HSV" << std::endl;
902 #ifdef CARTO_DEBUG_RGB 903 std::cout <<
"HSV:: HSV / long" << std::endl;
VoxelHSV & operator=(const VoxelHSV &other)
VoxelRGB operator/(const VoxelRGB &aa, const uint8_t &bb)
VoxelHSV & operator*=(const uint8_t &val)
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)
VoxelHSV & operator+=(const VoxelHSV &other)
VoxelHSV & operator-=(const VoxelHSV &other)
const uint8_t & hue() const
const uint8_t & value() const
VoxelHSV & operator/=(const uint8_t &val)
VoxelRGB operator-(const VoxelRGB &aa, const VoxelRGB &bb)
static std::string dataType()
const uint8_t & saturation() const
VoxelHSV(const VoxelHSV &other)