Example #1
0
 private void SetQuatFields(Quaternion quat, RotationUI ui)
 {
     ui.quatX.SetTextWithoutNotify(quat.x.ToString());
     ui.quatY.SetTextWithoutNotify(quat.y.ToString());
     ui.quatZ.SetTextWithoutNotify(quat.z.ToString());
     ui.quatW.SetTextWithoutNotify(quat.w.ToString());
 }
Example #2
0
    private void Rotate(bool cw)
    {
        bool left  = _RotateSideSelector.value == 0;
        int  axis  = _RotateAxisSelector.value; // 0 == X, 1 == Y, 2 == Z
        bool world = _RotateRelativeSelector.value == 0;

        Quaternion rot = left ? _StartRot : _EndRot;
        RotationUI ui  = left ? _StartRotUI : _EndRotUI;

        if (world)
        {
            var rotAround = Vector3.zero;
            rotAround[axis] = 1.0f;
            rot             = Quaternion.AngleAxis(60.0f * Time.deltaTime * (cw ? -1 : 1), rotAround) * rot;
        }
        else
        {
            var ea = rot.eulerAngles;
            ea[axis] += 60.0f * Time.deltaTime * (cw ? -1 : 1);
            rot       = Quaternion.Euler(ea);
        }

        if (left)
        {
            _StartRot = rot;
        }
        else
        {
            _EndRot = rot;
        }

        SetEulerFields(rot, ui);
        SetQuatFields(rot, ui);
        ApplyInterpolation(_InterpSlider.value);
    }
Example #3
0
    private void InitRotationUI(bool start, Quaternion quat, RotationUI ui)
    {
        SetEulerFields(quat, ui);
        SetQuatFields(quat, ui);

        ui.eulerX.onValueChanged.RemoveAllListeners();
        ui.eulerY.onValueChanged.RemoveAllListeners();
        ui.eulerZ.onValueChanged.RemoveAllListeners();
        ui.quatX.onValueChanged.RemoveAllListeners();
        ui.quatY.onValueChanged.RemoveAllListeners();
        ui.quatZ.onValueChanged.RemoveAllListeners();
        ui.quatW.onValueChanged.RemoveAllListeners();

        ui.eulerX.onValueChanged.AddListener((str) => UpdateRotation(str, start, RotationComponent.EulerX));
        ui.eulerY.onValueChanged.AddListener((str) => UpdateRotation(str, start, RotationComponent.EulerY));
        ui.eulerZ.onValueChanged.AddListener((str) => UpdateRotation(str, start, RotationComponent.EulerZ));
        ui.quatX.onValueChanged.AddListener((str) => UpdateRotation(str, start, RotationComponent.QuatX));
        ui.quatY.onValueChanged.AddListener((str) => UpdateRotation(str, start, RotationComponent.QuatY));
        ui.quatZ.onValueChanged.AddListener((str) => UpdateRotation(str, start, RotationComponent.QuatZ));
        ui.quatW.onValueChanged.AddListener((str) => UpdateRotation(str, start, RotationComponent.QuatW));
    }
Example #4
0
 void UpdateRotationPoints(RotationUI _rotationUI)
 {
 }
Example #5
0
    public void UpdateRotation(string valueStr, bool start, RotationComponent component)
    {
        RotationUI ui       = start ? _StartRotUI : _EndRotUI;
        Quaternion rotation = start ? _StartRot : _EndRot;
        var        ea       = rotation.eulerAngles;
        float      value;

        if (!float.TryParse(valueStr, out value))
        {
            return;
        }

        switch (component)
        {
        case RotationComponent.EulerX:
            ea.x = value;
            rotation.eulerAngles = ea;
            SetQuatFields(rotation, ui);
            break;

        case RotationComponent.EulerY:
            ea.y = value;
            rotation.eulerAngles = ea;
            SetQuatFields(rotation, ui);
            break;

        case RotationComponent.EulerZ:
            ea.z = value;
            rotation.eulerAngles = ea;
            SetQuatFields(rotation, ui);
            break;

        case RotationComponent.QuatX:
            rotation.x = value;
            SetEulerFields(rotation, ui);
            break;

        case RotationComponent.QuatY:
            rotation.y = value;
            SetEulerFields(rotation, ui);
            break;

        case RotationComponent.QuatZ:
            rotation.z = value;
            SetEulerFields(rotation, ui);
            break;

        case RotationComponent.QuatW:
            rotation.w = value;
            SetEulerFields(rotation, ui);
            break;
        }

        if (start)
        {
            _StartRot = rotation;
        }
        else
        {
            _EndRot = rotation;
        }

        ApplyInterpolation(_InterpSlider.value);
    }
Example #6
0
 private void SetEulerFields(Quaternion quat, RotationUI ui)
 {
     ui.eulerX.SetTextWithoutNotify(quat.eulerAngles.x.ToString());
     ui.eulerY.SetTextWithoutNotify(quat.eulerAngles.y.ToString());
     ui.eulerZ.SetTextWithoutNotify(quat.eulerAngles.z.ToString());
 }