190811 c1
This commit is contained in:
@@ -6,6 +6,9 @@ Imports OpenTK
|
||||
Imports OpenTK.Graphics.OpenGL
|
||||
Imports Pilz.S3DFileParser
|
||||
Imports Point = System.Drawing.Point
|
||||
Imports KeyboardState = OpenTK.Input.KeyboardState
|
||||
Imports Keyboard = OpenTK.Input.Keyboard
|
||||
Imports Key = OpenTK.Input.Key
|
||||
|
||||
Namespace PreviewN
|
||||
|
||||
@@ -20,7 +23,7 @@ Namespace PreviewN
|
||||
Private camMtx As Matrix4 = Matrix4.Identity
|
||||
Private savedCamPos As New Vector3
|
||||
Private _isMouseDown As Boolean = False
|
||||
Private myPressedKeys As New List(Of Keys)
|
||||
'Private myPressedKeys As New List(Of Keys)
|
||||
Private isDeactivated As Boolean = False
|
||||
Private ReadOnly myModels As New Dictionary(Of Object3D, Renderer)
|
||||
|
||||
@@ -29,11 +32,11 @@ Namespace PreviewN
|
||||
Public Property Scaling As Single = 500.0F
|
||||
Public Property ClearColor As Color = Color.CornflowerBlue
|
||||
|
||||
Public ReadOnly Property PressedKeys As IReadOnlyList(Of Keys)
|
||||
Get
|
||||
Return myPressedKeys
|
||||
End Get
|
||||
End Property
|
||||
'Public ReadOnly Property PressedKeys As IReadOnlyList(Of Keys)
|
||||
' Get
|
||||
' Return myPressedKeys
|
||||
' End Get
|
||||
'End Property
|
||||
|
||||
Public ReadOnly Property Camera As Camera
|
||||
Get
|
||||
@@ -55,13 +58,17 @@ Namespace PreviewN
|
||||
|
||||
Private ReadOnly Property IsStrgPressed As Boolean
|
||||
Get
|
||||
Return myPressedKeys.Contains(Keys.ControlKey)
|
||||
'Return myPressedKeys.Contains(Keys.ControlKey)
|
||||
Dim state As KeyboardState = Keyboard.GetState()
|
||||
Return state(Key.ControlLeft) OrElse state(Key.ControlRight)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private ReadOnly Property IsShiftPressed As Boolean
|
||||
Get
|
||||
Return myPressedKeys.Contains(Keys.ShiftKey)
|
||||
'Return myPressedKeys.Contains(Keys.ShiftKey)
|
||||
Dim state As KeyboardState = Keyboard.GetState()
|
||||
Return state(Key.ShiftLeft) OrElse state(Key.ShiftRight)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
@@ -286,44 +293,74 @@ UVs:{0}{0}{5}",
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub HandlesOnKeyDown(sender As Object, e As KeyEventArgs) Handles glControl1.KeyDown
|
||||
If Not myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Add(e.KeyCode)
|
||||
End Sub
|
||||
'Public Sub HandlesOnKeyDown(sender As Object, e As KeyEventArgs) Handles glControl1.KeyDown
|
||||
' If Not myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Add(e.KeyCode)
|
||||
'End Sub
|
||||
|
||||
Public Sub HandlesOnKeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
|
||||
If myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Remove(e.KeyCode)
|
||||
End Sub
|
||||
'Public Sub HandlesOnKeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
|
||||
' If myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Remove(e.KeyCode)
|
||||
'End Sub
|
||||
|
||||
Public Sub MoveCameraViaWASDQE()
|
||||
Dim moveSpeed As Integer = Convert.ToInt32(Math.Round((If(IsShiftPressed, 60, 30)) * (MyCamera.CamSpeedMultiplier), 0))
|
||||
Dim allowCamMove As Boolean = Not (IsMouseDown AndAlso IsShiftPressed)
|
||||
|
||||
For Each k As Keys In myPressedKeys
|
||||
If allowCamMove Then
|
||||
Select Case k
|
||||
Case Keys.W
|
||||
'camera.Move(moveSpeed, moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraMatrixWithScrollWheel(moveSpeed, camMtx)
|
||||
savedCamPos = MyCamera.Position
|
||||
Case Keys.S
|
||||
'camera.Move(-moveSpeed, -moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraMatrixWithScrollWheel(-moveSpeed, camMtx)
|
||||
savedCamPos = MyCamera.Position
|
||||
Case Keys.A
|
||||
'camera.Move(-moveSpeed, 0, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(-moveSpeed, 0, camMtx)
|
||||
Case Keys.D
|
||||
'camera.Move(moveSpeed, 0, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(moveSpeed, 0, camMtx)
|
||||
Case Keys.E
|
||||
'camera.Move(0, -moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(0, -moveSpeed, camMtx)
|
||||
Case Keys.Q
|
||||
'camera.Move(0, moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(0, moveSpeed, camMtx)
|
||||
End Select
|
||||
'For Each k As Keys In myPressedKeys
|
||||
' If allowCamMove Then
|
||||
' Select Case k
|
||||
' Case Keys.W
|
||||
' 'camera.Move(moveSpeed, moveSpeed, camMtx)
|
||||
' MyCamera.UpdateCameraMatrixWithScrollWheel(moveSpeed, camMtx)
|
||||
' savedCamPos = MyCamera.Position
|
||||
' Case Keys.S
|
||||
' 'camera.Move(-moveSpeed, -moveSpeed, camMtx)
|
||||
' MyCamera.UpdateCameraMatrixWithScrollWheel(-moveSpeed, camMtx)
|
||||
' savedCamPos = MyCamera.Position
|
||||
' Case Keys.A
|
||||
' 'camera.Move(-moveSpeed, 0, camMtx)
|
||||
' MyCamera.UpdateCameraOffsetDirectly(-moveSpeed, 0, camMtx)
|
||||
' Case Keys.D
|
||||
' 'camera.Move(moveSpeed, 0, camMtx)
|
||||
' MyCamera.UpdateCameraOffsetDirectly(moveSpeed, 0, camMtx)
|
||||
' Case Keys.E
|
||||
' 'camera.Move(0, -moveSpeed, camMtx)
|
||||
' MyCamera.UpdateCameraOffsetDirectly(0, -moveSpeed, camMtx)
|
||||
' Case Keys.Q
|
||||
' 'camera.Move(0, moveSpeed, camMtx)
|
||||
' MyCamera.UpdateCameraOffsetDirectly(0, moveSpeed, camMtx)
|
||||
' End Select
|
||||
' End If
|
||||
'Next
|
||||
If allowCamMove Then
|
||||
Dim state As KeyboardState = Keyboard.GetState
|
||||
|
||||
If state(Key.W) Then
|
||||
'camera.Move(moveSpeed, moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraMatrixWithScrollWheel(moveSpeed, camMtx)
|
||||
savedCamPos = MyCamera.Position
|
||||
End If
|
||||
Next
|
||||
If state(Key.S) Then
|
||||
'camera.Move(-moveSpeed, -moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraMatrixWithScrollWheel(-moveSpeed, camMtx)
|
||||
savedCamPos = MyCamera.Position
|
||||
End If
|
||||
If state(Key.A) Then
|
||||
'camera.Move(-moveSpeed, 0, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(-moveSpeed, 0, camMtx)
|
||||
End If
|
||||
If state(Key.D) Then
|
||||
'camera.Move(moveSpeed, 0, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(moveSpeed, 0, camMtx)
|
||||
End If
|
||||
If state(Key.E) Then
|
||||
'camera.Move(0, -moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(0, -moveSpeed, camMtx)
|
||||
End If
|
||||
If state(Key.Q) Then
|
||||
'camera.Move(0, moveSpeed, camMtx)
|
||||
MyCamera.UpdateCameraOffsetDirectly(0, moveSpeed, camMtx)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Camera_NeedSelectedObject(e As Camera.NeedSelectedObjectEventArgs) Handles MyCamera.NeedSelectedObject
|
||||
|
||||
Reference in New Issue
Block a user