private List<Vector3> GetControls(List<Vector3> segmentPoints, float scale)
{
List<Vector3> list = new List<Vector3>();
if (segmentPoints.Count >= 2)
{
for (int i = 0; i < segmentPoints.Count; i++)
{
if (i == 0)
{
Vector3 item = segmentPoints[i];
Vector3 vector2 = segmentPoints[i + 1];
Vector3 vector3 = vector2 - item;
Vector3 vector4 = item + ((Vector3) (scale * vector3));
list.Add(item);
list.Add(vector4);
}
else if (i == (segmentPoints.Count - 1))
{
Vector3 vector5 = segmentPoints[i - 1];
Vector3 vector6 = segmentPoints[i];
Vector3 vector7 = vector6 - vector5;
Vector3 vector8 = vector6 - ((Vector3) (scale * vector7));
list.Add(vector8);
list.Add(vector6);
}
else
{
Vector3 vector9 = segmentPoints[i - 1];
Vector3 vector10 = segmentPoints[i];
Vector3 vector11 = segmentPoints[i + 1];
Vector3 vector13 = vector11 - vector9;
Vector3 normalized = vector13.normalized;
Vector3 vector15 = vector10 - vector9;
Vector3 vector14 = vector10 - ((Vector3) ((scale * normalized) * vector15.magnitude));
Vector3 vector17 = vector11 - vector10;
Vector3 vector16 = vector10 + ((Vector3) ((scale * normalized) * vector17.magnitude));
list.Add(vector14);
list.Add(vector10);
list.Add(vector16);
}
}
}
return list;
}