public override bool OnMouseEvent(Editor.MouseEvent mouseEvent, MouseEventArgs mouseEventArgs)
{
if (mouseEvent == Editor.MouseEvent.MouseDown)
{
if (this.m_context.m_gizmoActive)
{
Vec3 position = this.m_context.m_gizmo.Position;
Vec3 rotationAxis = default(Vec3);
switch (this.m_context.m_gizmo.Active)
{
case Axis.X:
rotationAxis = this.m_context.m_gizmo.Axis.axisX;
break;
case Axis.Y:
rotationAxis = this.m_context.m_gizmo.Axis.axisY;
break;
case Axis.Z:
rotationAxis = this.m_context.m_gizmo.Axis.axisZ;
break;
}
ToolObject.RotateAction rotateAction = new ToolObject.RotateAction(this.m_context);
if (this.m_paramSnap.Value)
{
rotateAction.SetSnap(this.m_paramSnapSize.Value);
}
rotateAction.Start(position, rotationAxis);
}
else
{
Vec3 pos;
EditorObject objectFromScreenPoint = ObjectManager.GetObjectFromScreenPoint(Editor.Viewport.NormalizedMousePos, out pos);
if (objectFromScreenPoint.IsValid)
{
if (!this.m_context.m_selection.Contains(objectFromScreenPoint))
{
EditorObjectSelection editorObjectSelection = EditorObjectSelection.Create();
if ((Control.ModifierKeys & Keys.Control) != Keys.None)
{
this.m_context.m_selection.Clone(editorObjectSelection, false);
}
this.m_context.SelectObject(editorObjectSelection, objectFromScreenPoint);
this.m_context.SetSelection(editorObjectSelection, objectFromScreenPoint);
}
else
{
this.m_context.SetupGizmo(objectFromScreenPoint);
}
EditorObjectPivot editorObjectPivot;
Vec3 position2;
if (objectFromScreenPoint.GetClosestPivot(pos, out editorObjectPivot))
{
position2 = editorObjectPivot.position;
}
else
{
position2 = objectFromScreenPoint.Position;
}
Vec3 rotationAxis2 = new Vec3(0f, 0f, 1f);
ToolObject.RotateAction rotateAction2 = new ToolObject.RotateAction(this.m_context);
if (this.m_paramSnap.Value)
{
rotateAction2.SetSnap(this.m_paramSnapSize.Value);
}
rotateAction2.Start(position2, rotationAxis2);
}
else
{
ToolObject.SelectAction selectAction = new ToolObject.SelectAction(this.m_context);
selectAction.Start();
}
}
}
return false;
}