////////////////////////////////////////////////////////////////////////////////////////////////
		/*--------------------------------------------------------------------------------------------*/
		public MenuState(IInputProvider pInputProv, NavRoot pNavRoot,InteractionSettings pSettings){
			vInputProv = pInputProv;
			vSettings = pSettings;

			Arc = new ArcState(pNavRoot, vSettings);
			Cursor = new CursorState(vSettings);

			OnSideChange += (() => {});
		}
		////////////////////////////////////////////////////////////////////////////////////////////////
		/*--------------------------------------------------------------------------------------------*/
		public ArcState(NavRoot pNavRoot, InteractionSettings pSettings) {
			vNavRoot = pNavRoot;
			vSegments = new List<SegmentState>();
			vSettings = pSettings;

			IsLeft = vSettings.IsMenuOnLeftSide;

			OnLevelChange += (d => {});

			vNavRoot.OnLevelChange += HandleLevelChange;
			HandleLevelChange(0);
		}
 ////////////////////////////////////////////////////////////////////////////////////////////////
 /*--------------------------------------------------------------------------------------------*/
 public HovercastNavProvider()
 {
     vRoot = new NavRoot();
 }
		////////////////////////////////////////////////////////////////////////////////////////////////
		/*--------------------------------------------------------------------------------------------*/
		public HovercastNavProvider() {
			vRoot = new NavRoot();
		}