private void UpdateMinMax()
{
for (int i = 0; i < inputsCount; i++)
{
float minValue = additive ? 0f : 1f;
float maxValue = additive ? 0f : 1f;
if (!curves[i].evalSingle)
{
//print("UpdateMinMax i=" + i + " " + curves[i].fCurve.length);
for (int j = 0; j < curves[i].fCurve.length; j++)
{
float key = curves[i].fCurve.keys[j].time;
float val = curves[i].fCurve.keys[j].value;
minInput[i] = Mathf.Min(minInput[i], key);
maxInput[i] = Mathf.Max(maxInput[i], key);
minValue = Mathf.Min(minValue, val);
maxValue = Mathf.Max(maxValue, val);
}
}
if (logCurves[i] != null && !logCurves[i].evalSingle)
{
//print("UpdateMinMax i=" + i + " " + logCurves[i].fCurve.length);
for (int j = 0; j < logCurves[i].fCurve.length; j++)
{
float key = logCurves[i].fCurve.keys[j].time;
float val = logCurves[i].fCurve.keys[j].value;
minInput[i] = Mathf.Min(minInput[i], key);
maxInput[i] = Mathf.Max(maxInput[i], key);
minValue = Mathf.Min(minValue, val);
maxValue = Mathf.Max(maxValue, val);
}
}
if (additive)
{
minOutput += minValue;
}
else
{
maxOutput *= maxValue;
}
}
}