Example #1
0
        /// <summary>
        /// Sets the side menu buttons state
        /// </summary>
        private void SetButtonsStateUI(bool clear = false)
        {
            ARObject selectedObject = SelectionManager.Instance.SelectedObject;

            if (selectedObject != null)
            {
                if (clear)
                {
                    TranslateButton.GetComponent <Image>().color = (new Color(1, 1, 1, AlphaDisabled));
                    RotateButton.GetComponent <Image>().color    = (new Color(1, 1, 1, AlphaDisabled));
                    ScaleButton.GetComponent <Image>().color     = (new Color(1, 1, 1, AlphaDisabled));
                    CompassButton.GetComponent <Image>().color   = (new Color(1, 1, 1, AlphaDisabled));
                }

                HandlerObject.HandlerMode handlerMode = selectedObject.Transformation.Handler.Mode;

                switch (handlerMode)
                {
                case HandlerObject.HandlerMode.Translate:
                    TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f);
                    RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    break;

                case HandlerObject.HandlerMode.Rotate:
                    TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f);
                    ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f);
                    break;

                case HandlerObject.HandlerMode.Scale:
                    TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f);
                    CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    break;

                default:
                    TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f);
                    RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f);
                    break;
                }
            }
        }
Example #2
0
        /// <summary>
        /// Updates this instance.
        /// </summary>
        void Update()
        {
            if (selectedObject != null)
            {
                int moving = TouchManager.Instance.TouchsMoving;
                bool doubleTap = TouchManager.Instance.DoubleTap;
                mode = selectedObject.Transformation.Handler.Mode;

                bool alowMoving = false;
                if (TranslationType == TranslationMode.Grab)
                    alowMoving = moving > 0;
                else if (TranslationType == TranslationMode.Tap)
                    alowMoving = moving > -1;
                else if (TranslationType == TranslationMode.DoubleTap)
                    alowMoving = moving > -1 && doubleTap;

                if (doubleTap)
                {
                    var targetObj = SelectionManager.Instance.GetObjectHit();
                    if (targetObj != null && !targetObj.Selected)
                    {
                        ObjectManager.Instance.MoveBallToSnap(targetObj.SnapObject.position);
                        alowMoving = false;
                    }
                }

                if ((mode == HandlerObject.HandlerMode.Translate || AutoSetTranformMode) &&
                CanMove && selectedObject.Transformation.CanInteract && isMoving && alowMoving)
                    MoveObject();

                bool alowRotation = false;
                if (RotationType == RotationMode.OneFinger)
                    alowRotation = moving > 0;
                else if (RotationType == RotationMode.TwoFingers)
                    alowRotation = moving > 1;

                if ((mode == HandlerObject.HandlerMode.Rotate || AutoSetTranformMode) &&
                CanRotate && isRotating && alowRotation)
                    RotateObject();

                if ((mode == HandlerObject.HandlerMode.Scale || AutoSetTranformMode) &&
                CanScale && isScaling && moving > 0)
                    ScaleObject();
            }
        }
Example #3
0
 /// <summary>
 /// Sets mode.
 /// </summary>
 /// <param name="handlerMode">The handler mode.</param>
 public void SetMode(HandlerObject.HandlerMode handlerMode)
 {
     mode = handlerMode;
 }