190702 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
|
||||
|
||||
@@ -155,7 +155,7 @@ Namespace RenderingN
|
||||
indices.Add(curvi)
|
||||
curvi += 1
|
||||
|
||||
If verts IsNot Nothing Then
|
||||
If p.Vertex IsNot Nothing Then
|
||||
verts.Add(New Vector3(p.Vertex.X, p.Vertex.Y, p.Vertex.Z))
|
||||
Else
|
||||
verts.Add(New Vector3(0, 0, 0))
|
||||
@@ -260,9 +260,11 @@ Namespace RenderingN
|
||||
Public Sub DrawModel(mode As RenderMode)
|
||||
DrawModel(mode, Vector3.Zero, Quaternion.Identity, New Vector3(ModelScaling, ModelScaling, ModelScaling))
|
||||
End Sub
|
||||
|
||||
Public Sub DrawModel(mode As RenderMode, pos As Vector3, rot As Quaternion)
|
||||
DrawModel(mode, pos, rot, New Vector3(ModelScaling, ModelScaling, ModelScaling))
|
||||
End Sub
|
||||
|
||||
Public Sub DrawModel(mode As RenderMode, pos As Vector3, rot As Quaternion, scale As Vector3)
|
||||
If mode = RenderMode.None Then Return
|
||||
If Not _HasRendered Then Return
|
||||
@@ -277,6 +279,7 @@ Namespace RenderingN
|
||||
GL.EnableClientState(ArrayCap.TextureCoordArray)
|
||||
|
||||
For Each mesh As Mesh In obj3d.Meshes
|
||||
|
||||
If VertexColorBuffers.ContainsKey(mesh) Then
|
||||
GL.EnableClientState(ArrayCap.ColorArray)
|
||||
ElseIf NormalBuffers.ContainsKey(mesh) Then
|
||||
|
||||
Reference in New Issue
Block a user