private void AddPoints(ref List <Vector3> points, float minTime, float maxTime, float visibleMinTime, float visibleMaxTime)
{
if (this.m_Curve[0].time >= minTime)
{
points.Add(new Vector3(this.rangeStart, this.m_Curve[0].value));
points.Add(new Vector3(this.m_Curve[0].time, this.m_Curve[0].value));
}
for (int i = 0; i < this.m_Curve.length - 1; i++)
{
Keyframe keyframe = this.m_Curve[i];
Keyframe keyframe2 = this.m_Curve[i + 1];
if (keyframe2.time >= minTime && keyframe.time <= maxTime)
{
points.Add(new Vector3(keyframe.time, keyframe.value));
int segmentResolution = NormalCurveRenderer.GetSegmentResolution(visibleMinTime, visibleMaxTime, keyframe.time, keyframe2.time);
float num = Mathf.Lerp(keyframe.time, keyframe2.time, 0.001f / (float)segmentResolution);
points.Add(new Vector3(num, this.m_Curve.Evaluate(num)));
for (float num2 = 1f; num2 < (float)segmentResolution; num2 += 1f)
{
num = Mathf.Lerp(keyframe.time, keyframe2.time, num2 / (float)segmentResolution);
points.Add(new Vector3(num, this.m_Curve.Evaluate(num)));
}
num = Mathf.Lerp(keyframe.time, keyframe2.time, 1f - 0.001f / (float)segmentResolution);
points.Add(new Vector3(num, this.m_Curve.Evaluate(num)));
num = keyframe2.time;
points.Add(new Vector3(num, keyframe2.value));
}
}
if (this.m_Curve[this.m_Curve.length - 1].time <= maxTime)
{
points.Add(new Vector3(this.m_Curve[this.m_Curve.length - 1].time, this.m_Curve[this.m_Curve.length - 1].value));
points.Add(new Vector3(this.rangeEnd, this.m_Curve[this.m_Curve.length - 1].value));
}
}