package paramsim.paramicssimulator;

/**
 * A class which encapsulates all information pertaining to a ParamicSimulator
 * camera.
 * 
 * @author Greg Eddington
 */
public class SimulationCamera 
{
	/**
	 * A road direction enumeration.
	 * 
	 * @author Greg Eddington
	 */
	public static enum ROAD_DIRECTION
	{
		/** North **/
		NORTH("NB"),
		
		/** South **/
		SOUTH("SB"),
		
		/** East **/
		EAST("EB"),
		
		/** West **/
		WEST("WB");
		
		/** The XML string of the field, used for updating camera_status.xml **/
		public String xml;
		
		/** Constructor **/
		private ROAD_DIRECTION(String str)
		{
			this.xml = str;
		}
	}
	
	/** Camera ID **/
	public int id;
	
	/** The route the camera is watching **/
	public String route;
	
	/** The route direction **/
	public ROAD_DIRECTION direction;
	
	/** The postmile of the route **/
	public float postmile;
	
	/** The average speed the camera is recording North or East **/
	public float averageSpeedNE;
	
	/** The average speed the camera is recording South or West **/
	public float averageSpeedSW;
	
	/** The minimum speed for the camera to show stopped footage **/
	public float minStoppedSpeed;
	
	/** The maxmimum speed for the camera to show stopped footage **/
	public float maxStoppedSpeed;
	
	/** The minimum speed for the camera to show slowed footage **/
	public float minSlowSpeed;
	
	/** The maximum speed for the camera to show slowed footage **/
	public float maxSlowSpeed;
	
	/** The minimum speed for the camera to show free flow footage **/
	public float minFreeFlowSpeed;
	
	/** The maximum speed for the camera to show free flow footage **/
	public float maxFreeFlowSpeed;
}
