190702 c1
This commit is contained in:
@@ -6,6 +6,9 @@ Imports OpenTK
|
|||||||
Imports OpenTK.Graphics.OpenGL
|
Imports OpenTK.Graphics.OpenGL
|
||||||
Imports Pilz.S3DFileParser
|
Imports Pilz.S3DFileParser
|
||||||
Imports Point = System.Drawing.Point
|
Imports Point = System.Drawing.Point
|
||||||
|
Imports KeyboardState = OpenTK.Input.KeyboardState
|
||||||
|
Imports Keyboard = OpenTK.Input.Keyboard
|
||||||
|
Imports Key = OpenTK.Input.Key
|
||||||
|
|
||||||
Namespace PreviewN
|
Namespace PreviewN
|
||||||
|
|
||||||
@@ -20,7 +23,7 @@ Namespace PreviewN
|
|||||||
Private camMtx As Matrix4 = Matrix4.Identity
|
Private camMtx As Matrix4 = Matrix4.Identity
|
||||||
Private savedCamPos As New Vector3
|
Private savedCamPos As New Vector3
|
||||||
Private _isMouseDown As Boolean = False
|
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 isDeactivated As Boolean = False
|
||||||
Private ReadOnly myModels As New Dictionary(Of Object3D, Renderer)
|
Private ReadOnly myModels As New Dictionary(Of Object3D, Renderer)
|
||||||
|
|
||||||
@@ -29,11 +32,11 @@ Namespace PreviewN
|
|||||||
Public Property Scaling As Single = 500.0F
|
Public Property Scaling As Single = 500.0F
|
||||||
Public Property ClearColor As Color = Color.CornflowerBlue
|
Public Property ClearColor As Color = Color.CornflowerBlue
|
||||||
|
|
||||||
Public ReadOnly Property PressedKeys As IReadOnlyList(Of Keys)
|
'Public ReadOnly Property PressedKeys As IReadOnlyList(Of Keys)
|
||||||
Get
|
' Get
|
||||||
Return myPressedKeys
|
' Return myPressedKeys
|
||||||
End Get
|
' End Get
|
||||||
End Property
|
'End Property
|
||||||
|
|
||||||
Public ReadOnly Property Camera As Camera
|
Public ReadOnly Property Camera As Camera
|
||||||
Get
|
Get
|
||||||
@@ -55,13 +58,17 @@ Namespace PreviewN
|
|||||||
|
|
||||||
Private ReadOnly Property IsStrgPressed As Boolean
|
Private ReadOnly Property IsStrgPressed As Boolean
|
||||||
Get
|
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 Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Private ReadOnly Property IsShiftPressed As Boolean
|
Private ReadOnly Property IsShiftPressed As Boolean
|
||||||
Get
|
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 Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
@@ -286,44 +293,74 @@ UVs:{0}{0}{5}",
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub HandlesOnKeyDown(sender As Object, e As KeyEventArgs) Handles glControl1.KeyDown
|
'Public Sub HandlesOnKeyDown(sender As Object, e As KeyEventArgs) Handles glControl1.KeyDown
|
||||||
If Not myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Add(e.KeyCode)
|
' If Not myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Add(e.KeyCode)
|
||||||
End Sub
|
'End Sub
|
||||||
|
|
||||||
Public Sub HandlesOnKeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
|
'Public Sub HandlesOnKeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
|
||||||
If myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Remove(e.KeyCode)
|
' If myPressedKeys.Contains(e.KeyCode) Then myPressedKeys.Remove(e.KeyCode)
|
||||||
End Sub
|
'End Sub
|
||||||
|
|
||||||
Public Sub MoveCameraViaWASDQE()
|
Public Sub MoveCameraViaWASDQE()
|
||||||
Dim moveSpeed As Integer = Convert.ToInt32(Math.Round((If(IsShiftPressed, 60, 30)) * (MyCamera.CamSpeedMultiplier), 0))
|
Dim moveSpeed As Integer = Convert.ToInt32(Math.Round((If(IsShiftPressed, 60, 30)) * (MyCamera.CamSpeedMultiplier), 0))
|
||||||
Dim allowCamMove As Boolean = Not (IsMouseDown AndAlso IsShiftPressed)
|
Dim allowCamMove As Boolean = Not (IsMouseDown AndAlso IsShiftPressed)
|
||||||
|
|
||||||
For Each k As Keys In myPressedKeys
|
'For Each k As Keys In myPressedKeys
|
||||||
If allowCamMove Then
|
' If allowCamMove Then
|
||||||
Select Case k
|
' Select Case k
|
||||||
Case Keys.W
|
' Case Keys.W
|
||||||
'camera.Move(moveSpeed, moveSpeed, camMtx)
|
' 'camera.Move(moveSpeed, moveSpeed, camMtx)
|
||||||
MyCamera.UpdateCameraMatrixWithScrollWheel(moveSpeed, camMtx)
|
' MyCamera.UpdateCameraMatrixWithScrollWheel(moveSpeed, camMtx)
|
||||||
savedCamPos = MyCamera.Position
|
' savedCamPos = MyCamera.Position
|
||||||
Case Keys.S
|
' Case Keys.S
|
||||||
'camera.Move(-moveSpeed, -moveSpeed, camMtx)
|
' 'camera.Move(-moveSpeed, -moveSpeed, camMtx)
|
||||||
MyCamera.UpdateCameraMatrixWithScrollWheel(-moveSpeed, camMtx)
|
' MyCamera.UpdateCameraMatrixWithScrollWheel(-moveSpeed, camMtx)
|
||||||
savedCamPos = MyCamera.Position
|
' savedCamPos = MyCamera.Position
|
||||||
Case Keys.A
|
' Case Keys.A
|
||||||
'camera.Move(-moveSpeed, 0, camMtx)
|
' 'camera.Move(-moveSpeed, 0, camMtx)
|
||||||
MyCamera.UpdateCameraOffsetDirectly(-moveSpeed, 0, camMtx)
|
' MyCamera.UpdateCameraOffsetDirectly(-moveSpeed, 0, camMtx)
|
||||||
Case Keys.D
|
' Case Keys.D
|
||||||
'camera.Move(moveSpeed, 0, camMtx)
|
' 'camera.Move(moveSpeed, 0, camMtx)
|
||||||
MyCamera.UpdateCameraOffsetDirectly(moveSpeed, 0, camMtx)
|
' MyCamera.UpdateCameraOffsetDirectly(moveSpeed, 0, camMtx)
|
||||||
Case Keys.E
|
' Case Keys.E
|
||||||
'camera.Move(0, -moveSpeed, camMtx)
|
' 'camera.Move(0, -moveSpeed, camMtx)
|
||||||
MyCamera.UpdateCameraOffsetDirectly(0, -moveSpeed, camMtx)
|
' MyCamera.UpdateCameraOffsetDirectly(0, -moveSpeed, camMtx)
|
||||||
Case Keys.Q
|
' Case Keys.Q
|
||||||
'camera.Move(0, moveSpeed, camMtx)
|
' 'camera.Move(0, moveSpeed, camMtx)
|
||||||
MyCamera.UpdateCameraOffsetDirectly(0, moveSpeed, camMtx)
|
' MyCamera.UpdateCameraOffsetDirectly(0, moveSpeed, camMtx)
|
||||||
End Select
|
' 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
|
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
|
End Sub
|
||||||
|
|
||||||
Private Sub Camera_NeedSelectedObject(e As Camera.NeedSelectedObjectEventArgs) Handles MyCamera.NeedSelectedObject
|
Private Sub Camera_NeedSelectedObject(e As Camera.NeedSelectedObjectEventArgs) Handles MyCamera.NeedSelectedObject
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ Namespace RenderingN
|
|||||||
indices.Add(curvi)
|
indices.Add(curvi)
|
||||||
curvi += 1
|
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))
|
verts.Add(New Vector3(p.Vertex.X, p.Vertex.Y, p.Vertex.Z))
|
||||||
Else
|
Else
|
||||||
verts.Add(New Vector3(0, 0, 0))
|
verts.Add(New Vector3(0, 0, 0))
|
||||||
@@ -260,9 +260,11 @@ Namespace RenderingN
|
|||||||
Public Sub DrawModel(mode As RenderMode)
|
Public Sub DrawModel(mode As RenderMode)
|
||||||
DrawModel(mode, Vector3.Zero, Quaternion.Identity, New Vector3(ModelScaling, ModelScaling, ModelScaling))
|
DrawModel(mode, Vector3.Zero, Quaternion.Identity, New Vector3(ModelScaling, ModelScaling, ModelScaling))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub DrawModel(mode As RenderMode, pos As Vector3, rot As Quaternion)
|
Public Sub DrawModel(mode As RenderMode, pos As Vector3, rot As Quaternion)
|
||||||
DrawModel(mode, pos, rot, New Vector3(ModelScaling, ModelScaling, ModelScaling))
|
DrawModel(mode, pos, rot, New Vector3(ModelScaling, ModelScaling, ModelScaling))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub DrawModel(mode As RenderMode, pos As Vector3, rot As Quaternion, scale As Vector3)
|
Public Sub DrawModel(mode As RenderMode, pos As Vector3, rot As Quaternion, scale As Vector3)
|
||||||
If mode = RenderMode.None Then Return
|
If mode = RenderMode.None Then Return
|
||||||
If Not _HasRendered Then Return
|
If Not _HasRendered Then Return
|
||||||
@@ -277,6 +279,7 @@ Namespace RenderingN
|
|||||||
GL.EnableClientState(ArrayCap.TextureCoordArray)
|
GL.EnableClientState(ArrayCap.TextureCoordArray)
|
||||||
|
|
||||||
For Each mesh As Mesh In obj3d.Meshes
|
For Each mesh As Mesh In obj3d.Meshes
|
||||||
|
|
||||||
If VertexColorBuffers.ContainsKey(mesh) Then
|
If VertexColorBuffers.ContainsKey(mesh) Then
|
||||||
GL.EnableClientState(ArrayCap.ColorArray)
|
GL.EnableClientState(ArrayCap.ColorArray)
|
||||||
ElseIf NormalBuffers.ContainsKey(mesh) Then
|
ElseIf NormalBuffers.ContainsKey(mesh) Then
|
||||||
|
|||||||
Reference in New Issue
Block a user