private CurveWrapper CreateCurveWrapper(SerializedProperty curve, int id, int regionId, Color color, bool signedRange, CurveWrapper.GetAxisScalarsCallback getAxisScalarsCallback, CurveWrapper.SetAxisScalarsCallback setAxisScalarsCallback)
{
CurveWrapper wrapper = new CurveWrapper {
id = id,
regionId = regionId,
color = color,
renderer = new NormalCurveRenderer(curve.animationCurveValue)
};
wrapper.renderer.SetWrap(curve.animationCurveValue.preWrapMode, curve.animationCurveValue.postWrapMode);
if (wrapper.curve.keys.Length == 1)
{
wrapper.renderer.SetCustomRange(0f, 1f);
wrapper.wrapColorMultiplier = Color.clear;
}
else
{
wrapper.renderer.SetCustomRange(0f, 0f);
wrapper.wrapColorMultiplier = color;
}
wrapper.vRangeMin = !signedRange ? 0f : -1f;
wrapper.getAxisUiScalarsCallback = getAxisScalarsCallback;
wrapper.setAxisUiScalarsCallback = setAxisScalarsCallback;
return wrapper;
}