public static void DoViewTool(SceneView view)
{
Event current = Event.current;
int controlID = s_ViewToolID;
EventType typeForControl = current.GetTypeForControl(controlID);
if ((view != null) && (Tools.s_LockedViewTool == ViewTool.FPS))
{
view.FixNegativeSize();
}
switch (typeForControl)
{
case EventType.MouseDown:
HandleMouseDown(view, controlID, current.button);
break;
case EventType.MouseUp:
HandleMouseUp(view, controlID, current.button, current.clickCount);
break;
case EventType.MouseDrag:
HandleMouseDrag(view, controlID);
break;
case EventType.KeyDown:
HandleKeyDown(view);
break;
case EventType.KeyUp:
HandleKeyUp();
break;
case EventType.ScrollWheel:
HandleScrollWheel(view, !current.alt);
break;
case EventType.Layout:
{
Vector3 movementDirection = GetMovementDirection();
if ((GUIUtility.hotControl == controlID) && (movementDirection.sqrMagnitude != 0f))
{
view.pivot += view.rotation * movementDirection;
view.Repaint();
}
break;
}
}
}