public void HandleMouseMoveEvent(Event e) { if (Mirror.IsInteractionSessionActive) { e.DisableInSceneView(); Mirror.HandleMouseMoveEvent(e); return; } if (_objectVertexSnapSession.IsActive) { e.DisableInSceneView(); _objectVertexSnapSession.UpdateForMouseMovement(); return; } SelectionShape.HandleMouseMoveEvent(e); _selectionGridSnapSession.UpdateForMouseMovement(); if (_selectionGrabSession.IsActive) { _selectionGrabSession.Update(); ObjectSelectionGizmos.OnObjectSelectionUpdated(); } if (_object2ObjectSnapSession.IsActive) { _object2ObjectSnapSession.UpdateOnMouseMove(); ObjectSelectionGizmos.OnObjectSelectionUpdated(); } }
public void HandleMouseButtonDownEvent(Event e) { if (_object2ObjectSnapSession.IsActive && AllShortcutCombos.Instance.EndSelectionObject2ObjectSnap.IsActive()) { e.DisableInSceneView(); _object2ObjectSnapSession.End(); return; } if (_selectionGridSnapSession.IsActive || _selectionGrabSession.IsActive || _object2ObjectSnapSession.IsActive || _objectVertexSnapSession.IsActive) { return; } if (AllShortcutCombos.Instance.SnapXZGridToCursorPickPointOnLeftClick_Selection.IsActive() && e.InvolvesLeftMouseButton()) { e.DisableInSceneView(); ObjectSnapping.Get().SnapXZGridToCursorPickPoint(e.clickCount == 2); return; } if (Mirror.IsInteractionSessionActive && e.InvolvesLeftMouseButton()) { e.DisableInSceneView(); Mirror.EndInteractionSession(); return; } if (e.InvolvesLeftMouseButton() && NumberOfSelectedObjects != 0 && !SelectionShape.IsVisible() && AllShortcutCombos.Instance.ReplacePrefabsForSelectedObjects_Scene.IsActive() && !Mirror.IsInteractionSessionActive) { e.DisableInSceneView(); UndoEx.RecordForToolAction(this); List <GameObject> newObjects = ObjectSelectionActions.ReplaceSelectedObjectsPrefabOnMouseClick(); if (newObjects.Count != 0) { AddGameObjectCollectionToSelection(newObjects); } return; } SelectionShape.HandleMouseButtonDownEvent(e); if (CanPerformClickSelectionUpdateOperation()) { var clickSelectionUpdateOperation = ObjectSelectionUpdateOperationFactory.Create(ObjectSelectionUpdateOperationType.Click); clickSelectionUpdateOperation.Perform(); SceneView.RepaintAll(); } }
public void HandleRepaintEvent(Event e) { if (Mirror.IsInteractionSessionActive) { Mirror.HandleRepaintEvent(e); return; } if (_selectionSnapSession.IsActive && !AllShortcutCombos.Instance.SnapSelection.IsActive()) { _selectionSnapSession.End(); } }
public void HandleMouseMoveEvent(Event e) { if (Mirror.IsInteractionSessionActive) { e.DisableInSceneView(); Mirror.HandleMouseMoveEvent(e); return; } SelectionShape.HandleMouseMoveEvent(e); _selectionSnapSession.UpdateForMouseMovement(); if (_selectionGrabSession.IsActive) { _selectionGrabSession.Update(); ObjectSelectionTransformGizmoSystem.OnObjectSelectionUpdated(); } }
public void RenderGizmos() { SelectionShape.RenderGizmos(); _selectionSnapSession.RenderGizmos(); _selectionGrabSession.RenderGizmos(); IObjectSelectionRenderer objectSelectionRenderer = ObjectSelectionRendererFactory.Create(); objectSelectionRenderer.Render(GetAllSelectedGameObjects()); if (Mirror.IsActive) { Mirror.RenderGizmos(); List <GameObject> topLevelParentsInSelection = GameObjectExtensions.GetTopParentsFromGameObjectCollection(_selectedObjects.HashSet); Mirror.RenderMirroredEntityOrientedBoxes(GameObjectExtensions.GetHierarchyWorldOrientedBoxes(topLevelParentsInSelection)); } }
public void HandleRepaintEvent(Event e) { if (!AllShortcutCombos.Instance.ActivateObjectVertexSnapSession_Selection.IsActive()) { _objectVertexSnapSession.End(); } if (Mirror.IsInteractionSessionActive) { Mirror.HandleRepaintEvent(e); return; } if (_selectionGridSnapSession.IsActive && !AllShortcutCombos.Instance.SelectionGridSnap.IsActive()) { _selectionGridSnapSession.End(); } }
public void HandleKeyboardButtonDownEvent(Event e) { if (AllShortcutCombos.Instance.GrabSelection.IsActive() && NumberOfSelectedObjects != 0) { if (_selectionGrabSession.IsActive) { _selectionGrabSession.End(); } else { _selectionGrabSession.Settings = SelectionGrabSettings; _selectionGrabSession.Begin(new List <GameObject>(_selectedObjects.HashSet)); } } if (_selectionGrabSession.IsActive || _selectionSnapSession.IsActive) { return; } // Note: Don't disable this event if it's CTRL or CMD because transform // handle snapping will no longer work. if (e.keyCode != KeyCode.LeftControl && e.keyCode != KeyCode.LeftCommand && e.keyCode != KeyCode.RightControl && e.keyCode != KeyCode.RightCommand) { e.DisableInSceneView(); } if (Mirror.IsInteractionSessionActive) { Mirror.HandleKeyboardButtonDownEvent(e); return; } if (Mirror.IsActive && AllShortcutCombos.Instance.MirrorSelectedObjects.IsActive()) { List <GameObject> topParentsInSelectedObjects = GameObjectExtensions.GetTopParentsFromGameObjectCollection(_selectedObjects.HashSet); ObjectHierarchyRootsWerePlacedInSceneMessage.SendToInterestedListeners(Mirror.MirrorGameObjectHierarchies(topParentsInSelectedObjects), ObjectHierarchyRootsWerePlacedInSceneMessage.PlacementType.MirroredSelection); return; } if (AllShortcutCombos.Instance.DeleteSelectedObjects.IsActive()) { UndoEx.RecordForToolAction(this); ObjectActions.EraseAllSelectedGameObjects(); } else if (AllShortcutCombos.Instance.SelectAllObjectsWithSamePrefabAsCurrentSelection.IsActive()) { UndoEx.RecordForToolAction(this); ObjectSelectionActions.SelectAllObjectsWithSamePrefabAsCurrentSelection(); _objectSelectionTransformGizmoSystem.OnObjectSelectionUpdated(); } else if (AllShortcutCombos.Instance.ToggleGizmosOnOff.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionTransformGizmoSystem); _objectSelectionTransformGizmoSystem.AreGizmosActive = !_objectSelectionTransformGizmoSystem.AreGizmosActive; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ActivateMoveGizmo.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionTransformGizmoSystem); _objectSelectionTransformGizmoSystem.ActiveGizmoType = TransformGizmoType.Move; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ActivateRotationGizmo.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionTransformGizmoSystem); _objectSelectionTransformGizmoSystem.ActiveGizmoType = TransformGizmoType.Rotate; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ActivateScaleGizmo.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionTransformGizmoSystem); _objectSelectionTransformGizmoSystem.ActiveGizmoType = TransformGizmoType.Scale; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ProjectSelectedObjects.IsActive()) { ProjectSelectionOnProjectionSurface(); } else if (AllShortcutCombos.Instance.SnapSelection.IsActive()) { _selectionSnapSession.Begin(); } }
public void HandleKeyboardButtonDownEvent(Event e) { if (AllShortcutCombos.Instance.ActivateObjectVertexSnapSession_Placement.IsActive() && !_object2ObjectSnapSession.IsActive && !_selectionGrabSession.IsActive && !SelectionShape.IsVisible()) { e.DisableInSceneView(); _objectVertexSnapSession.Begin(GetAllSelectedGameObjects()); return; } if (!_object2ObjectSnapSession.IsActive) { if (AllShortcutCombos.Instance.GrabSelection.IsActive() && NumberOfSelectedObjects != 0) { if (_selectionGrabSession.IsActive) { _selectionGrabSession.End(); } else { _selectionGrabSession.Settings = SelectionGrabSettings; _selectionGrabSession.Begin(new List <GameObject>(_selectedObjects.HashSet)); } } } if (!_selectionGrabSession.IsActive) { if (AllShortcutCombos.Instance.ToggleSelectionObject2ObjectSnap.IsActive() && NumberOfSelectedObjects != 0) { if (_object2ObjectSnapSession.IsActive) { _object2ObjectSnapSession.End(); } else { _object2ObjectSnapSession.Begin(); } } } if (_object2ObjectSnapSession.IsActive) { if (AllShortcutCombos.Instance.SelectionRotateWorldX.IsActive()) { Rotate(Settings.XRotationStep, Vector3.right); } else if (AllShortcutCombos.Instance.SelectionRotateWorldY.IsActive()) { Rotate(Settings.YRotationStep, Vector3.up); } else if (AllShortcutCombos.Instance.SelectionRotateWorldZ.IsActive()) { Rotate(Settings.ZRotationStep, Vector3.forward); } else if (AllShortcutCombos.Instance.SetRotationToIdentity.IsActive()) { SetWorldRotation(Quaternion.identity); } return; } if (_selectionGrabSession.IsActive || _selectionGridSnapSession.IsActive || _object2ObjectSnapSession.IsActive) { return; } // Note: Don't disable this event if it's CTRL or CMD because transform // handle snapping will no longer work. if (e.keyCode != KeyCode.LeftControl && e.keyCode != KeyCode.LeftCommand && e.keyCode != KeyCode.RightControl && e.keyCode != KeyCode.RightCommand) { e.DisableInSceneView(); } if (Mirror.IsInteractionSessionActive) { Mirror.HandleKeyboardButtonDownEvent(e); return; } if (Mirror.IsActive && AllShortcutCombos.Instance.MirrorSelectedObjects.IsActive()) { List <GameObject> selectedRoots = Octave3DWorldBuilder.ActiveInstance.GetRoots(GetAllSelectedGameObjects()); ObjectHierarchyRootsWerePlacedInSceneMessage.SendToInterestedListeners(Mirror.MirrorGameObjectHierarchies(selectedRoots), ObjectHierarchyRootsWerePlacedInSceneMessage.PlacementType.Selection); return; } if (AllShortcutCombos.Instance.DeleteSelectedObjects.IsActive()) { UndoEx.RecordForToolAction(this); ObjectActions.EraseAllSelectedGameObjects(); } else if (AllShortcutCombos.Instance.SelectAllObjectsWithSamePrefabAsCurrentSelection.IsActive()) { UndoEx.RecordForToolAction(this); ObjectSelectionActions.SelectAllObjectsWithSamePrefabAsCurrentSelection(); _objectSelectionGizmos.OnObjectSelectionUpdated(); } else if (AllShortcutCombos.Instance.ActivateMoveGizmo.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionGizmos); _objectSelectionGizmos.ActiveGizmoType = GizmoType.Move; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ActivateRotationGizmo.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionGizmos); _objectSelectionGizmos.ActiveGizmoType = GizmoType.Rotate; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ActivateScaleGizmo.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionGizmos); _objectSelectionGizmos.ActiveGizmoType = GizmoType.Scale; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ActivateObjectSelectionExtrudeGizmo.IsActive()) { UndoEx.RecordForToolAction(_objectSelectionGizmos); _objectSelectionGizmos.ActiveGizmoType = GizmoType.Duplicate; Octave3DWorldBuilder.ActiveInstance.Inspector.EditorWindow.Repaint(); } else if (AllShortcutCombos.Instance.ProjectSelectedObjects.IsActive()) { ProjectSelectionOnProjectionSurface(); } else if (AllShortcutCombos.Instance.SelectionGridSnap.IsActive()) { _selectionGridSnapSession.Begin(); } else if (AllShortcutCombos.Instance.SetRotationToIdentity.IsActive()) { SetWorldRotation(Quaternion.identity); } else if (AllShortcutCombos.Instance.SelectionRotateWorldX.IsActive()) { Rotate(Settings.XRotationStep, Vector3.right); } else if (AllShortcutCombos.Instance.SelectionRotateWorldY.IsActive()) { Rotate(Settings.YRotationStep, Vector3.up); } else if (AllShortcutCombos.Instance.SelectionRotateWorldZ.IsActive()) { Rotate(Settings.ZRotationStep, Vector3.forward); } }