using System;

namespace Icarus.Input.MovementEvents {
	
    /// <summary>
    /// Stores event information for when a device is moved.
    /// </summary>
	public class MovementEvent {
	
        #region Instance Variables
        /// <summary>
	    /// The change incurred in the x-direction by the device.
	    /// </summary>
        private int deltaX = 0;
        /// <summary>
        /// The change incurred in the y-direction by the device.
        /// </summary>
        private int deltaY = 0;
        /// <summary>
        /// The change incurred in the z-direction by the device.
        /// </summary>
        private int deltaZ = 0;
        #endregion
        
        #region Accessors and Modifiers
        /// <summary>
        /// Delta X. The change in the x-coordinate of the device.
        /// </summary>
        public int DX {
            get { return deltaX; }
            set { deltaX = value; }
        }

        /// <summary>
        /// Delta Y. The change in the y-coordinate of the device.
        /// </summary>
        public int DY {
            get { return deltaY; }
            set { deltaY = value; }
        }

        /// <summary>
        /// Delta Z. The change in the z-coordinate of the device.
        /// </summary>
        public int DZ {
            get { return deltaZ; }
            set { deltaZ = value; }
        }
        #endregion

        #region General Use
        /// <summary>
        /// Overridden string representation of this object.
        /// </summary>
        /// <returns>String representation of this object.</returns>
        public override string ToString() {
            return "DX=" + deltaX + ", DY=" + deltaY + ", DZ=" + deltaZ;
        }
        #endregion

    }
}
