public void OnObjectSelectionUpdatedUsingSelectionShape()
        {
            ObjectTransformGizmo activeGizmo = GetActiveGizmo();

            if (activeGizmo != null)
            {
                GameObject firstSelectedGameObject = ObjectSelection.Get().GetFirstSelectedGameObject();
                if (firstSelectedGameObject == null)
                {
                    return;
                }
                Transform firstSelectedObjectTransform = firstSelectedGameObject.transform;

                if (_gizmoTransformPivotPoint == TransformGizmoPivotPoint.Pivot && firstSelectedGameObject != null)
                {
                    activeGizmo.WorldPosition = firstSelectedObjectTransform.position;
                }
                else
                {
                    activeGizmo.WorldPosition = ObjectSelection.Get().GetWorldCenter();
                }

                if (_gizmoTransformSpace == TransformSpace.Local && firstSelectedObjectTransform != null)
                {
                    activeGizmo.WorldRotation = firstSelectedObjectTransform.rotation;
                }
                else
                {
                    activeGizmo.WorldRotation = Quaternion.identity;
                }
            }
        }
        public void RenderHandles(HashSet <GameObject> selectedGameObjects)
        {
            if (selectedGameObjects == null || selectedGameObjects.Count == 0 || !_areGizmosActive)
            {
                return;
            }

            ObjectTransformGizmo activeGizmo = GetActiveGizmo();

            if (activeGizmo != null)
            {
                activeGizmo.GameObjectsWhichCanBeTransformed = selectedGameObjects;
                activeGizmo.RenderHandles(_gizmoTransformPivotPoint);
            }
        }
 public bool OwnsGizmo(ObjectTransformGizmo objectTransformGizmo)
 {
     if (objectTransformGizmo == ObjectMoveGizmo)
     {
         return(true);
     }
     if (objectTransformGizmo == ObjectRotationGizmo)
     {
         return(true);
     }
     if (objectTransformGizmo == ObjectScaleGizmo)
     {
         return(true);
     }
     return(false);
 }
        private void AdjustActiveGizmoRotation()
        {
            ObjectTransformGizmo activeGizmo = GetActiveGizmo();

            if (activeGizmo != null)
            {
                if (_gizmoTransformSpace == TransformSpace.Local)
                {
                    GameObject firstSelectedObject = ObjectSelection.Get().GetFirstSelectedGameObject();
                    if (firstSelectedObject != null)
                    {
                        activeGizmo.WorldRotation = firstSelectedObject.transform.rotation;
                    }
                }
                else
                {
                    activeGizmo.WorldRotation = Quaternion.identity;
                }
            }
        }
        private void AdjustActiveGizmoPosition()
        {
            ObjectTransformGizmo activeGizmo = GetActiveGizmo();

            if (activeGizmo != null)
            {
                if (_gizmoTransformPivotPoint == TransformGizmoPivotPoint.Pivot)
                {
                    GameObject firstSelectedObject = ObjectSelection.Get().GetFirstSelectedGameObject();
                    if (firstSelectedObject != null)
                    {
                        activeGizmo.WorldPosition = firstSelectedObject.transform.position;
                    }
                }
                else
                {
                    activeGizmo.WorldPosition = ObjectSelection.Get().GetWorldCenter();
                }
            }
        }
        public static void SendToInterestedListeners(ObjectTransformGizmo objectTransformGizmo)
        {
            var message = new GizmoTransformedObjectsMessage(objectTransformGizmo);

            MessageListenerDatabase.Instance.SendMessageToInterestedListeners(message);
        }
 public GizmoTransformedObjectsMessage(ObjectTransformGizmo objectTransformGizmo)
     : base(MessageType.GizmoTransformedObjects)
 {
     _objectTransformGizmo = objectTransformGizmo;
 }