Isosurface.Camera.Update C# (CSharp) Method

Update() public method

public Update ( bool forceView = false ) : void
forceView bool
return void
        public void Update(bool forceView = false)
        {
            float speed = 0.05f;
            if (Keyboard.GetState().IsKeyDown(Keys.LeftShift))
                speed *= 10.0f * (float)(Game1.Resolution / 32);
            if (Keyboard.GetState().IsKeyDown(Keys.W))
                Position += Vector3.Transform(Vector3.Forward * speed, Rotation);
            else if (Keyboard.GetState().IsKeyDown(Keys.S))
                Position += Vector3.Transform(Vector3.Backward * speed, Rotation);
            if (Keyboard.GetState().IsKeyDown(Keys.D))
                Position += Vector3.Transform(Vector3.Right * speed, Rotation);
            else if (Keyboard.GetState().IsKeyDown(Keys.A))
                Position += Vector3.Transform(Vector3.Left * speed, Rotation);

            MouseState currentMouseState = Mouse.GetState();
            if (currentMouseState != OriginalMouseState)
            {
                float xDifference = currentMouseState.X - OriginalMouseState.X;
                float yDifference = currentMouseState.Y - OriginalMouseState.Y;
                RotationX -= RotationSpeed * xDifference * 0.01f;
                RotationY -= RotationSpeed * yDifference * 0.01f;
                if (MouseLocked)
                    Mouse.SetPosition((int)_center.X, (int)_center.Y);
                OriginalMouseState = Mouse.GetState();
                UpdateViewMatrix();
            }
            else if (forceView)
                UpdateViewMatrix();
        }

Usage Example

コード例 #1
0
        protected override void Initialize()
        {
            //DualMarchingSquaresNeilson.MarchingSquaresTableGenerator.PrintCaseTable();

            ModelIndex = -1;
            if (ModelIndex > -1)
            {
                Sampler.ReadData(Models[ModelIndex], Resolution);
            }

            float n = SimplexNoise.Noise(0, 0);

            RState          = new RasterizerState();
            RState.CullMode = (Sampler.ImageData != null ? CullMode.CullCounterClockwiseFace : CullMode.CullClockwiseFace);
            GraphicsDevice.RasterizerState     = RState;
            graphics.PreferredBackBufferWidth  = 1600;
            graphics.PreferredBackBufferHeight = 900;
            graphics.PreferMultiSampling       = true;
            graphics.ApplyChanges();

            IsMouseVisible = true;

            effect = new BasicEffect(GraphicsDevice);

            QualityIndex = 0;
            NextAlgorithm();

            effect.VertexColorEnabled = true;

            Camera = new Camera(GraphicsDevice, new Vector3(-Resolution, Resolution, -Resolution), 1f);
            if (SelectedAlgorithm.Is3D)
            {
                Camera.Update(true);
                effect.View = Camera.View;
            }
            last_state = Keyboard.GetState();

            DrawMode      = Isosurface.DrawModes.Mesh;
            WireframeMode = WireframeModes.Fill;

            base.Initialize();
        }
All Usage Examples Of Isosurface.Camera::Update