PostGIS 3.0.6dev-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 561 of file rt_util.c.

561 {
562 double r = 0;
563 double g = 0;
564 double b = 0;
565 double v = hsv[2];
566
567 if (DBL_EQ(hsv[1], 0.))
568 r = g = b = v;
569 else {
570 double i;
571 double f;
572 double p;
573 double q;
574 double t;
575
576 int a;
577
578 i = floor(hsv[0] * 6.);
579 f = (hsv[0] * 6.0) - i;
580 p = v * (1. - hsv[1]);
581 q = v * (1. - hsv[1] * f);
582 t = v * (1. - hsv[1] * (1. - f));
583
584 a = (int) i;
585 switch (a) {
586 case 1:
587 r = q;
588 g = v;
589 b = p;
590 break;
591 case 2:
592 r = p;
593 g = v;
594 b = t;
595 break;
596 case 3:
597 r = p;
598 g = q;
599 b = v;
600 break;
601 case 4:
602 r = t;
603 g = p;
604 b = v;
605 break;
606 case 5:
607 r = v;
608 g = p;
609 b = q;
610 break;
611 case 0:
612 case 6:
613 default:
614 r = v;
615 g = t;
616 b = p;
617 break;
618 }
619 }
620
621 rgb[0] = r;
622 rgb[1] = g;
623 rgb[2] = b;
624
625 return ES_NONE;
626}
char * r
Definition cu_in_wkt.c:24
@ ES_NONE
Definition librtcore.h:180
#define DBL_EQ(x, y)
Definition librtcore.h:2237

References DBL_EQ, ES_NONE, and r.

Referenced by test_hsv_to_rgb().

Here is the caller graph for this function: