PostGIS 3.6.2dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ rt_util_hsv_to_rgb()

rt_errorstate rt_util_hsv_to_rgb ( double  hsv[3],
double  rgb[3] 
)

Definition at line 613 of file rt_util.c.

613 {
614 double r = 0;
615 double g = 0;
616 double b = 0;
617 double v = hsv[2];
618
619 if (DBL_EQ(hsv[1], 0.))
620 r = g = b = v;
621 else {
622 double i;
623 double f;
624 double p;
625 double q;
626 double t;
627
628 int a;
629
630 i = floor(hsv[0] * 6.);
631 f = (hsv[0] * 6.0) - i;
632 p = v * (1. - hsv[1]);
633 q = v * (1. - hsv[1] * f);
634 t = v * (1. - hsv[1] * (1. - f));
635
636 a = (int) i;
637 switch (a) {
638 case 1:
639 r = q;
640 g = v;
641 b = p;
642 break;
643 case 2:
644 r = p;
645 g = v;
646 b = t;
647 break;
648 case 3:
649 r = p;
650 g = q;
651 b = v;
652 break;
653 case 4:
654 r = t;
655 g = p;
656 b = v;
657 break;
658 case 5:
659 r = v;
660 g = p;
661 b = q;
662 break;
663 case 0:
664 case 6:
665 default:
666 r = v;
667 g = t;
668 b = p;
669 break;
670 }
671 }
672
673 rgb[0] = r;
674 rgb[1] = g;
675 rgb[2] = b;
676
677 return ES_NONE;
678}
char * r
Definition cu_in_wkt.c:24
@ ES_NONE
Definition librtcore.h:182
#define DBL_EQ(x, y)
Definition librtcore.h:2426

References DBL_EQ, ES_NONE, and r.

Referenced by test_hsv_to_rgb().

Here is the caller graph for this function: