private void HandleGradientOutputValueChanged(object sender, IndexEventArgs e) { if (gradientOutput.ValueIndex != -1 && gradientOutput.ValueIndex != e.Index) return; int val = gradientOutput.GetValue (e.Index); int hi = gradientOutput.GetValue (2); int lo = gradientOutput.GetValue (0); int med = FromGammaValue (); switch (e.Index) { case 0 : spinOutLow.Value = val; gradientOutput.SetValue (1, med); break; case 1 : med = gradientOutput.GetValue (1); spinOutGamma.Value = Utility.Clamp(1 / Math.Log (0.5, (float)(med - lo) / (float)(hi - lo)), 0.1, 10.0); break; case 2 : spinOutHigh.Value = val; gradientOutput.SetValue (1, med); break; } UpdateLevels (); }
private void HandleGradientInputValueChanged(object sender, IndexEventArgs e) { int val = gradientInput.GetValue (e.Index); if (e.Index == 0) spinInLow.Value = val; else spinInHigh.Value = val; UpdateLevels (); }