optimize glcontrol camera handling

This commit is contained in:
2019-11-28 07:58:39 +01:00
parent 24f574e002
commit e64ce6543b
2 changed files with 45 additions and 20 deletions

View File

@@ -5,7 +5,8 @@ Namespace CameraN
Public Class Camera
Public Event NeedSelectedObject(e As NeedSelectedObjectEventArgs)
Public Event NeedSelectedObject(sender As Object, e As NeedSelectedObjectEventArgs)
Public Event PerspectiveChanged(sender As Object, e As EventArgs)
'P R I V A T E F I E L D S
@@ -276,8 +277,13 @@ Namespace CameraN
UpdateMatrix(cameraMatrix)
End Sub
Public Sub RaisePerspectiveChanged()
RaiseEvent PerspectiveChanged(Me, New EventArgs)
End Sub
Public Sub UpdateMatrix(ByRef cameraMatrix As Matrix4)
cameraMatrix = Matrix4.LookAt(pos.X, pos.Y, pos.Z, myLookat.X, myLookat.Y, myLookat.Z, 0, 1, 0)
RaisePerspectiveChanged()
End Sub
Private Sub UpdateCameraMatrixWithScrollWheel_LOOK(amt As Integer, ByRef cameraMatrix As Matrix4)
@@ -286,8 +292,10 @@ Namespace CameraN
Select Case currentLookDirection
Case LookDirection.Top
cameraMatrix = Matrix4.LookAt(pos.X, pos.Y, pos.Z, myLookat.X, myLookat.Y, myLookat.Z - 1, 0, 1, 0)
RaisePerspectiveChanged()
Case LookDirection.Bottom
cameraMatrix = Matrix4.LookAt(pos.X, pos.Y, pos.Z, myLookat.X, myLookat.Y, myLookat.Z + 1, 0, 1, 0)
RaisePerspectiveChanged()
Case Else
UpdateMatrix(cameraMatrix)
End Select
@@ -347,6 +355,8 @@ Namespace CameraN
lookPositions(CInt(currentLookDirection)) = pos
End Select
RaisePerspectiveChanged()
lastMouseX = mouseX
lastMouseY = mouseY
'Console.WriteLine("CamAngleX = " + CamAngleX + ", CamAngleY = " + CamAngleY);
@@ -526,7 +536,7 @@ Namespace CameraN
Private Function GetSelectedObject() As ICameraPoint()
Dim e As New NeedSelectedObjectEventArgs
RaiseEvent NeedSelectedObject(e)
RaiseEvent NeedSelectedObject(Me, e)
Dim stopw As New Stopwatch
stopw.Start()