/// <inheritdoc /> public override Vector3 GetNormalAt(float t) { Vector3 direction = Vector3.Normalize(GetTangentAt(t)); Vector3 normal = new Vector3(NormalX.GetValueAt(t), NormalY.GetValueAt(t), NormalZ.GetValueAt(t)); Vector3 up = Vector3.Cross(direction, normal); return(Vector3.Normalize(Vector3.Cross(up, direction))); }
/// <inheritdoc /> public override dvec3 GetNormalAt(double t) { dvec3 direction = GetTangentAt(t).Normalized; dvec3 normal = new dvec3(NormalX.GetValueAt(t), NormalY.GetValueAt(t), NormalZ.GetValueAt(t)); dvec3 up = dvec3.Cross(direction, normal); return(dvec3.Cross(up, direction).Normalized); }