public void AddLine(Vector3 endPoint) { if (closed) { BezierLine current = start; float lowestMangitude = float.MaxValue; BezierLine currentClosest = current; do { float magnitude = ((endPoint - current.Start) + (endPoint - current.End)).magnitude; if (magnitude < lowestMangitude) { lowestMangitude = magnitude; currentClosest = current; } current = current.nextLine; }while (current.nextLine != start); BezierLine currentClosestNext = currentClosest.nextLine; BezierLine newLine = new BezierLine(currentClosest, endPoint); currentClosestNext.SetPreviousLine(newLine); } else { BezierLine currentLast = GetLastLine(); BezierLine newLine = new BezierLine(currentLast, endPoint); newLine.SetPreviousLine(currentLast); } }
public void CloseLine() { BezierLine lastLine = GetLastLine(); BezierLine fillerLine = new BezierLine(lastLine.End, start.Start); fillerLine.SetPreviousLine(lastLine); start.SetPreviousLine(fillerLine); closed = true; }