Example #1
0
        /// <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)));
        }
Example #2
0
        /// <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);
        }