UnityEditor.RotateTool.ToolGUI C# (CSharp) Method

ToolGUI() public method

public ToolGUI ( SceneView view, Vector3 handlePosition, bool isStatic ) : void
view SceneView
handlePosition Vector3
isStatic bool
return void
        public override void ToolGUI(SceneView view, Vector3 handlePosition, bool isStatic)
        {
            Quaternion handleRotation = Tools.handleRotation;
            EditorGUI.BeginChangeCheck();
            Quaternion quaternion2 = Handles.RotationHandle(handleRotation, handlePosition);
            if (EditorGUI.EndChangeCheck() && !isStatic)
            {
                float num;
                Vector3 vector;
                (Quaternion.Inverse(handleRotation) * quaternion2).ToAngleAxis(out num, out vector);
                Undo.RecordObjects(Selection.transforms, "Rotate");
                foreach (Transform transform in Selection.transforms)
                {
                    if (Tools.pivotMode == PivotMode.Center)
                    {
                        transform.RotateAround(handlePosition, (Vector3) (handleRotation * vector), num);
                    }
                    else if (TransformManipulator.individualSpace)
                    {
                        transform.Rotate((Vector3) (transform.rotation * vector), num, Space.World);
                    }
                    else
                    {
                        transform.Rotate((Vector3) (handleRotation * vector), num, Space.World);
                    }
                    transform.SetLocalEulerHint(transform.GetLocalEulerAngles(transform.rotationOrder));
                    if (transform.parent != null)
                    {
                        transform.SendTransformChangedScale();
                    }
                }
                Tools.handleRotation = quaternion2;
            }
        }
    }