TSplineUVNFrame
using Autodesk.DesignScript.Interfaces;
using Autodesk.DesignScript.Runtime;
using System.Collections.Generic;
using System.Linq;
namespace Autodesk.DesignScript.Geometry.TSpline
{
    public class TSplineUVNFrame : DesignScriptEntity
    {
        internal ITSplineUVNFrameEntity TSplineUVNFrameEntity => HostImpl as ITSplineUVNFrameEntity;
        public Point Position => Point.Wrap(TSplineUVNFrameEntity.get_Position(), true);
        [Scaling()]
        public Vector U {
            get {
                return Vector.Wrap(TSplineUVNFrameEntity.get_U().Scale(1 / DesignScriptEntity.scaleFactor), true);
            }
        }
        [Scaling()]
        public Vector V {
            get {
                return Vector.Wrap(TSplineUVNFrameEntity.get_V().Scale(1 / DesignScriptEntity.scaleFactor), true);
            }
        }
        [Scaling()]
        public Vector Normal {
            get {
                return Vector.Wrap(TSplineUVNFrameEntity.get_Normal().Scale(1 / DesignScriptEntity.scaleFactor), true);
            }
        }
        internal TSplineUVNFrame(ITSplineUVNFrameEntity host, bool persist)
            : base(host, persist)
        {
        }
        public override string ToString()
        {
            return "TSplineUVNFrame(Position = " + Position?.ToString() + ", U = " + U?.ToString() + ", V = " + V?.ToString() + ", Normal = " + Normal?.ToString() + ")";
        }
        internal static TSplineUVNFrame Wrap(ITSplineUVNFrameEntity host, bool persist = true)
        {
            if (host == null)
                return null;
            return new TSplineUVNFrame(host, persist);
        }
        internal static TSplineUVNFrame[] Wrap(ITSplineUVNFrameEntity[] hosts, bool persist = true)
        {
            return (from x in hosts
            select Wrap(x, persist)).ToArray();
        }
        internal static TSplineUVNFrame[][] Wrap(ITSplineUVNFrameEntity[][] hosts, bool persist = true)
        {
            return (from x in hosts
            select Wrap(x, persist)).ToArray();
        }
        internal static ITSplineUVNFrameEntity[][] Unwrap(TSplineUVNFrame[][] o)
        {
            return (from x in o
            select Unwrap(x)).ToArray();
        }
        internal static ITSplineUVNFrameEntity[] Unwrap(TSplineUVNFrame[] o)
        {
            return (from x in o
            select Unwrap(x)).ToArray();
        }
        internal static ITSplineUVNFrameEntity[] Unwrap(IEnumerable<TSplineUVNFrame> o)
        {
            return (from x in o
            select Unwrap(x)).ToArray();
        }
        internal static ITSplineUVNFrameEntity Unwrap(TSplineUVNFrame o)
        {
            return o.TSplineUVNFrameEntity;
        }
    }
}
            