private void Initialize()
        {
            // create Camera
            _camera = new ArcBallCamera(MapData.GetWorldPosition(20, 20), 0, MathHelper.PiOver2 * 0.5f * 0.8f * 0.8f, 0, MathHelper.PiOver2, CameraDistance, 30, 100, Manager.GraphicsDevice);

            // zooming
            zooming = new Zooming("Middle", "VeryFar", 2f, "Far", 1.3f, "Middle", 1.0f, "Near", 0.7f, "VeryNear", 0.5f, "Detail", 0.2f);
            zooming.ZoomChanged += delegate(float zoom) { _camera.Distance = CameraDistance * zoom; };

            _effect = Manager.Content.Load<Effect>("Content/Effects/Series4Effects");

            Mouse.SetPosition(Manager.GraphicsDevice.Viewport.Width / 2, Manager.GraphicsDevice.Viewport.Height / 2);

            _skyDome = Manager.Content.Load<Model>("Content/Models/dome");
            _skyDome.Meshes[0].MeshParts[0].Effect = _effect.Clone();

            _cloudMap = Manager.Content.Load<Texture2D>("Content/Models/cloudMap");

            _mapRenderer.Initialize();
            _mapRenderer.LoadContent();

            // init complete view
            defaultViewport = new Viewport();
            defaultViewport.X = 0;
            defaultViewport.Y = 0;
            defaultViewport.Width = Manager.GraphicsDevice.Viewport.Width;
            defaultViewport.Height = Manager.GraphicsDevice.Viewport.Height;

            // init control view
            controlViewport = new Viewport();
            controlViewport.X = 4;
            controlViewport.Y = 27;
            controlViewport.Width = Manager.GraphicsDevice.Viewport.Width - 8;
            controlViewport.Height = Manager.GraphicsDevice.Viewport.Height - 32;
        }
        public void Draw(GameTime gameTime, ArcBallCamera camera)
        {
            if (_map != null)
            {
                hMesh.Draw(gameTime, camera.View, camera.Projection, camera.Position);
                _riverMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero);
                _cursorsMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero);
                _borderMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero);
                _farmMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero);
                _roadMesh.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero);

                if( MainWindow.Config.ResourceIcons )
                    _resourceBillboards.Draw(camera.View, camera.Projection, camera.Position, camera.Up, camera.Right);

                //foreach (ForestEntity forest in _forests)
                //    if (forest.Point.DistanceTo(Center) < 15)
                //        forest.Draw(gameTime);

                if (FogOfWarEnabled)
                    _hiddenMeshContainer.Draw(gameTime, camera.View, camera.Projection, Vector3.Zero);

                foreach (AbstractPlayerData pl in MainWindow.Game.Players)
                    pl.Draw(gameTime);

                //_manager.GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise;
            }
        }