public void OnSceneGUI()
{
Camera camera = (Camera)base.target;
if (CameraEditor.IsViewPortRectValidToRender(camera.rect))
{
SceneViewOverlay.Window(new GUIContent("Camera Preview"), new SceneViewOverlay.WindowFunction(this.OnOverlayGUI), -100, base.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))
{
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;
}
}
}