using System;
using System.Collections.Generic;
using System.Text;

namespace CommonUsage.Protocols.VDA5050.Objects
{
    /// <summary>
    /// Defines the position on a map in a global project-specific world coordinate system.
    /// Each floor has its own map.
    /// All maps shall use the same project-specific global origin.
    /// </summary>
    public class nodePosition
    {
        /// <summary>
        /// X-position on the map in reference to the map coordinate system.
        /// Precision is up to the specific implementation.
        /// </summary>
        public double x;

        /// <summary>
        /// Y-position on the map in reference to the map coordinate system.
        /// Precision is up to the specific implementation.
        /// </summary>
        public double y;

        /// <summary>
        /// Range: [-Pi ... Pi]
        /// Absolute orientation of the AGV on the node.
        /// Optional: vehicle can plan the path by itself. If defined, the AGV has to assume the theta angle on this node.
        /// If previous edge disallows rotation, the AGV shall rotate on the node.
        /// If following edge has a differing orientation defined but disallows rotation,
        /// the AGV is to rotate on the node to the edges desired rotation before entering the edge.
        /// </summary>
        public double theta;
    }
}
