PostGIS 3.7.0dev-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 710 of file rt_util.c.

710 {
711 double r = 0;
712 double g = 0;
713 double b = 0;
714 double v = hsv[2];
715
716 if (DBL_EQ(hsv[1], 0.))
717 r = g = b = v;
718 else {
719 double i;
720 double f;
721 double p;
722 double q;
723 double t;
724
725 int a;
726
727 i = floor(hsv[0] * 6.);
728 f = (hsv[0] * 6.0) - i;
729 p = v * (1. - hsv[1]);
730 q = v * (1. - hsv[1] * f);
731 t = v * (1. - hsv[1] * (1. - f));
732
733 a = (int) i;
734 switch (a) {
735 case 1:
736 r = q;
737 g = v;
738 b = p;
739 break;
740 case 2:
741 r = p;
742 g = v;
743 b = t;
744 break;
745 case 3:
746 r = p;
747 g = q;
748 b = v;
749 break;
750 case 4:
751 r = t;
752 g = p;
753 b = v;
754 break;
755 case 5:
756 r = v;
757 g = p;
758 b = q;
759 break;
760 case 0:
761 case 6:
762 default:
763 r = v;
764 g = t;
765 b = p;
766 break;
767 }
768 }
769
770 rgb[0] = r;
771 rgb[1] = g;
772 rgb[2] = b;
773
774 return ES_NONE;
775}
char * r
Definition cu_in_wkt.c:24
@ ES_NONE
Definition librtcore.h:182
#define DBL_EQ(x, y)
Definition librtcore.h:2438

References DBL_EQ, ES_NONE, and r.

Referenced by test_hsv_to_rgb().

Here is the caller graph for this function: