void GetHSV(double r, double g, double b, double& h, double& s, double& v) { v=dblmax(r, dblmax(g, b)); double d=v-dblmin(r, dblmin(g, b)); if(d==0.0) {s=0.0; h=0.0; /*std::cerr << "Error in HSV conversion\n";*/ return;} s=d/v; if(r==v) { if(g>=b) h = 0.167 * (g-b)/d; else h = 0.167 * (g-b)/d + 1.0; } if(g==v) h = 0.167 * (b-r)/d + 0.333; if(b==v) h = 0.167 * (r-g)/d + 0.667; v/=255.0; }
void clip_box(box_t *b, box_t *bounds) { b->xmin = dblmax(b->xmin, bounds->xmin); b->ymin = dblmax(b->ymin, bounds->ymin); b->xmax = dblmin(b->xmax, bounds->xmax); b->ymax = dblmin(b->ymax, bounds->ymax); }