optimize glcontrol camera handling
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user