Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using OpenTK;
- using OpenTK.Graphics.OpenGL;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Wicked.Global;
- using Wicked.Shaders;
- using System.Windows.Forms;
- namespace Wicked.Editor
- {
- public class SceneCamera
- {
- private enum MouseButton
- {
- None,
- Left,
- Right
- }
- public Matrix4 Proj;
- public Matrix4 View;
- public float MoveSpeed = 0.2f;
- public float MouseSensitivity = 0.0025f;
- private MouseButton _currentMouse = MouseButton.None;
- private Vector3 _cameraPos = Vector3.Zero;
- public SceneCamera()
- {
- Proj = Matrix4.CreatePerspectiveFieldOfView((float)MathHelper.DegreesToRadians(45.0), Links.GLControl.Width / Links.GLControl.Height, 0.1f, 100.0f);
- View = Matrix4.Identity;
- Links.GLControl.KeyDown += Engine_KeyDown;
- Links.GLControl.MouseDown += GLControl_MouseDown;
- Links.GLControl.MouseUp += GLControl_MouseUp;
- }
- private void GLControl_MouseUp(object sender, MouseEventArgs e)
- {
- _currentMouse = MouseButton.None;
- }
- private void GLControl_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- //AddRotation(OpenTK.Input.Mouse.GetState().X, OpenTK.Input.Mouse.GetState().Y);
- }
- }
- private void Engine_KeyDown(object sender, KeyEventArgs e)
- {
- switch(e.KeyCode)
- {
- case Keys.W:
- Move(0, 0, 1);
- break;
- case Keys.S:
- Move(0, 0, -1);
- break;
- case Keys.A:
- Move(1, 0, 0);
- break;
- case Keys.D:
- Move(-1, 0, 0);
- break;
- default:
- break;
- }
- }
- public void Update()
- {
- //if (_lastMousePos != new Vector2(OpenTK.Input.Mouse.GetState().X, OpenTK.Input.Mouse.GetState().Y))
- //CheckMouse();
- }
- public void Move(float x, float y, float z)
- {
- _cameraPos += new Vector3(x,y,z) * MoveSpeed;
- View = Matrix4.LookAt(_cameraPos, _cameraPos + Vector3.UnitZ, Vector3.UnitY);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement