public void OnSceneGUI()
{
bool flag = GUIUtility.hotControl == this.m_HandleControlID;
CapsuleCollider target = (CapsuleCollider) base.target;
Color color = Handles.color;
if (target.enabled)
{
Handles.color = Handles.s_ColliderHandleColor;
}
else
{
Handles.color = Handles.s_ColliderHandleColorDisabled;
}
bool enabled = GUI.enabled;
if (!base.editingCollider && !flag)
{
GUI.enabled = false;
Handles.color = new Color(1f, 0f, 0f, 0.001f);
}
Vector3 capsuleExtents = ColliderUtil.GetCapsuleExtents(target);
float num = capsuleExtents.y + (2f * capsuleExtents.x);
float x = capsuleExtents.x;
Matrix4x4 matrix = ColliderUtil.CalculateCapsuleTransform(target);
int hotControl = GUIUtility.hotControl;
float height = target.height;
Vector3 localPos = (Vector3) ((Vector3.left * num) * 0.5f);
float num5 = SizeHandle(localPos, Vector3.left, matrix, true);
if (!GUI.changed)
{
num5 = SizeHandle(-localPos, Vector3.right, matrix, true);
}
if (GUI.changed)
{
float num6 = num / target.height;
height += num5 / num6;
}
float radius = target.radius;
num5 = SizeHandle((Vector3) (Vector3.forward * x), Vector3.forward, matrix, true);
if (!GUI.changed)
{
num5 = SizeHandle((Vector3) (-Vector3.forward * x), -Vector3.forward, matrix, true);
}
if (!GUI.changed)
{
num5 = SizeHandle((Vector3) (Vector3.up * x), Vector3.up, matrix, true);
}
if (!GUI.changed)
{
num5 = SizeHandle((Vector3) (-Vector3.up * x), -Vector3.up, matrix, true);
}
if (GUI.changed)
{
float num8 = Mathf.Max((float) (capsuleExtents.z / target.radius), (float) (capsuleExtents.x / target.radius));
radius += num5 / num8;
}
if ((hotControl != GUIUtility.hotControl) && (GUIUtility.hotControl != 0))
{
this.m_HandleControlID = GUIUtility.hotControl;
}
if (GUI.changed)
{
Undo.RecordObject(target, "Modify Capsule Collider");
target.radius = Mathf.Max(radius, 1E-05f);
target.height = Mathf.Max(height, 1E-05f);
}
Handles.color = color;
GUI.enabled = enabled;
}