public override void OnInspectorGUI()
    {
        GUI.changed = false;
        OrbitSegment orbit = (OrbitSegment)target;

        GameObject body;
        GameObject centerObject = orbit.centerBody;
        GameObject destObject;
        bool       vFromScript = orbit.velocityFromScript;
        bool       shortPath   = orbit.shortPath;
        int        numPoints;

        centerObject = (GameObject)EditorGUILayout.ObjectField(
            new GUIContent("CenterObject", centerTip),
            orbit.centerBody,
            typeof(GameObject),
            true);

        body = (GameObject)EditorGUILayout.ObjectField(
            new GUIContent("Body", bodyTip),
            orbit.body,
            typeof(GameObject),
            true);

        vFromScript = EditorGUILayout.Toggle(new GUIContent("Velocity From Script", vTip), vFromScript);

        numPoints = EditorGUILayout.IntField(new GUIContent("Number of Points", rTip), orbit.numPoints);

        shortPath = EditorGUILayout.Toggle(new GUIContent("Short Path", shortTip), orbit.shortPath);

        destObject = (GameObject)EditorGUILayout.ObjectField(
            new GUIContent("Destination Object", dirTip),
            orbit.destination,
            typeof(GameObject),
            true);

        if (GUI.changed)
        {
            Undo.RecordObject(orbit, "OrbitEllipse Change");
            orbit.centerBody         = centerObject;
            orbit.body               = body;
            orbit.numPoints          = numPoints;
            orbit.velocityFromScript = vFromScript;
            orbit.destination        = destObject;
            orbit.shortPath          = shortPath;
            EditorUtility.SetDirty(orbit);
        }
    }