public void Move(Vector3 to) { if (controlPoints.Count > maxLength) { return; } controlPoints.Add(to); if (controlPoints.Count > 1) { WindSegment segment = new WindSegment(); Vector3 a = controlPoints[controlPoints.Count - 2]; Vector3 b = controlPoints[controlPoints.Count - 1]; // or "to".. :) segment.Position = (a + b) / 2; segment.Radius = Vector3.Distance(a, b) / 2; segment.Direction = Vector3.Normalize(b - a); // debug segment.CreateVertices(b.Z); segments.Add(segment); } }