
/*
 * $Id: $
 *
 * Description  : Data structure for externally controlling the AR HUD
 * Author       : 
 *
 * Purpose      :
 *     Long description of what the file is for.
 */


#ifndef __AR_HUD_DATA__H__
#define __AR_HUD_DATA__H__

namespace VRUT
{
	struct ArHudData
	{
		enum {
			GROUP_COMBI=1,
			GROUP_ACC=2,
			GROUP_LANE=4,
			GROUP_POSITION=8,
			GROUP_ROAD_STRIPS=16,
			GROUP_ROAD_VEHICLE=32,
			GROUP_NAVIGATION=64
		};
		
		enum {
			SHOW_SPEED = 1,
			SHOW_NAVIGATION=2,
			SHOW_SIGNS=4,
			SHOW_ACC=8,
			SHOW_LANE_ASSIST=16,
			SHOW_LANE_ASSIST_VEHICLE=32,
			SHOW_LANE_ASSIST_DISTANCE=64,
			SHOW_ROAD_DISTANCE_BARS=128,
			SHOW_ROAD_LEFT_STRIP=256,
			SHOW_ROAD_RIGHT_STRIP=512,
			SHOW_ROAD_VEHICLE_HIGHLIGHT=1024,
			SHOW_ROAD_NAVIGATION=2048
		};

		unsigned short groupMask; // 2B
		unsigned short statusMask; //2B

		
		// other values that can be set
		char hudHeight; // 1B height of the AR HUD 
		unsigned char accValue;  // 1B

		unsigned char laneAssistStripLeft; // 1B
		unsigned char laneAssistStripRight; // 1B
		
		unsigned char vehicleDistance; // 1B number of distance bars to highlight
		unsigned char vehicleHighlight; // 1B (0 white, 1 green, 2 red)

		ArHudData():groupMask(0), statusMask(0), laneAssistStripLeft(0), laneAssistStripRight(0), vehicleDistance(0), vehicleHighlight(0) {}
		
		
		ArHudData(const ArHudData &other)
		{
			*this = other;
		}
	};
}

#endif // __AR_HUD_DATA__H__
