private static void InitHue()
{
const float greenRotation = 35.0f;
if (!_initialized)
{
_initialized = true;
_preHue.RotateRed(45.0f);
_preHue.RotateGreen(-greenRotation, MatrixOrder.MatrixOrderAppend);
var lum = new[] { LUM_R, LUM_G, LUM_B, 1.0f };
_preHue.TransformVector(lum);
float red = lum[0] / lum[2];
float green = lum[1] / lum[2];
_preHue.ShearBlue(red, green, MatrixOrder.MatrixOrderAppend);
_postHue.ShearBlue(-red, -green);
_postHue.RotateGreen(greenRotation, MatrixOrder.MatrixOrderAppend);
_postHue.RotateRed(-45.0f, MatrixOrder.MatrixOrderAppend);
}
}