- /* FILL: this is simple */
- r = base_color.get_red()/256;
- g = base_color.get_green()/256;
- b = base_color.get_blue()/256;
- fill_color = RGBA_TO_UINT(r,g,b,160);
-
- /* for minor colors:
- if the overall saturation is strong, make the minor colors light.
- if its weak, make them dark.
-
- we do this by moving an equal distance to the other side of the
- central circle in the color wheel from where we started.
- */
-
- radius = (unsigned char) rint (floor (sqrt (static_cast<double>(r*r + g*g + b+b))/3.0f));
- minor_shift = 125 - radius;
-
- /* LABEL: rotate around color wheel by 120 degrees anti-clockwise */
-
- r = base_color.get_red()/256;
- g = base_color.get_green()/256;
- b = base_color.get_blue()/256;
-
- if (r > b)
- {
- if (r > g)
- {
- /* red sector => green */
- swap (r,g);
- }
- else
- {
- /* green sector => blue */
- swap (g,b);
- }
- }
- else
- {
- if (b > g)
- {
- /* blue sector => red */
- swap (b,r);
- }
- else
- {
- /* green sector => blue */
- swap (g,b);
- }