public void CreateCubic() { List <Vector3> points = BezierCurveFormula.GetCubic(p0.transform.localPosition, p1.transform.localPosition, p2.transform.localPosition, p3.transform.localPosition, t, nsegments); line.positionCount = points.Count; line.SetPositions(points.ToArray()); SetVisibleControlPoint(p1, true); SetVisibleControlPoint(p2, true); //guide line guideLine.enabled = showGuideLine & true; guideLine.positionCount = 4; guideLine.SetPosition(0, p0.transform.localPosition); guideLine.SetPosition(1, p1.transform.localPosition); guideLine.SetPosition(2, p2.transform.localPosition); guideLine.SetPosition(3, p3.transform.localPosition); //construction line constrLine1.enabled = showConstLine & true; constrLine2.enabled = showConstLine & true; constrLine1.positionCount = 3; constrLine1.SetPosition(0, Vector3.Lerp(p0.localPosition, p1.localPosition, t)); constrLine1.SetPosition(1, Vector3.Lerp(p1.localPosition, p2.localPosition, t)); constrLine1.SetPosition(2, Vector3.Lerp(p2.localPosition, p3.localPosition, t)); constrLine2.positionCount = 2; constrLine2.SetPosition(0, Vector3.Lerp(constrLine1.GetPosition(0), constrLine1.GetPosition(1), t)); constrLine2.SetPosition(1, Vector3.Lerp(constrLine1.GetPosition(1), constrLine1.GetPosition(2), t)); }
public void CreateLinear() { List <Vector3> points = BezierCurveFormula.GetLinear(p0.transform.localPosition, p3.transform.localPosition, t, nsegments); line.positionCount = points.Count; line.SetPositions(points.ToArray()); SetVisibleControlPoint(p1, false); SetVisibleControlPoint(p2, false); //guide line guideLine.positionCount = 0; constrLine1.positionCount = 0; constrLine2.positionCount = 0; guideLine.enabled = false; constrLine1.enabled = false; constrLine2.enabled = false; }