public void Initialize()
 {
     isTransitioning    = true;
     fullscreen         = false;
     previousScreenType = ScreenTypes.Intro;
     activeScreenType   = ScreenTypes.Intro;
     resolutions        = new List <DisplayMode>();
     foreach (DisplayMode mode in GraphicsAdapter.DefaultAdapter.SupportedDisplayModes)
     {
         if (mode.Width >= 800)
         {
             resolutions.Add(mode);
         }
     }
     resolutions.Sort(delegate(DisplayMode a, DisplayMode b)
     {
         int xdiff = a.Width.CompareTo(b.Width);
         if (xdiff != 0)
         {
             return(xdiff);
         }
         else
         {
             return(a.Height.CompareTo(b.Height));
         }
     });
     dimensions = new Vector2(resolutions[0].Width, resolutions[0].Height);
 }
		public GameListScreen(Engine engine, ScreenTypes screen)
		{
			this.type = screen;
			this.engine = engine;

			_refresh = new CallDelayer(100, 500, (obj) => Refresh());
		}
Esempio n. 3
0
        public GameListScreen(Engine engine, ScreenTypes screen)
        {
            this.type   = screen;
            this.engine = engine;

            _refresh = new CallDelayer(100, 500, (obj) => Refresh());
        }
        /// <summary>
        /// <see cref="IMultiWindowService"/>
        /// </summary>
        /// <param name="screen"><see cref="IMultiWindowService"/></param>
        /// <returns><see cref="IMultiWindowService"/></returns>
        public string GetPageTitleByScreen(ScreenTypes screen)
        {
            ResourceLoader loader = new ResourceLoader();

            switch (screen)
            {
            case ScreenTypes.LANDING:
                return(loader.GetString("LandingScreenTitle"));

            case ScreenTypes.WORKFORCE:
                return(loader.GetString("WorkforceScreenTitle"));

            case ScreenTypes.STRATEGY:
                return(loader.GetString("StrategyScreenTitle"));

            case ScreenTypes.TASKS:
                return(loader.GetString("TasksScreenTitle"));

            case ScreenTypes.CUSTOMERS:
                return(loader.GetString("CustomersScreenTitle"));

            default:
                return(string.Empty);
            }
        }
        public static void CreateUIScreen(ScreenTypes aScreenType)
        {
            GameObject curSelected = EF_Editor_Utils.GetSelectedObject();

            GameObject curScreenGO = null;

            switch (aScreenType)
            {
            case ScreenTypes.Base:
                curScreenGO = new GameObject("New Screen", typeof(EF_Base_Screen), typeof(RectTransform));
                break;

            case ScreenTypes.Timed:
                curScreenGO = new GameObject("New Screen", typeof(EF_Timed_Screen), typeof(RectTransform));
                break;

            default:
                break;
            }

            if (curSelected)
            {
                curScreenGO.transform.SetParent(curSelected.transform);
            }

            Selection.activeGameObject = curScreenGO;
        }
Esempio n. 6
0
        public void changeScreen(ScreenTypes screenId)
        {
            //teardown previous screen
            foreach (IBankScreen c in _view._content.Children)
            {
                c.CloseScreen();
            }
            _view._content.Children.Clear();

            //create screen based on type
            switch (screenId)
            {
            case ScreenTypes.UserSelection:
                _view._content.Children.Add(new UserSelection());
                break;

            case ScreenTypes.ShowTransactions:
                _view._content.Children.Add(new ShowTransactionsScreen(BankApplicationState.AllTransactions));
                break;
            }

            //enable new screen
            foreach (IBankScreen c in _view._content.Children)
            {
                c.ShowScreen();
            }
        }
Esempio n. 7
0
 protected void CallFormRequestEvent(ScreenTypes form, params string[] Param)
 {
     // Event will be null if there are no subscribers
     if (FormRequestEvent != null)
     {
         FormRequestEvent(form, Param);
     }
 }
Esempio n. 8
0
        public GameListScreenAdapter(GameListScreen owner, GameController ctrl, ScreenTypes screen) : base()
        {
            this.ctrl   = ctrl;
            this.owner  = owner;
            this.screen = screen;

            _directionSize = (int)(ctrl.Resources.DisplayMetrics.Density * 32.0);
        }
    public void SwitchScreenTo(ScreenTypes screen)
    {
        Screens[currentScreenIndex].SetActive(false);
        currentScreenIndex = (int)screen;
        Screens[currentScreenIndex].SetActive(true);

        UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(GetComponent <RectTransform>());
    }
Esempio n. 10
0
        public static void Initialise()
        {
            CurrentScreen = MainMenuScreen.Instance;
            ScreenType    = ScreenTypes.MainMenuScreen;

            Camera.Load();

            CurrentScreen.Open();
        }
Esempio n. 11
0
 public GameScreen(Game game, ContentManager content, SpriteBatch spriteBatch, ScreenTypes screenType)
 {
     this.game        = game;
     this.content     = content;
     this.spriteBatch = spriteBatch;
     this.screenType  = screenType;
     screenWidth      = game.Window.ClientBounds.Width;
     screenHeight     = game.Window.ClientBounds.Height;
     Hide();
 }
Esempio n. 12
0
            /*
             * Enable the screen with the associated ScreenType
             * Created by: Michael Watt
             * Last Updated: 2018.10.22
             */
            private void EnableScreen(ScreenTypes screenToEnable)
            {
                DisableScreen();
                //Debug.Log(screenToEnable);

                //change the indices first
                m_ActiveScreens.Push(m_MenuScreens[screenToEnable]);
                m_ActiveScreens.Peek().gameObject.SetActive(true);

                //EnableMenuButtons();
            }
Esempio n. 13
0
        /// <summary>
        /// Set next screen as current.
        /// </summary>
        public void SwitchScreen(ScreenTypes type, params object[] param)
        {
            CurrentScreen.UnloadContent();
            CurrentScreen = Screens[type];

            if (!CurrentScreen.IsInitialized)
            {
                CurrentScreen.Initialize(GraphDev, Core, param);
            }

            CurrentScreen.LoadContent(Content);
        }
Esempio n. 14
0
    // HELPER FUNCTIONS

    BaseScreenController FindScreen(ScreenTypes type)
    {
        foreach (var baseScreenController in baseScreenControllers)
        {
            if (baseScreenController.GetScreenType() == type)
            {
                return(baseScreenController);
            }
        }

        Debug.Log("No base screen type found");
        return(baseScreenControllers[0]);
    }
Esempio n. 15
0
            private void ChangeScreen(ScreenTypes screenIndex)
            {
                //may be useful for a menu with multiple screens
                DisableAllScreens();

                //enable the main menu screen
                if (m_MenuScreens[screenIndex].m_MainMenuEnabled)
                {
                    EnableScreen(ScreenTypes.MainMenu);
                    //DisableMenuButtons();
                }

                //enable the new screen, making it active.
                EnableScreen(screenIndex);
            }
Esempio n. 16
0
    void ProcessButtonInput(ScreenTypes screenType)
    {
        _currScreenController.OnScreenExit();
        _currScreenController.OnScreenDisable();
        _currScreenController.exitMinigame -= ForceExitMinigame;

        _prevScreenController = _currScreenController;
        _currScreenController = FindScreen(screenType);

        uiManager.ChangeBgColor(_currScreenController.bgColor);
        _currScreenController.exitMinigame += ForceExitMinigame;

        _currScreenController.OnScreenEnable();
        _currScreenController.OnScreenEnter();
    }
Esempio n. 17
0
        private IScreen CreateScreen(ScreenTypes screenType)
        {
            switch (screenType)
            {
            case ScreenTypes.MAIN_MENU:
                return(new MainMenu(this));    // Returns new main menu.

            case ScreenTypes.GAME_SCREEN:
                return(new GameScreen(this));    // Returns new game screen.

            default:
                /* If the screentype doesnt exist, then return null, this shouldn't happen anyway with the use of a enum,
                 * due to predetermined values. */
                return(null);
            }
        }
        /// <summary>
        /// Constructs a new screen manager component.
        /// </summary>
        public ScreenManager(Game game, float vCursorScale)
            : base(game)
        {
            // we must set EnabledGestures before we can query for them, but
            // we don't assume the game wants to read them.
            TouchPanel.EnabledGestures    = GestureType.None;
            _contentManager               = game.Content;
            _contentManager.RootDirectory = "Content";
            _input = new InputState(this);

            _screens         = new List <GameScreen>();
            _screensToUpdate = new List <GameScreen>();
            _transitions     = new List <RenderTarget2D>();

            this.ScreenTypeCurrent = ScreenTypes.None;

            _graphics   = new GraphicsDeviceManager(game);
            cursorScale = vCursorScale;
        }
        /// <summary>
        /// Constructs a new screen manager component.
        /// </summary>
        public ScreenManager(Game game, float vCursorScale)
            : base(game)
        {
            // we must set EnabledGestures before we can query for them, but
            // we don't assume the game wants to read them.
            TouchPanel.EnabledGestures = GestureType.None;
            _contentManager = game.Content;
            _contentManager.RootDirectory = "Content";
            _input = new InputState(this);

            _screens = new List<GameScreen>();
            _screensToUpdate = new List<GameScreen>();
            _transitions = new List<RenderTarget2D>();

            this.ScreenTypeCurrent = ScreenTypes.None;

            _graphics = new GraphicsDeviceManager(game);
            cursorScale = vCursorScale;
        }
        private Page GetPageInstance(ScreenTypes screen)
        {
            switch (screen)
            {
            case ScreenTypes.WORKFORCE:
                return(new Workforce());

            case ScreenTypes.STRATEGY:
                return(new Strategy());

            case ScreenTypes.TASKS:
                return(new Tasks());

            case ScreenTypes.CUSTOMERS:
                return(new Customers());

            default:
                return(null);
            }
        }
Esempio n. 21
0
            /*
             * Open the menu starting at the main menu
             * Created by Adam Brown
             * Last Updated 2018.10.22 by Michael Watt
             */
            public void OpenMenu(ScreenTypes screen = ScreenTypes.MainMenu)
            {
                if (m_IsMenuOpen)
                {
                    EnableScreen(screen);
                    return;
                }

                DisableAllScreens();

                if (screen != ScreenTypes.MainMenu)
                {
                    EnableScreen(ScreenTypes.MainMenu);
                }

                EnableScreen(screen);

                m_CloseButton.SetActive(true);

                m_IsMenuOpen = true;
            }
Esempio n. 22
0
 // Pass in a screen type value, and either create the screen if it doesn't exist, or set it as active screen.
 public void StartScreen(ScreenTypes screenType)
 {
     if (screens.ContainsKey(screenType))    // Checks if the screen has been made.
     {
         activeScreen = screens[screenType]; // If so it sets it as active screen.
         activeScreen.Set();
         return;
     }
     else
     {
         screens.Add(screenType, CreateScreen(screenType)); // If not, it makes the screen.
         activeScreen = screens[screenType];                // Sets the active screen to the one just made.
         if (activeScreen != null)                          // If we could make the screen, return.
         {
             return;
         }
         else
         {
             Console.WriteLine("SCREEN_MANAGER: Screen type not found."); // If not, print an error.
         }
     }
 }
        /// <summary>
        /// <see cref="IMultiWindowService"/>
        /// </summary>
        /// <param name="screen"><see cref="IMultiWindowService"/></param>
        /// <returns><see cref="IMultiWindowService"/></returns>
        public async Task <bool> OpenNewWindowForScreen(ScreenTypes screen)
        {
            Page instance = GetPageInstance(screen);

            if (instance != null)
            {
                CoreWindow window = null;
                await CoreApplication.CreateNewView().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    window    = CoreWindow.GetForCurrentThread();
                    var frame = new Frame();
                    frame.Navigate(instance.GetType());
                    Window.Current.Content = frame;
                    Window.Current.Activate();
                    ApplicationView.GetForCurrentView().Title = GetPageTitleByScreen(screen);
                });

                var viewId = ApplicationView.GetApplicationViewIdForWindow(window);
                return(await ApplicationViewSwitcher.TryShowAsStandaloneAsync(viewId));
            }

            return(false);
        }
Esempio n. 24
0
        public static void EnterScreen(ScreenTypes screenType)
        {
            ScreenType = screenType;
            switch (screenType)
            {
            case ScreenTypes.MainMenuScreen:
                NextScreen = MainMenuScreen.Instance;
                break;

            case ScreenTypes.GameScreen:
                NextScreen = GameScreen.Instance;
                break;

            case ScreenTypes.EditorLevelSelectScreen:
                NextScreen = EditorLevelSelectScreen.Instance;
                break;

            case ScreenTypes.EditorScreen:
                NextScreen = EditorScreen.Instance;
                break;
            }
            CurrentScreen.Close(ExitAction.ExitScreen);
        }
Esempio n. 25
0
        //스크린 모드를 설정하고 화면을 초기화한다.
        private void SetScreenMode(ScreenTypes screenType)
        {
            //상태 저장
            this.screenType = screenType;
            System.Diagnostics.Debug.WriteLine(screenType.ToString());
            switch (screenType)
            {
            case ScreenTypes.PowerPoint:
                SetPPTSlideShowButtonVisibility(false);
                SetPPTButtonVisibilitiy(true);
                break;

            case ScreenTypes.PowerPointSlideShow2007:
                HideAllChildren();
                SetPPTButtonVisibilitiy(false);
                SetPPTSlideShowButtonVisibility(true);
                break;

            case ScreenTypes.PowerPointSlideShow2010:
                HideAllChildren();
                SetPPTButtonVisibilitiy(false);
                SetPPTSlideShowButtonVisibility(true);
                //UIUtils.SetVisibility(btnPptBpen, false);
                break;

            case ScreenTypes.PowerPointSlideShow2013:
                HideAllChildren();
                SetPPTButtonVisibilitiy(false);
                SetPPTSlideShowButtonVisibility(true);
                break;

            default:
                SetPPTButtonVisibilitiy(false);
                SetPPTSlideShowButtonVisibility(false);
                break;
            }
        }
Esempio n. 26
0
        public static Bitmap MakeWarpMap(ProjectorEntry pe, double domeSize, bool radialDistortion, List <GroundTruthPoint> gtPointList, ScreenTypes screenType)
        {
            List <Vector2d> PointTo   = new List <Vector2d>();
            List <Vector2d> PointFrom = new List <Vector2d>();

            double xFactor = pe.Width / 512.0;
            double yFactor = pe.Height / 512.0;

            Bitmap     bmp     = new Bitmap(512, 512);
            FastBitmap fastBmp = new FastBitmap(bmp);

            SolveProjector spProjector = new SolveProjector(pe, domeSize, ProjectionType.Projector, screenType, SolveParameters.Default);

            spProjector.RadialDistorion = radialDistortion;

            SolveProjector spView = new SolveProjector(pe, domeSize, ProjectionType.View, ScreenTypes.Spherical, SolveParameters.Default);

            spView.RadialDistorion = false;


            foreach (GroundTruthPoint gt in gtPointList)
            {
                PointFrom.Add(new Vector2d((double)gt.X / (double)pe.Width * 512, (double)gt.Y / (double)pe.Height * 512));

                Vector2d pntOutTarget = spView.ProjectPoint(new Vector2d(gt.Az, gt.Alt));
                Vector2d AltAzMapped  = spProjector.GetCoordinatesForScreenPoint(gt.X, gt.Y);
                Vector2d pntOutMapped = spView.ProjectPoint(new Vector2d(AltAzMapped.X, AltAzMapped.Y));

                pntOutTarget.X = pntOutTarget.X * (512 / 2.0) + (512 / 2.0);
                pntOutTarget.Y = pntOutTarget.Y * (-512 / 2.0) + (512 / 2.0);
                pntOutMapped.X = pntOutMapped.X * (512 / 2.0) + (512 / 2.0);
                pntOutMapped.Y = pntOutMapped.Y * (-512 / 2.0) + (512 / 2.0);

                PointTo.Add(new Vector2d(pntOutTarget.X - pntOutMapped.X, pntOutTarget.Y - pntOutMapped.Y));
            }



            //Matrix3d projMat = spView.GetCameraMatrix();
            unsafe
            {
                fastBmp.LockBitmap();
                for (int y = 0; y < 512; y++)
                {
                    for (int x = 0; x < 512; x++)
                    {
                        Vector2d pnt = spProjector.GetCoordinatesForScreenPoint(x * xFactor, y * yFactor);

                        Vector2d pntOut = spView.ProjectPoint(pnt);

                        // Map
                        pntOut.X = pntOut.X * (512 / 2.0) + (512 / 2.0);
                        pntOut.Y = pntOut.Y * (-512 / 2.0) + (512 / 2.0);

                        pntOut = MapPoint(new Vector2d(x, y), pntOut, PointTo, PointFrom);

                        pntOut.X = (pntOut.X - (512 / 2.0)) / (512 / 2.0);
                        pntOut.Y = (pntOut.Y - (512 / 2.0)) / (-512 / 2.0);
                        // End Map


                        double xo = pntOut.X * (4096 / 2.0) + (4096 / 2.0);
                        double yo = pntOut.Y * (-4096 / 2.0) + (4096 / 2.0);

                        int blue          = (int)xo & 255;
                        int green         = (int)yo & 255;
                        int red           = (((int)yo) >> 4 & 240) + (((int)xo) >> 8 & 15);
                        *   fastBmp[x, y] = new PixelData(red, green, blue, 255);
                    }
                }
                fastBmp.UnlockBitmap();
            }
            return(bmp);
        }
Esempio n. 27
0
 public ActionScreen(Game game, ContentManager content, SpriteBatch spriteBatch, ScreenTypes screenType) : base(game, content, spriteBatch, screenType)
 {
     Initalize();
     LoadContent();
     currentLvlUpFrame = 0;
     effectWidth       = levelUpWaves.Width / levelUpColumns;
     effectHeight      = levelUpWaves.Height / levelUpRows;
     gateWidth         = endGate.Width / gateColumns;
     gateHeight        = endGate.Height / gateRows;
 }
		public GameListScreenAdapter(GameListScreen owner, GameController ctrl, ScreenTypes screen) : base()
		{
			this.ctrl = ctrl;
			this.owner = owner;
			this.screen = screen;

			_directionSize = (int)(ctrl.Resources.DisplayMetrics.Density * 32.0);

		}
Esempio n. 29
0
 public MenuScreen(Game game, ContentManager content, SpriteBatch spriteBatch, ScreenTypes screenType) : base(game, content, spriteBatch, screenType)
 {
     mainMenu     = new MainMenu(game, content, spriteBatch, "backgrounds/MainMenu", MenuItemTypes.MainMenu);
     instructions = new MenuItem(game, content, spriteBatch, "backgrounds/InstructionsItem", MenuItemTypes.Instructions);
     controls     = new MenuItem(game, content, spriteBatch, "backgrounds/ControlsItem", MenuItemTypes.Controls);
     credits      = new MenuItem(game, content, spriteBatch, "backgrounds/CreditsItem", MenuItemTypes.Credits);
     activeMenu   = mainMenu;
     activeMenu.Show();
     menuComponents = new List <MenuComponent>
     {
         mainMenu,
         instructions,
         controls,
         credits
     };
 }
        public SolveProjector(ProjectorEntry pe, double radius, ProjectionType type, ScreenTypes tranformType, SolveParameters solveParameters)
        {
            projectionType = type;
            screenType = tranformType;
            this.solveParameters = solveParameters;

            switch (type)
            {
                case ProjectionType.View:
                    {

                        Fov.Value = pe.ViewProjection.FOV;
                        Aspect.Value = pe.ViewProjection.Aspect;
                        OffsetX.Value = pe.ViewProjection.XOffset;
                        OffsetY.Value = pe.ViewProjection.YOffset;
                        RadialCenterX.Value = pe.ViewProjection.RadialCenterX;
                        RadialCenterY.Value = pe.ViewProjection.RadialCenterY;
                        RadialAmountX.Value = pe.ViewProjection.RadialAmountX;
                        RadialAmountY.Value = pe.ViewProjection.RadialAmountY;

                        Pitch.Value = pe.ViewTransform.Pitch;
                        Heading.Value = pe.ViewTransform.Heading;
                        Roll.Value = pe.ViewTransform.Roll;
                        X.Value = -pe.ViewTransform.X;
                        Y.Value = pe.ViewTransform.Y;
                        Z.Value = pe.ViewTransform.Z;
                    }
                    break;
                case ProjectionType.FishEye:
                case ProjectionType.Projector:
                    {
                        Fov.Value = pe.ProjectorProjection.FOV;
                        Aspect.Value = pe.ProjectorProjection.Aspect;
                        OffsetX.Value = pe.ProjectorProjection.XOffset;
                        OffsetY.Value = pe.ProjectorProjection.YOffset;
                        RadialCenterX.Value = pe.ProjectorProjection.RadialCenterX;
                        RadialCenterY.Value = pe.ProjectorProjection.RadialCenterY;
                        RadialAmountX.Value = pe.ProjectorProjection.RadialAmountX;
                        RadialAmountY.Value = pe.ProjectorProjection.RadialAmountY;

                        Pitch.Value = pe.ProjectorTransform.Pitch;
                        Heading.Value = pe.ProjectorTransform.Heading;
                        Roll.Value = pe.ProjectorTransform.Roll;
                        X.Value = -pe.ProjectorTransform.X;
                        Y.Value = pe.ProjectorTransform.Y;
                        Z.Value = pe.ProjectorTransform.Z;
                    }
                    break;
                case ProjectionType.Solved:
                    {
                        Fov.Value = pe.SolvedProjection.FOV;
                        Aspect.Value = pe.SolvedProjection.Aspect;
                        OffsetX.Value = pe.SolvedProjection.XOffset;
                        OffsetY.Value = pe.SolvedProjection.YOffset;
                        RadialCenterX.Value = pe.ProjectorProjection.RadialCenterX;
                        RadialCenterY.Value = pe.ProjectorProjection.RadialCenterY;
                        RadialAmountX.Value = pe.ProjectorProjection.RadialAmountX;
                        RadialAmountY.Value = pe.ProjectorProjection.RadialAmountY;

                        Pitch.Value = pe.SolvedTransform.Pitch;
                        Heading.Value = pe.SolvedTransform.Heading;
                        Roll.Value = pe.SolvedTransform.Roll;
                        X.Value = -pe.SolvedTransform.X;
                        Y.Value = pe.SolvedTransform.Y;
                        Z.Value = pe.SolvedTransform.Z;
                    }
                    break;
            }

            width = pe.Width;
            height = pe.Height;
            sphereRadius = radius;
        }
		/// <summary>
		/// Shows the screen.
		/// </summary>
		/// <param name="screen">Screen to show.</param>
		/// <param name="obj">Object to show if screen is ScreenType.Details.</param>
		public void ShowScreen(ScreenTypes screen, UIObject obj)
		{
			bool showBackButton = true;
			var bar = SupportActionBar;
			var ft = this.SupportFragmentManager.BeginTransaction ();
			var activeFragment = this.SupportFragmentManager.FindFragmentByTag("active");

			// If there is an active remove timer, stop it, because we bring the next screen onto the device
			if (removeTimer != null) {
				removeTimer.Stop();
				removeTimer = null;
			}

			// A new screen replaces a dialog screen, if there is one
			if (screenStack.Count > 0 && screenStack.Peek() is GameDialogScreen)
				screenStack.Pop();

			// A new screen replaces a screen of same type, if there is one
			if (screenStack.Count > 0 && ((screenStack.Peek() is GameDetailScreen && screen == ScreenTypes.Details) || ((screenStack.Peek() is GameMapScreen && screen == ScreenTypes.Map))))
				screenStack.Pop();

			switch (screen) 
			{
			case ScreenTypes.Main:
				// Clear stack, because main screen is always the first
				screenStack.Clear();
				// Push new main screen onto stack
				screenStack.Push(new GameMainScreen (engine));
				// Don't show back button on main screen
				showBackButton = false;
				// Set title for activity
				ft.SetBreadCrumbTitle (cartridge.Name);
				break;
			case ScreenTypes.Locations:
			case ScreenTypes.Items:
			case ScreenTypes.Inventory:
			case ScreenTypes.Tasks:
				// Clear stack, except main screen, which is always the first
				while(screenStack.Count > 1)
					screenStack.Pop();
				screenStack.Push(new GameListScreen (engine, screen));
				break;
			case ScreenTypes.Details:
				// Only push a new one, if it isn't the same
				if (!(screenStack.Peek() is GameDetailScreen) || !((GameDetailScreen)screenStack.Peek()).ActiveObject.Equals(obj))
					screenStack.Push(new GameDetailScreen (this, obj));
				break;
			case ScreenTypes.Map:
				// Only push a new one, if it isn't the same
				if (!(screenStack.Peek() is GameMapScreen) || !((GameMapScreen)screenStack.Peek()).ActiveObject.Equals(obj))
					screenStack.Push(new GameMapScreen (this, obj));
				break;
			}

			// Show icon as back button
			bar.SetDisplayHomeAsUpEnabled (showBackButton);

			// Bring topmost fragment to screen
			ft.SetTransition (global::Android.Support.V4.App.FragmentTransaction.TransitNone);
			ft.Replace (Resource.Id.fragment, screenStack.Peek(), "active");
			ft.Commit ();

			// Save actuall values for later use
			if (screen != ScreenTypes.Dialog && screen != ScreenTypes.Map) {
				activeScreen = screen;
				activeObject = obj;
			}
		}
Esempio n. 32
0
        /// <summary>
        /// Shows the screen.
        /// </summary>
        /// <param name="screen">Screen to show.</param>
        /// <param name="obj">Object to show if screen is ScreenType.Details.</param>
        public void ShowScreen(ScreenTypes screen, UIObject obj)
        {
            bool showBackButton = true;
            var  bar            = SupportActionBar;
            var  ft             = this.SupportFragmentManager.BeginTransaction();
            var  activeFragment = this.SupportFragmentManager.FindFragmentByTag("active");

            // If there is an active remove timer, stop it, because we bring the next screen onto the device
            if (removeTimer != null)
            {
                removeTimer.Stop();
                removeTimer = null;
            }

            // A new screen replaces a dialog screen, if there is one
            if (screenStack.Count > 0 && screenStack.Peek() is GameDialogScreen)
            {
                screenStack.Pop();
            }

            // A new screen replaces a screen of same type, if there is one
            if (screenStack.Count > 0 && ((screenStack.Peek() is GameDetailScreen && screen == ScreenTypes.Details) || ((screenStack.Peek() is GameMapScreen && screen == ScreenTypes.Map))))
            {
                screenStack.Pop();
            }

            switch (screen)
            {
            case ScreenTypes.Main:
                // Clear stack, because main screen is always the first
                screenStack.Clear();
                // Push new main screen onto stack
                screenStack.Push(new GameMainScreen(engine));
                // Don't show back button on main screen
                showBackButton = false;
                // Set title for activity
                ft.SetBreadCrumbTitle(cartridge.Name);
                break;

            case ScreenTypes.Locations:
            case ScreenTypes.Items:
            case ScreenTypes.Inventory:
            case ScreenTypes.Tasks:
                // Clear stack, except main screen, which is always the first
                while (screenStack.Count > 1)
                {
                    screenStack.Pop();
                }
                screenStack.Push(new GameListScreen(engine, screen));
                break;

            case ScreenTypes.Details:
                // Only push a new one, if it isn't the same
                if (!(screenStack.Peek() is GameDetailScreen) || !((GameDetailScreen)screenStack.Peek()).ActiveObject.Equals(obj))
                {
                    screenStack.Push(new GameDetailScreen(this, obj));
                }
                break;

            case ScreenTypes.Map:
                // Only push a new one, if it isn't the same
                if (!(screenStack.Peek() is GameMapScreen) || !((GameMapScreen)screenStack.Peek()).ActiveObject.Equals(obj))
                {
                    screenStack.Push(new GameMapScreen(this, obj));
                }
                break;
            }

            // Show icon as back button
            bar.SetDisplayHomeAsUpEnabled(showBackButton);

            // Bring topmost fragment to screen
            ft.SetTransition(global::Android.Support.V4.App.FragmentTransaction.TransitNone);
            ft.Replace(Resource.Id.fragment, screenStack.Peek(), "active");
            ft.Commit();

            // Save actuall values for later use
            if (screen != ScreenTypes.Dialog && screen != ScreenTypes.Map)
            {
                activeScreen = screen;
                activeObject = obj;
            }
        }
Esempio n. 33
0
        public SolveProjector(ProjectorEntry pe, double radius, ProjectionType type, ScreenTypes tranformType, SolveParameters solveParameters)
        {
            this.projectionType  = type;
            this.screenType      = tranformType;
            this.solveParameters = solveParameters;

            switch (type)
            {
            case ProjectionType.View:
            {
                Fov.Value           = pe.ViewProjection.FOV;
                Aspect.Value        = pe.ViewProjection.Aspect;
                OffsetX.Value       = pe.ViewProjection.XOffset;
                OffsetY.Value       = pe.ViewProjection.YOffset;
                RadialCenterX.Value = pe.ViewProjection.RadialCenterX;
                RadialCenterY.Value = pe.ViewProjection.RadialCenterY;
                RadialAmountX.Value = pe.ViewProjection.RadialAmountX;
                RadialAmountY.Value = pe.ViewProjection.RadialAmountY;

                Pitch.Value   = pe.ViewTransform.Pitch;
                Heading.Value = pe.ViewTransform.Heading;
                Roll.Value    = pe.ViewTransform.Roll;
                X.Value       = -pe.ViewTransform.X;
                Y.Value       = pe.ViewTransform.Y;
                Z.Value       = pe.ViewTransform.Z;
            }
            break;

            case ProjectionType.FishEye:
            case ProjectionType.Projector:
            {
                Fov.Value           = pe.ProjectorProjection.FOV;
                Aspect.Value        = pe.ProjectorProjection.Aspect;
                OffsetX.Value       = pe.ProjectorProjection.XOffset;
                OffsetY.Value       = pe.ProjectorProjection.YOffset;
                RadialCenterX.Value = pe.ProjectorProjection.RadialCenterX;
                RadialCenterY.Value = pe.ProjectorProjection.RadialCenterY;
                RadialAmountX.Value = pe.ProjectorProjection.RadialAmountX;
                RadialAmountY.Value = pe.ProjectorProjection.RadialAmountY;

                Pitch.Value   = pe.ProjectorTransform.Pitch;
                Heading.Value = pe.ProjectorTransform.Heading;
                Roll.Value    = pe.ProjectorTransform.Roll;
                X.Value       = -pe.ProjectorTransform.X;
                Y.Value       = pe.ProjectorTransform.Y;
                Z.Value       = pe.ProjectorTransform.Z;
            }
            break;

            case ProjectionType.Solved:
            {
                Fov.Value           = pe.SolvedProjection.FOV;
                Aspect.Value        = pe.SolvedProjection.Aspect;
                OffsetX.Value       = pe.SolvedProjection.XOffset;
                OffsetY.Value       = pe.SolvedProjection.YOffset;
                RadialCenterX.Value = pe.ProjectorProjection.RadialCenterX;
                RadialCenterY.Value = pe.ProjectorProjection.RadialCenterY;
                RadialAmountX.Value = pe.ProjectorProjection.RadialAmountX;
                RadialAmountY.Value = pe.ProjectorProjection.RadialAmountY;

                Pitch.Value   = pe.SolvedTransform.Pitch;
                Heading.Value = pe.SolvedTransform.Heading;
                Roll.Value    = pe.SolvedTransform.Roll;
                X.Value       = -pe.SolvedTransform.X;
                Y.Value       = pe.SolvedTransform.Y;
                Z.Value       = pe.SolvedTransform.Z;
            }
            break;

            default:
                break;
            }

            useGrid = pe.UseGrid;

            width        = pe.Width;
            height       = pe.Height;
            sphereRadius = radius;

            if (useGrid)
            {
                LoadGrid(pe.Constraints);
            }
        }
        public static Bitmap MakeWarpMap(ProjectorEntry pe, double domeSize, bool radialDistortion, List<GroundTruthPoint> gtPointList, ScreenTypes screenType)
        {
            List<Vector2d> PointTo = new List<Vector2d>();
            List<Vector2d> PointFrom = new List<Vector2d>();

            double xFactor = pe.Width / 512.0;
            double yFactor = pe.Height / 512.0;

            Bitmap bmp = new Bitmap(512, 512);
            FastBitmap fastBmp = new FastBitmap(bmp);

            SolveProjector spProjector = new SolveProjector(pe, domeSize, ProjectionType.Projector, screenType, SolveParameters.Default);
            spProjector.RadialDistorion = radialDistortion;

            SolveProjector spView = new SolveProjector(pe, domeSize, ProjectionType.View, ScreenTypes.Spherical, SolveParameters.Default);
            spView.RadialDistorion = false;

            foreach (GroundTruthPoint gt in gtPointList)
            {
                PointFrom.Add(new Vector2d((double)gt.X / (double)pe.Width * 512, (double)gt.Y / (double)pe.Height * 512));

                Vector2d pntOutTarget = spView.ProjectPoint(new Vector2d(gt.Az, gt.Alt));
                Vector2d AltAzMapped = spProjector.GetCoordinatesForScreenPoint(gt.X,gt.Y);
                Vector2d pntOutMapped = spView.ProjectPoint(new Vector2d(AltAzMapped.X, AltAzMapped.Y));

                pntOutTarget.X = pntOutTarget.X *(512 / 2.0) + (512 / 2.0);
                pntOutTarget.Y = pntOutTarget.Y *(-512 / 2.0) + (512 / 2.0);
                pntOutMapped.X = pntOutMapped.X *(512 / 2.0) + (512 / 2.0);
                pntOutMapped.Y =  pntOutMapped.Y *(-512 / 2.0) + (512 / 2.0);

                PointTo.Add(new Vector2d(pntOutTarget.X - pntOutMapped.X, pntOutTarget.Y - pntOutMapped.Y));

            }

            //Matrix3d projMat = spView.GetCameraMatrix();
            unsafe
            {
                fastBmp.LockBitmap();
                for (int y = 0; y < 512; y++)
                {

                    for (int x = 0; x < 512; x++)
                    {
                        Vector2d pnt = spProjector.GetCoordinatesForScreenPoint(x * xFactor, y * yFactor);

                        Vector2d pntOut = spView.ProjectPoint(pnt);

                        // Map
                        pntOut.X = pntOut.X * (512 / 2.0) + (512 / 2.0);
                        pntOut.Y = pntOut.Y * (-512 / 2.0) + (512 / 2.0);

                        pntOut = MapPoint(new Vector2d(x,y), pntOut, PointTo, PointFrom);

                        pntOut.X = (pntOut.X - (512 / 2.0)) / (512 / 2.0);
                        pntOut.Y = (pntOut.Y - (512 / 2.0)) / (-512 / 2.0);
                        // End Map

                        double xo = pntOut.X * (4096 / 2.0) + (4096 / 2.0);
                        double yo = pntOut.Y * (-4096 / 2.0) + (4096 / 2.0);

                        int blue = (int)xo & 255;
                        int green = (int)yo & 255;
                        int red = (((int)yo) >> 4 & 240) + (((int)xo) >> 8 & 15);
                        *fastBmp[x, y] = new PixelData(red, green, blue, 255);

                    }
                }
                fastBmp.UnlockBitmap();

            }
            return bmp;
        }
Esempio n. 35
0
 protected void CallFormRequestEvent(ScreenTypes form, params string[] Param)
 {
     // Event will be null if there are no subscribers
     if (FormRequestEvent != null)
     {
         FormRequestEvent(form, Param);
     }
 }
Esempio n. 36
0
 public EndScreen(Game game, ContentManager content, SpriteBatch spriteBatch, ScreenTypes screenType) : base(game, content, spriteBatch, screenType)
 {
     Initalize();
     LoadContent();
 }