/// <summary>
        /// Sets up the path walk state
        /// </summary>
        /// <param name="path">Path to walk</param>
        /// <param name="pt">Position of the object about to walk the path</param>
        /// <exception cref="ArgumentNullException">Thrown if path is null</exception>
        public PathWalkState( IPath path, Point3 pt )
        {
            if ( path == null )
            {
                throw new ArgumentNullException( "path" );
            }

            m_Path = path;
            m_T = path.GetClosestPoint( pt );
            path.GetFrame( m_T, out m_Point, out m_Direction );
        }