Exemplo n.º 1
0
        public GameScreen(ContentManager content, GraphicsDeviceManager graphics, Camera camera, InputManager input)
        {
            GameState.Current    = new GameState(camera, GridSize, content);
            mGroundPlaneRenderer = new PlaneRenderer(graphics, camera, new BasicEffect(graphics.GraphicsDevice)
            {
                TextureEnabled = true,
                Texture        = content.Load <Texture2D>("textures/ground_sand")
            });
            mHeroEffect = content.Load <Effect>("effects/HeroEffect").Clone();
            mHeroEffectPlaneRenderer   = new PlaneRenderer(graphics, camera, mHeroEffect);
            LoadAndSaveManager.Current = new LoadAndSaveManager(GridSize, camera, this, content);
            mWhitePixel = new Texture2D(graphics.GraphicsDevice, 1, 1);
            mWhitePixel.SetData(new[] { Color.White });
            mGraphics    = graphics;
            mCamera      = camera;
            mInput       = input;
            BuildManager = new BuildManager(input);
            BuildManagerWrapper.Init(BuildManager);
            BuildManagerWrapper.LoadInputManager(input);
            GameStateWrapper.LoadInputManager(input);
            input.SetSelectAction(SelectUnits);
            mFontMenu  = content.Load <SpriteFont>("fonts/Menu");
            mFontSmall = content.Load <SpriteFont>("fonts/Small");

            LoadAndSaveManager.Current.LoadMap("map01", true);
            mStatusBarRenderer = new StatusBarRenderer(graphics.GraphicsDevice, content, camera);
            camera.Position    = new Vector3(GridSize / -2f, GridSize * GridSize, 4 * GridSize);
            GameStateWrapper.StartGame();
        }
Exemplo n.º 2
0
        public SfmlRenderer(Config config, RenderWindow window, CommonResource resource)
        {
            try
            {
                Console.Write("Initialize renderer: ");

                this.config = config;

                config.video_gamescreensize  = Math.Clamp(config.video_gamescreensize, 0, this.MaxWindowSize);
                config.video_gammacorrection = Math.Clamp(config.video_gammacorrection, 0, this.MaxGammaCorrectionLevel);

                this.sfmlWindow = window;
                this.palette    = resource.Palette;

                this.sfmlWindowWidth  = (int)window.Size.X;
                this.sfmlWindowHeight = (int)window.Size.Y;

                if (config.video_highresolution)
                {
                    this.screen            = new DrawScreen(640, 400);
                    this.sfmlTextureWidth  = 512;
                    this.sfmlTextureHeight = 1024;
                }
                else
                {
                    this.screen            = new DrawScreen(320, 200);
                    this.sfmlTextureWidth  = 256;
                    this.sfmlTextureHeight = 512;
                }

                this.sfmlTextureData = new byte[4 * this.screen.Width * this.screen.Height];

                this.sfmlTexture = new Texture((uint)this.sfmlTextureWidth, (uint)this.sfmlTextureHeight);
                this.sfmlSprite  = new Sprite(this.sfmlTexture);

                this.sfmlSprite.Position = new Vector2f(0, 0);
                this.sfmlSprite.Rotation = 90;
                var scaleX = (float)this.sfmlWindowWidth / this.screen.Width;
                var scaleY = (float)this.sfmlWindowHeight / this.screen.Height;
                this.sfmlSprite.Scale = new Vector2f(scaleY, -scaleX);

                this.sfmlStates = new RenderStates(BlendMode.None);

                this.menu            = new MenuRenderer(this.screen);
                this.threeD          = new ThreeDRenderer(resource, this.screen, config.video_gamescreensize);
                this.statusBar       = new StatusBarRenderer(this.screen);
                this.intermission    = new IntermissionRenderer(this.screen);
                this.openingSequence = new OpeningSequenceRenderer(this.screen, this);
                this.autoMap         = new AutoMapRenderer(this.screen);
                this.finale          = new FinaleRenderer(resource, this.screen);

                this.pause = Patch.FromWad("M_PAUSE");

                var scale = this.screen.Width / 320;
                this.wipeBandWidth = 2 * scale;
                this.wipeBandCount = this.screen.Width / this.wipeBandWidth + 1;
                this.wipeHeight    = this.screen.Height / scale;
                this.wipeBuffer    = new byte[this.screen.Data.Length];

                this.palette.ResetColors(SfmlRenderer.gammaCorrectionParameters[config.video_gammacorrection]);

                Console.WriteLine("OK");
            }
            catch (Exception e)
            {
                Console.WriteLine("Failed");
                this.Dispose();
                ExceptionDispatchInfo.Throw(e);
            }
        }
        internal CaseSelectionView(DeviceResources deviceResources, TextureLoader loader)
        {
            this.loader = loader;
            //Top
            view[0] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y3, Constants.Z2),
                topLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y4, Constants.Z2),
                bottomRight: new Vector3(Constants.X00 + 0.005f, Constants.Y3, Constants.Z1),
                topRight: new Vector3(Constants.X00 + 0.005f, Constants.Y4, Constants.Z1))
            {
                TextPosition = new Vector2(20, 10),
                Text         = "Select Case",
                FontSize     = 40.0f,
                ImageWidth   = 960,
                ImageHeight  = 80,
            };

            //Header
            view[1] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y2, Constants.Z2),
                topLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y3, Constants.Z2),
                bottomRight: new Vector3(Constants.X00 + 0.005f, Constants.Y2, Constants.Z1),
                topRight: new Vector3(Constants.X00 + 0.005f, Constants.Y3, Constants.Z1))
            {
                TextPosition    = new Vector2(20, 10),
                FontSize        = 40.0f,
                ImageWidth      = 960,
                ImageHeight     = 80,
                BackgroundColor = Windows.UI.Colors.LightGray,
            };

            //Content
            view[2] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y1, Constants.Z2),
                topLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y2, Constants.Z2),
                bottomRight: new Vector3(Constants.X00 + 0.005f, Constants.Y1, Constants.Z1),
                topRight: new Vector3(Constants.X00 + 0.005f, Constants.Y2, Constants.Z1))
            {
                TextPosition    = new Vector2(20, 10),
                Text            = "asd",
                FontSize        = 40.0f,
                ImageWidth      = 960,
                ImageHeight     = 1344,
                BackgroundColor = Windows.UI.Colors.White,
            };

            //Bottom
            view[3] = new CaseIDSelectionRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y0, Constants.Z2),
                topLeft: new Vector3(Constants.X00 + 0.005f, Constants.Y1, Constants.Z2),
                bottomRight: new Vector3(Constants.X00 + 0.005f, Constants.Y0, Constants.Z1),
                topRight: new Vector3(Constants.X00 + 0.005f, Constants.Y1, Constants.Z1))
            {
                TextPosition    = new Vector2(20, 10),
                Text            = "qwe",
                FontSize        = 40.0f,
                ImageWidth      = 960,
                ImageHeight     = 80,
                BackgroundColor = Windows.UI.Colors.LightGray,
            };
            SetSelectionText();
            ShowMenu();
        }
Exemplo n.º 4
0
        protected BaseView(
            ImageViewerMain main,
            DeviceResources deviceResources,
            TextureLoader loader) : base(main, loader)
        {
            navigationFrame = new NavigationRenderer(
                deviceResources: deviceResources,
                loader: loader,
                view: this,
                depth: 0.005f,
                thickness: 0.002f,
                topLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z1 + Constants.DistanceFromUser),
                bottomLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z1 + Constants.DistanceFromUser),
                topRight: new Vector3(Constants.X01, Constants.Y2, Constants.Z0 + Constants.DistanceFromUser))
            {
                RotationY = 45,
            };


            settingViewer = new SettingViewer(main, deviceResources, loader);

            statusItems = new BasePlaneRenderer[24];

            statusItems[0] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X01, Constants.Y3, Constants.Z0),
                topLeft: new Vector3(Constants.X01, Constants.Y4, Constants.Z0),
                bottomRight: new Vector3(Constants.X02, Constants.Y3, Constants.Z0),
                topRight: new Vector3(Constants.X02, Constants.Y4, Constants.Z0))
            {
                TextPosition = new Vector2(20, 10),
                Text         = "WSI",
                FontSize     = 40.0f,
                ImageWidth   = 640,
            };

            statusItems[1] = new ZoomRenderer(
                view: this,
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X02, Constants.Y3, Constants.Z0),
                topLeft: new Vector3(Constants.X02, Constants.Y4, Constants.Z0),
                bottomRight: new Vector3(Constants.X05, Constants.Y3, Constants.Z0),
                topRight: new Vector3(Constants.X05, Constants.Y4, Constants.Z0))
            {
                ImageWidth = 720
            };

            statusItems[2] = new MemoryUseRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X05, Constants.Y3, Constants.Z0),
                topLeft: new Vector3(Constants.X05, Constants.Y4, Constants.Z0),
                bottomRight: new Vector3(Constants.X06, Constants.Y3, Constants.Z0),
                topRight: new Vector3(Constants.X06, Constants.Y4, Constants.Z0))
            {
                ImageWidth = 160
            };

            statusItems[3] = new FpsRenderer(
                view: this,
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X06, Constants.Y3, Constants.Z0),
                topLeft: new Vector3(Constants.X06, Constants.Y4, Constants.Z0),
                bottomRight: new Vector3(Constants.X07, Constants.Y3, Constants.Z0),
                topRight: new Vector3(Constants.X07, Constants.Y4, Constants.Z0))
            {
                ImageWidth = 160
            };

            statusItems[4] = new ClockRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X07, Constants.Y3, Constants.Z0),
                topLeft: new Vector3(Constants.X07, Constants.Y4, Constants.Z0),
                bottomRight: new Vector3(Constants.X09, Constants.Y3, Constants.Z0),
                topRight: new Vector3(Constants.X09, Constants.Y4, Constants.Z0))
            {
                ImageWidth = 240
            };

            statusItems[5] = new NameRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X01, Constants.Y2, Constants.Z0),
                topLeft: new Vector3(Constants.X01, Constants.Y3, Constants.Z0),
                bottomRight: new Vector3(Constants.X04, Constants.Y2, Constants.Z0),
                topRight: new Vector3(Constants.X04, Constants.Y3, Constants.Z0))
            {
                TextPosition    = new Vector2(10, 10),
                ImageWidth      = 960,
                ImageHeight     = 48,
                FontSize        = 25.0f,
                BackgroundColor = Colors.LightGray,
                Index           = 0
            };

            statusItems[6] = new NameRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X04, Constants.Y2, Constants.Z0),
                topLeft: new Vector3(Constants.X04, Constants.Y3, Constants.Z0),
                bottomRight: new Vector3(Constants.X09, Constants.Y2, Constants.Z0),
                topRight: new Vector3(Constants.X09, Constants.Y3, Constants.Z0))
            {
                TextPosition    = new Vector2(10, 10),
                ImageWidth      = 960,
                ImageHeight     = 48,
                FontSize        = 25.0f,
                BackgroundColor = Colors.LightGray,
                Index           = 1
            };

            statusItems[7] = new KeyRenderer(
                view: this,
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X01, Constants.Y0, Constants.Z0),
                topLeft: new Vector3(Constants.X01, Constants.Y1, Constants.Z0),
                bottomRight: new Vector3(Constants.X03, Constants.Y0, Constants.Z0),
                topRight: new Vector3(Constants.X03, Constants.Y1, Constants.Z0))
            {
                ImageWidth = 800
            };

            statusItems[8] = new DebugRenderer(
                view: this,
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X03, Constants.Y0, Constants.Z0),
                topLeft: new Vector3(Constants.X03, Constants.Y1, Constants.Z0),
                bottomRight: new Vector3(Constants.X06, Constants.Y0, Constants.Z0),
                topRight: new Vector3(Constants.X06, Constants.Y1, Constants.Z0))
            {
                ImageWidth = 720
            };

            statusItems[9] = new TileCounterRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X06, Constants.Y0, Constants.Z0),
                topLeft: new Vector3(Constants.X06, Constants.Y1, Constants.Z0),
                bottomRight: new Vector3(Constants.X08, Constants.Y0, Constants.Z0),
                topRight: new Vector3(Constants.X08, Constants.Y1, Constants.Z0))
            {
                ImageWidth = 240
            };

            statusItems[10] = new ScalerRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X08, Constants.Y0, Constants.Z0),
                topLeft: new Vector3(Constants.X08, Constants.Y1, Constants.Z0),
                bottomRight: new Vector3(Constants.X09, Constants.Y0, Constants.Z0),
                topRight: new Vector3(Constants.X09, Constants.Y1, Constants.Z0))
            {
                ImageWidth = 160
            };

            statusItems[11] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y3, Constants.Z1),
                topLeft: new Vector3(Constants.X00, Constants.Y4, Constants.Z1),
                bottomRight: new Vector3(Constants.X01, Constants.Y3, Constants.Z0),
                topRight: new Vector3(Constants.X01, Constants.Y4, Constants.Z0))
            {
                TextPosition = new Vector2(20, 10),
                Text         = "Z7",
                FontSize     = 40.0f,
                ImageWidth   = 960,
                ImageHeight  = 80,
            };

            statusItems[12] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z1),
                topLeft: new Vector3(Constants.X00, Constants.Y3, Constants.Z1),
                bottomRight: new Vector3(Constants.X01, Constants.Y2, Constants.Z0),
                topRight: new Vector3(Constants.X01, Constants.Y3, Constants.Z0))
            {
                TextPosition    = new Vector2(10, 10),
                Text            = "", //"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                FontSize        = 25.0f,
                ImageWidth      = 960,
                ImageHeight     = 48,
                BackgroundColor = Colors.LightGray
            };

            //statusItems[13] = new ImageRenderer(
            //    deviceResources: deviceResources,
            //    loader: loader,
            //    bottomLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z1),
            //    topLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z1),
            //    bottomRight: new Vector3(Constants.X01, Constants.Y1, Constants.Z0),
            //    topRight: new Vector3(Constants.X01, Constants.Y2, Constants.Z0))
            //{
            //    Position = new Vector3(0.0f, 0.0f, Constants.DistanceFromUser),
            //    TextureFile = "Content\\Textures\\base.png",
            //};

            histo = new HistologyView(deviceResources: deviceResources, loader: loader);

            statusItems[13] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y0, Constants.Z1),
                topLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z1),
                bottomRight: new Vector3(Constants.X01, Constants.Y0, Constants.Z0),
                topRight: new Vector3(Constants.X01, Constants.Y1, Constants.Z0))
            {
                TextPosition = new Vector2(20, 10),
                Text         = "", //"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                ImageWidth   = 960,
            };

            statusItems[14] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X09, Constants.Y3, Constants.Z0),
                topLeft: new Vector3(Constants.X09, Constants.Y4, Constants.Z0),
                bottomRight: new Vector3(Constants.X10, Constants.Y3, Constants.Z1),
                topRight: new Vector3(Constants.X10, Constants.Y4, Constants.Z1))
            {
                TextPosition = new Vector2(20, 10),
                Text         = "Klinisk anamnes, frågeställning, preparat beskrivning",
                FontSize     = 38.0f,
                ImageWidth   = 960,
            };

            statusItems[15] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X09, Constants.Y1, Constants.Z0),
                topLeft: new Vector3(Constants.X09, Constants.Y3, Constants.Z0),
                bottomRight: new Vector3(Constants.X10, Constants.Y1, Constants.Z1),
                topRight: new Vector3(Constants.X10, Constants.Y3, Constants.Z1))
            {
                TextPosition = new Vector2(20, 10),
                Text         = @"Anamnestext. 

Frågeställning / diagnos:                                               malignitet? staging

Anamnes: 
misstänkt distal kolangiocc, op pylorusbevarande whipple.tacksam us.

Preparatets natur:                                                          whipple resektat
Antal burkar / rör:                                                         1
Patienten ingår i standardiserade vårdförlopp:             nej",

                FontSize        = 34.0f,
                ImageWidth      = 1280,
                ImageHeight     = 1344,
                BackgroundColor = Colors.LightGray,
            };

            statusItems[16] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X09, Constants.Y0, Constants.Z0),
                topLeft: new Vector3(Constants.X09, Constants.Y1, Constants.Z0),
                bottomRight: new Vector3(Constants.X10, Constants.Y0, Constants.Z1),
                topRight: new Vector3(Constants.X10, Constants.Y1, Constants.Z1))
            {
                TextPosition = new Vector2(20, 10),
                Text         = "Provtagningsdatum:      2018-03-14 13:16 ",
                ImageWidth   = 960,
            };

            statusItems[17] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y3, Constants.Z2),
                topLeft: new Vector3(Constants.X00, Constants.Y4, Constants.Z2),
                bottomRight: new Vector3(Constants.X00, Constants.Y3, Constants.Z1),
                topRight: new Vector3(Constants.X00, Constants.Y4, Constants.Z1))
            {
                Text       = "", //"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                FontSize   = 40.0f,
                ImageWidth = 1440,
            };

            statusItems[18] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z2),
                topLeft: new Vector3(Constants.X00, Constants.Y3, Constants.Z2),
                bottomRight: new Vector3(Constants.X00, Constants.Y2, Constants.Z1),
                topRight: new Vector3(Constants.X00, Constants.Y3, Constants.Z1))
            {
                Text            = "", //"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                FontSize        = 25.0f,
                ImageWidth      = 1440,
                ImageHeight     = 48,
                BackgroundColor = Colors.LightGray,
            };

            statusItems[19] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y0, Constants.Z2),
                topLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z2),
                bottomRight: new Vector3(Constants.X00, Constants.Y0, Constants.Z1),
                topRight: new Vector3(Constants.X00, Constants.Y1, Constants.Z1))
            {
                Text       = "", //"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                ImageWidth = 1440,
            };

            statusItems[20] = new ImageRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y0, Constants.Z3 + Constants.Z1),
                topLeft: new Vector3(Constants.X00, Constants.Y4, Constants.Z3 + Constants.Z1),
                bottomRight: new Vector3(Constants.X00, Constants.Y0, Constants.Z3),
                topRight: new Vector3(Constants.X00, Constants.Y4, Constants.Z3))
            {
                Position    = new Vector3(0.0f, 0.0f, Constants.DistanceFromUser),
                TextureFile = "Content\\Textures\\help.jpg",
            };

            macro = new MacroView(deviceResources: deviceResources, loader: loader, connections: imageConnections);

            navMacroFrame = new NavigationFrameRenderer(deviceResources: deviceResources,
                                                        loader: loader,
                                                        depth: 0.005f,
                                                        thickness: 0.002f,
                                                        macro.Labels,
                                                        view: this,
                                                        topLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z2 + Constants.DistanceFromUser),
                                                        bottomLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z2 + Constants.DistanceFromUser),
                                                        topRight: new Vector3(Constants.X00, Constants.Y2, Constants.Z1 + Constants.DistanceFromUser))
                            //bottomRight: new Vector3(Constants.X00, Constants.Y1, Constants.Z1 + Constants.DistanceFromUser))
            {
                RotationY = 0,
            };
            //navMacroFrame.SetNavigationArea(690, 897, 3456, 2304, 0);
            navMacroFrame.SetNavigationArea(macro.labels[0]);

            //tl 690, 897,     tr 1399, 897,     br 690, 1416,    bl 1399, 1416


            ///Radiology Top bar
            statusItems[21] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y3, Constants.Z3),
                topLeft: new Vector3(Constants.X00, Constants.Y4, Constants.Z3),
                bottomRight: new Vector3(Constants.X00, Constants.Y3, Constants.Z2),
                topRight: new Vector3(Constants.X00, Constants.Y4, Constants.Z2))
                              //bottomLeft: new Vector3( Constants.X00, Constants.Y0, Constants.Z3 ),
                              //topLeft: new Vector3( Constants.X00, Constants.Y4, Constants.Z3 ),
                              //bottomRight: new Vector3( Constants.X00, Constants.Y0, Constants.Z2 ),
                              //topRight: new Vector3( Constants.X00, Constants.Y4, Constants.Z2 ),
            {
                TextPosition = new Vector2(20, 10),
                Text         = "MRI",
                FontSize     = 40.0f,
                ImageWidth   = 960,
                ImageHeight  = 80,
            };

            radiology = new RadiologyView(deviceResources: deviceResources, loader: loader, connections: imageConnections);

            navRadioFrame = new NavigationFrameRenderer(deviceResources: deviceResources,
                                                        loader: loader,
                                                        depth: 0.005f,
                                                        thickness: 0.002f,
                                                        macro.Labels,
                                                        view: this,
                                                        topLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z3 + Constants.DistanceFromUser),
                                                        bottomLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z3 + Constants.DistanceFromUser),
                                                        topRight: new Vector3(Constants.X00, Constants.Y2, Constants.Z2 + Constants.DistanceFromUser))
                            //bottomRight: new Vector3(Constants.X00, Constants.Y1, Constants.Z1 + Constants.DistanceFromUser))
            {
                RotationY = 0,
            };

            //Radiology Top LightGray bar
            statusItems[22] = new StatusBarRenderer(
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z3),
                topLeft: new Vector3(Constants.X00, Constants.Y3, Constants.Z3),
                bottomRight: new Vector3(Constants.X00, Constants.Y2, Constants.Z2),
                topRight: new Vector3(Constants.X00, Constants.Y3, Constants.Z2))
            {
                Text            = "", //"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                FontSize        = 25.0f,
                ImageWidth      = 1440,
                ImageHeight     = 48,
                BackgroundColor = Colors.LightGray,
            };

            //Radiology Bottom bar
            statusItems[23] = new RadiologyIndexRenderer(
                rv: radiology,
                deviceResources: deviceResources,
                loader: loader,
                bottomLeft: new Vector3(Constants.X00, Constants.Y0, Constants.Z3),
                topLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z3),
                bottomRight: new Vector3(Constants.X00, Constants.Y0, Constants.Z2),
                topRight: new Vector3(Constants.X00, Constants.Y1, Constants.Z2))
            {
                Text       = "Image: 265", //"Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
                ImageWidth = 1440,
                FontSize   = 40.0f,
            };

            Pointers = new BasePointerRenderer[2];

            Pointers[0] = new PointerRenderer(this, navigationFrame, deviceResources, loader,
                                              new BasePointerRenderer.Corners(
                                                  topLeft: new Vector3(Constants.X01, Constants.Y2, Constants.DistanceFromUser),
                                                  bottomLeft: new Vector3(Constants.X01, Constants.Y1, Constants.DistanceFromUser),
                                                  topRight: new Vector3(Constants.X09, Constants.Y2, Constants.DistanceFromUser),
                                                  bottomRight: new Vector3(Constants.X09, Constants.Y1, Constants.DistanceFromUser)))
            {
                Position = new Vector3(0, 0, Constants.DistanceFromUser)
            };

            Pointers[1] = new BasePointerRenderer(navigationFrame, deviceResources, loader,
                                                  new BasePointerRenderer.Corners(
                                                      topLeft: new Vector3(Constants.X00, Constants.Y2, Constants.Z1 + Constants.DistanceFromUser),
                                                      bottomLeft: new Vector3(Constants.X00, Constants.Y1, Constants.Z1 + Constants.DistanceFromUser),
                                                      topRight: new Vector3(Constants.X01, Constants.Y2, Constants.Z0 + Constants.DistanceFromUser),
                                                      bottomRight: new Vector3(Constants.X01, Constants.Y1, Constants.Z0 + Constants.DistanceFromUser)))
            {
                RotationY = 45.0f,
                Position  = new Vector3(0, 0, Constants.DistanceFromUser)
            };

            caseView = new CaseSelectionView(deviceResources, loader);

            model = new ObjRenderer(deviceResources, loader)
            {
                Position = new Vector3(Constants.MX, Constants.MY, Constants.MZ)
            };
        }