ChooseContrastingColor
Description¶
Given a color, find a contrasting color. If the given color is "light", use the lightColor otherwise use the darkColor.
To use the snippet, click the Copy to clipboard at the upper right of the code blocks.
Declaration Section¶
#include <vtkNamedColors.h> #include <vtkMath.h> namespace { // Given a color, find a contrasting color. If the given color is "light", // use the lightColor otherwise use the darkColor void ChooseContrastingColor(double *rgbIn, double *rgbOut, const double threshold = .5, const std::string lightColor = "white", const std::string darkColor = "black"); }
Implementation Section¶
namespace { void ChooseContrastingColor(double *rgbIn, double *rgbOut, const double threshold, const std::string lightColor, const std::string darkColor) { vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New(); double hsv[3]; // If the value is <= threshold, use a light color, otherwise use a dark color vtkMath::RGBToHSV(rgbIn, hsv); if (hsv[2] <= threshold) { colors->GetColor(lightColor.c_str(), rgbOut[0], rgbOut[1], rgbOut[2]); } else { colors->GetColor(darkColor.c_str(), rgbOut[0], rgbOut[1], rgbOut[2]); } } }