public static void DrawSceneViewTools(SceneView sceneView)
 {
     SceneViewOverlay.Window(Styles.selectionToolsWindowTitle, DoContextualToolbarOverlay, int.MaxValue, null,
                             SceneViewOverlay.WindowDisplayOption.MultipleWindowsPerTarget, sceneView);
 }
Example #2
0
        public void OnSceneGUI()
        {
            Camera target = (Camera)this.target;

            if (IsViewPortRectValidToRender(target.rect))
            {
                float num;
                SceneViewOverlay.Window(new GUIContent("Camera Preview"), new SceneViewOverlay.WindowFunction(this.OnOverlayGUI), -100, this.target, SceneViewOverlay.WindowDisplayOption.OneWindowPerTarget);
                Color color        = Handles.color;
                Color kGizmoCamera = CameraEditor.kGizmoCamera;
                kGizmoCamera.a *= 2f;
                Handles.color   = kGizmoCamera;
                Vector3[] far = new Vector3[4];
                if (GetFrustum(target, null, far, out num))
                {
                    Vector3 a         = far[0];
                    Vector3 vector2   = far[1];
                    Vector3 b         = far[2];
                    Vector3 vector4   = far[3];
                    bool    changed   = GUI.changed;
                    Vector3 vector5   = Vector3.Lerp(a, b, 0.5f);
                    float   magnitude = -1f;
                    Vector3 vector6   = MidPointPositionSlider(vector2, b, target.transform.up);
                    if (!GUI.changed)
                    {
                        vector6 = MidPointPositionSlider(a, vector4, -target.transform.up);
                    }
                    if (GUI.changed)
                    {
                        Vector3 vector8 = vector6 - vector5;
                        magnitude = vector8.magnitude;
                    }
                    GUI.changed = false;
                    vector6     = MidPointPositionSlider(vector4, b, target.transform.right);
                    if (!GUI.changed)
                    {
                        vector6 = MidPointPositionSlider(a, vector2, -target.transform.right);
                    }
                    if (GUI.changed)
                    {
                        Vector3 vector9 = vector6 - vector5;
                        magnitude = vector9.magnitude / num;
                    }
                    if (magnitude >= 0f)
                    {
                        Undo.RecordObject(target, "Adjust Camera");
                        if (target.orthographic)
                        {
                            target.orthographicSize = magnitude;
                        }
                        else
                        {
                            Vector3 vector7 = vector5 + ((Vector3)(target.transform.up * magnitude));
                            target.fieldOfView = Vector3.Angle(target.transform.forward, vector7 - target.transform.position) * 2f;
                        }
                        changed = true;
                    }
                    GUI.changed   = changed;
                    Handles.color = color;
                }
            }
        }
 void OnSceneViewGUI(SceneView view)
 {
     SceneViewOverlay.Window(Contents.physicsDebug, DisplayControls, (int)SceneViewOverlay.Ordering.PhysicsDebug,
         SceneViewOverlay.WindowDisplayOption.OneWindowPerTarget);
 }
Example #4
0
        public void OnSceneGUI()
        {
            Camera camera = (Camera)this.target;

            if (!CameraEditor.IsViewPortRectValidToRender(camera.rect))
            {
                return;
            }
            SceneViewOverlay.Window(new GUIContent("Camera Preview"), new SceneViewOverlay.WindowFunction(this.OnOverlayGUI), -100, this.target, SceneViewOverlay.WindowDisplayOption.OneWindowPerTarget);
            Color color  = Handles.color;
            Color color2 = CameraEditor.kGizmoCamera;

            color2.a     *= 2f;
            Handles.color = color2;
            Vector3[] array = new Vector3[4];
            float     num;

            if (!CameraEditor.GetFrustum(camera, null, array, out num))
            {
                return;
            }
            Vector3 vector  = array[0];
            Vector3 vector2 = array[1];
            Vector3 vector3 = array[2];
            Vector3 vector4 = array[3];
            bool    changed = GUI.changed;
            Vector3 vector5 = Vector3.Lerp(vector, vector3, 0.5f);
            float   num2    = -1f;
            Vector3 a       = CameraEditor.MidPointPositionSlider(vector2, vector3, camera.transform.up);

            if (!GUI.changed)
            {
                a = CameraEditor.MidPointPositionSlider(vector, vector4, -camera.transform.up);
            }
            if (GUI.changed)
            {
                num2 = (a - vector5).magnitude;
            }
            GUI.changed = false;
            a           = CameraEditor.MidPointPositionSlider(vector4, vector3, camera.transform.right);
            if (!GUI.changed)
            {
                a = CameraEditor.MidPointPositionSlider(vector, vector2, -camera.transform.right);
            }
            if (GUI.changed)
            {
                num2 = (a - vector5).magnitude / num;
            }
            if (num2 >= 0f)
            {
                Undo.RecordObject(camera, "Adjust Camera");
                if (camera.orthographic)
                {
                    camera.orthographicSize = num2;
                }
                else
                {
                    Vector3 a2 = vector5 + camera.transform.up * num2;
                    camera.fieldOfView = Vector3.Angle(camera.transform.forward, a2 - camera.transform.position) * 2f;
                }
                changed = true;
            }
            GUI.changed   = changed;
            Handles.color = color;
        }
Example #5
0
        public virtual void OnSceneGUI()
        {
            var c = (Camera)target;

            if (!IsViewPortRectValidToRender(c.rect))
            {
                return;
            }

            SceneViewOverlay.Window(EditorGUIUtility.TrTextContent("Camera Preview"), OnOverlayGUI, (int)SceneViewOverlay.Ordering.Camera, target, SceneViewOverlay.WindowDisplayOption.OneWindowPerTarget);

            Color orgHandlesColor = Handles.color;
            Color slidersColor    = kGizmoCamera;

            slidersColor.a *= 2f;
            Handles.color   = slidersColor;

            // get the corners of the far clip plane in world space
            var   far = new Vector3[4];
            float frustumAspect;

            if (!GetFrustum(c, null, far, out frustumAspect))
            {
                return;
            }
            Vector3 leftBottomFar  = far[0];
            Vector3 leftTopFar     = far[1];
            Vector3 rightTopFar    = far[2];
            Vector3 rightBottomFar = far[3];

            // manage our own gui changed state, so we can use it for individual slider changes
            bool guiChanged = GUI.changed;

            // FOV handles
            Vector3 farMid = Vector3.Lerp(leftBottomFar, rightTopFar, 0.5f);

            // Top and bottom handles
            float   halfHeight      = -1.0f;
            Vector3 changedPosition = MidPointPositionSlider(leftTopFar, rightTopFar, c.transform.up);

            if (!GUI.changed)
            {
                changedPosition = MidPointPositionSlider(leftBottomFar, rightBottomFar, -c.transform.up);
            }
            if (GUI.changed)
            {
                halfHeight = (changedPosition - farMid).magnitude;
            }

            // Left and right handles
            GUI.changed     = false;
            changedPosition = MidPointPositionSlider(rightBottomFar, rightTopFar, c.transform.right);
            if (!GUI.changed)
            {
                changedPosition = MidPointPositionSlider(leftBottomFar, leftTopFar, -c.transform.right);
            }
            if (GUI.changed)
            {
                halfHeight = (changedPosition - farMid).magnitude / frustumAspect;
            }

            // Update camera settings if changed
            if (halfHeight >= 0.0f)
            {
                Undo.RecordObject(c, "Adjust Camera");
                if (c.orthographic)
                {
                    c.orthographicSize = halfHeight;
                }
                else
                {
                    Vector3 pos = farMid + c.transform.up * halfHeight;
                    c.fieldOfView = Vector3.Angle(c.transform.forward, (pos - c.transform.position)) * 2f;
                }
                guiChanged = true;
            }

            GUI.changed   = guiChanged;
            Handles.color = orgHandlesColor;
        }
 void OnSceneViewGUI(SceneView view)
 {
     SceneViewOverlay.ShowWindow(m_OverlayWindow);
 }
 public static void Window(GUIContent title, SceneViewOverlay.WindowFunction sceneViewFunc, int order, SceneViewOverlay.WindowDisplayOption option)
 {
     SceneViewOverlay.Window(title, sceneViewFunc, order, null, option);
 }
 private void OnSceneViewGUI(SceneView view)
 {
     SceneViewOverlay.Window(PhysicsDebugWindow.Contents.physicsDebug, new SceneViewOverlay.WindowFunction(this.DisplayControls), 350, SceneViewOverlay.WindowDisplayOption.OneWindowPerTarget);
 }