diff options
Diffstat (limited to 'Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs')
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs b/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs deleted file mode 100644 index ce0962a7..00000000 --- a/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs +++ /dev/null @@ -1,152 +0,0 @@ -using UnityEngine; -using UnityEditor; -using System.Collections; - -[CustomEditor(typeof(BezierPoint))] -[CanEditMultipleObjects] -public class BezierPointEditor : Editor { - - BezierPoint point; - - SerializedProperty handleTypeProp; - SerializedProperty handle1Prop; - SerializedProperty handle2Prop; - - private delegate void HandleFunction(BezierPoint p); - private HandleFunction[] handlers = new HandleFunction[] { HandleConnected, HandleBroken, HandleAbsent }; - - void OnEnable(){ - point = (BezierPoint)target; - - handleTypeProp = serializedObject.FindProperty("handleStyle"); - handle1Prop = serializedObject.FindProperty("_handle1"); - handle2Prop = serializedObject.FindProperty("_handle2"); - } - - public override void OnInspectorGUI (){ - - serializedObject.Update(); - - BezierPoint.HandleStyle newHandleType = (BezierPoint.HandleStyle)EditorGUILayout.EnumPopup("Handle Type", (BezierPoint.HandleStyle)handleTypeProp.intValue); - - if(newHandleType != (BezierPoint.HandleStyle)handleTypeProp.intValue) - { - handleTypeProp.intValue = (int)newHandleType; - - if((int)newHandleType == 0) - { - if(handle1Prop.vector3Value != Vector3.zero) handle2Prop.vector3Value = -handle1Prop.vector3Value; - else if(handle2Prop.vector3Value != Vector3.zero) handle1Prop.vector3Value = -handle2Prop.vector3Value; - else - { - handle1Prop.vector3Value = new Vector3(0.1f, 0, 0); - handle2Prop.vector3Value = new Vector3(-0.1f, 0, 0); - } - } - - else if((int)newHandleType == 1) - { - if(handle1Prop.vector3Value == Vector3.zero && handle2Prop.vector3Value == Vector3.zero) - { - handle1Prop.vector3Value = new Vector3(0.1f, 0, 0); - handle2Prop.vector3Value = new Vector3(-0.1f, 0, 0); - } - } - - else if((int)newHandleType == 2) - { - handle1Prop.vector3Value = Vector3.zero; - handle2Prop.vector3Value = Vector3.zero; - } - } - - if(handleTypeProp.intValue != 2) - { - Vector3 newHandle1 = EditorGUILayout.Vector3Field("Handle 1", handle1Prop.vector3Value); - Vector3 newHandle2 = EditorGUILayout.Vector3Field("Handle 2", handle2Prop.vector3Value); - - if(handleTypeProp.intValue == 0){ - if(newHandle1 != handle1Prop.vector3Value){ - handle1Prop.vector3Value = newHandle1; - handle2Prop.vector3Value = -newHandle1; - } - - else if(newHandle2 != handle2Prop.vector3Value){ - handle1Prop.vector3Value = -newHandle2; - handle2Prop.vector3Value = newHandle2; - } - } - - else{ - handle1Prop.vector3Value = newHandle1; - handle2Prop.vector3Value = newHandle2; - } - } - - if(GUI.changed){ - serializedObject.ApplyModifiedProperties(); - EditorUtility.SetDirty(target); - } - } - - void OnSceneGUI() - { - - Handles.color = Color.green; - Vector3 newPosition = Handles.FreeMoveHandle(point.position, point.transform.rotation, HandleUtility.GetHandleSize(point.position)*0.2f, Vector3.zero, Handles.CubeCap); - if(point.position != newPosition) point.position = newPosition; - - handlers[(int)point.handleStyle](point); - - Handles.color = Color.yellow; - Handles.DrawLine(point.position, point.globalHandle1); - Handles.DrawLine(point.position, point.globalHandle2); - - BezierCurveEditor.DrawOtherPoints(point.curve, point); - } - - private static void HandleConnected(BezierPoint p){ - Handles.color = Color.cyan; - - Vector3 newGlobal1 = Handles.FreeMoveHandle(p.globalHandle1, p.transform.rotation, HandleUtility.GetHandleSize(p.globalHandle1)*0.15f, Vector3.zero, Handles.SphereCap); - - if(newGlobal1 != p.globalHandle1){ - Undo.RegisterUndo(p, "Move Handle"); - p.globalHandle1 = newGlobal1; - p.globalHandle2 = -(newGlobal1 - p.position) + p.position; - } - - Vector3 newGlobal2 = Handles.FreeMoveHandle(p.globalHandle2, p.transform.rotation, HandleUtility.GetHandleSize(p.globalHandle2)*0.15f, Vector3.zero, Handles.SphereCap); - - if(newGlobal2 != p.globalHandle2){ - Undo.RegisterUndo(p, "Move Handle"); - p.globalHandle1 = -(newGlobal2 - p.position) + p.position; - p.globalHandle2 = newGlobal2; - } - } - - private static void HandleBroken(BezierPoint p){ - Handles.color = Color.cyan; - - Vector3 newGlobal1 = Handles.FreeMoveHandle(p.globalHandle1, Quaternion.identity, HandleUtility.GetHandleSize(p.globalHandle1)*0.15f, Vector3.zero, Handles.SphereCap); - Vector3 newGlobal2 = Handles.FreeMoveHandle(p.globalHandle2, Quaternion.identity, HandleUtility.GetHandleSize(p.globalHandle2)*0.15f, Vector3.zero, Handles.SphereCap); - - if(newGlobal1 != p.globalHandle1) - { - Undo.RegisterUndo(p, "Move Handle"); - p.globalHandle1 = newGlobal1; - } - - if(newGlobal2 != p.globalHandle2) - { - Undo.RegisterUndo(p, "Move Handle"); - p.globalHandle2 = newGlobal2; - } - } - - private static void HandleAbsent(BezierPoint p) - { - p.handle1 = Vector3.zero; - p.handle2 = Vector3.zero; - } -}
\ No newline at end of file |