public FLOAT Curvature(FLOAT t) { var T = Derivative(t); var N = SecondDerivative(t); return(VectorHelper.Cross(T, N).magnitude / (T.magnitude * T.sqrMagnitude)); }
public VECTOR Normal(FLOAT t) { try { var T1 = Derivative(t - 1e-4f); var T2 = Derivative(t + 1e-4f); var c = VectorHelper.Cross(T1 / VectorHelper.Length(T1), T2 / VectorHelper.Length(T2)); var N = VectorHelper.Cross(c, T1 / VectorHelper.Length(T1)); return(N / VectorHelper.Length(N)); } catch (DivideByZeroException e) { UnityEngine.Debug.Log(e.Message); return(UnityEngine.Vector3.right); } }
public VECTOR Binormal(FLOAT t) { return(VectorHelper.Normalize(VectorHelper.Cross(Tangent(t), Normal(t)))); }