10 private float distance;
38 public Line(Vector3 p0, Vector3 p1)
46 public void Calculate()
48 distance = Vector3.Distance(p1, p0);
51 public override float EstimateLength(
int n = 100)
56 public override float GetParameterForLength(
float s)
61 public override Vector3 GetPoint(
float u)
63 return p0 * (1 - u) + p1 * u;
66 public Vector3 GetTangent(
float u)
68 return (p1 - p0) / distance;
76 tangent = GetTangent(u)
82 var u = GetParameterForLength(s);
84 return GetPointAndTangent(u);
87 public override Vector3 GetPointAtLength(
float s)
89 var u = GetParameterForLength(s);
94 public override Vector3[] Sample(
int n)
98 return new[] { GetPoint(0), GetPoint(1) };
101 var sample =
new Vector3[n + 2];
102 var delta = 1.0f / (n + 1.0f);
104 for (var i = 0; i < (n + 2); i++)
106 sample[i] = GetPoint(i * delta);