public void Update() { if (sPData.Projection.ContinuosUpdate == Switch.On) { SplineCreationClass.ProjectSpline(sPData); } }
public static void DrawSelectedNodeGizmos(SPData sPData, Node selectedNode) { var Point = selectedNode.Point; var Point1 = selectedNode.Point1; var Point2 = selectedNode.Point2; Vector3 p; EditorGUI.BeginChangeCheck(); p = Handles.PositionHandle(Point.position, Quaternion.identity); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(sPData.SplinePlus, "spline plus shape changed changed"); Undo.RecordObject(Point.transform, "Position point changed"); Point.position = p; //sPData.Update(); SplineCreationClass.Update(sPData); } if (sPData.SplineSettings.Show_SecondaryHandles && selectedNode._Type != NodeType.Free) { Vector3 pos, pos2; EditorGUI.BeginChangeCheck(); pos = Handles.PositionHandle(Point1.position, Quaternion.identity); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(sPData.SplinePlus, "spline plus shape changed changed"); Undo.RecordObject(Point1.transform, "Position point1 changed"); Undo.RecordObject(Point2.transform, "Position point2 changed"); Point1.position = pos; if (selectedNode._Type == NodeType.Smooth) { Point2.localPosition = -Point1.localPosition; } sPData.Update(); } EditorGUI.BeginChangeCheck(); pos2 = Handles.PositionHandle(Point2.position, Quaternion.Euler(0, 180f, 0)); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(sPData.SplinePlus, "spline plus shape changed changed"); Undo.RecordObject(Point1.transform, "Position point1 changed"); Undo.RecordObject(Point2.transform, "Position point2 changed"); Point2.position = pos2; if (selectedNode._Type == NodeType.Smooth) { Point1.localPosition = -Point2.localPosition; } sPData.Update(); } NodeHandlesGizmos(Point, Point1, Point2); } }
protected virtual void OnSceneGUI() { Selection.activeGameObject = SPData.SplinePlus.gameObject; if (SPData.Projection.ContinuosUpdate == Switch.On) { SplineCreationClass.ProjectSpline(SPData); } SceneViewDisplay.Display(SPData); Shortcuts(); }
public SplinePlus() { SPData = CreateInstance(SPData); SPData.SplinePlus = this; SplineCreationClass = CreateInstance(SplineCreationClass); FollowerClass = CreateInstance(FollowerClass); TrainClass = CreateInstance(TrainClass); EventClass = CreateInstance(EventClass); GizmosClass = CreateInstance(GizmosClass); ProjectionClass = CreateInstance(ProjectionClass); SPData.Selections = CreateInstance(SPData.Selections); SPData.SmoothData = CreateInstance(SPData.SmoothData); SPData.SharedSettings = CreateInstance(SPData.SharedSettings); }
static void AddModifier(object objs) { var o = (object[])objs; var modifierName = (string)o[1]; var sPData = (SPData)o[0]; var myType = System.Type.GetType("ElseForty." + modifierName + ", Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); //sPData.meshModifier =(IMeshModifier) myType; // var myType = Type.GetType(modifierName + ", Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"); if (myType == null) { EditorUtility.DisplayDialog("Error", modifierName + " modifier not found!", "Okey"); } else { sPData.SplinePlus.gameObject.AddComponent(myType); } SplineCreationClass.Update(sPData); }
public void OnEnable() { var SplinePlus = (SplinePlus)target; SPData = SplinePlus.SPData; if (Banner == null) { Banner = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Banner.png")); } if (Plus == null) { Plus = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Plus.png")); } if (Minus == null) { Minus = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Minus.png")); } if (Delete == null) { Delete = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Delete.png")); } if (Add == null) { Add = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Add.png")); } if (Reverse == null) { Reverse = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Reverse.png")); } if (BreakAt == null) { BreakAt = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/BreakAt.png")); } if (FlipHandles == null) { FlipHandles = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/FlipHandles.png")); } if (SceneViewMenu == null) { SceneViewMenu = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/SceneViewMenu.png")); } if (Edit == null) { Edit = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Edit.png")); } if (SM == null) { SM = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/SM.png")); } if (Snap == null) { Snap = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Snap.png")); } if (On == null) { On = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/On.png")); } if (Off == null) { Off = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Off.png")); } if (Selected == null) { Selected = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Selected.png")); } if (Deselected == null) { Deselected = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Deselected.png")); } if (PivotEditOn == null) { PivotEditOn = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/PivotEditOn.png")); } if (PivotEditOff == null) { PivotEditOff = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/PivotEditOff.png")); } if (Duplicate == null) { Duplicate = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Duplicate.png")); } if (Settings == null) { Settings = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Settings.png")); } if (Return == null) { Return = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Return.png")); } if (Next == null) { Next = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Next.png")); } if (Previous == null) { Previous = new GUIContent((Texture2D)EditorGUIUtility.Load("Assets/ElseForty/Media/Previous.png")); } SplineEditing = SplinePlus.CreateInstance(SplineEditing); NodeCoordinatesEditor = SplinePlus.CreateInstance(NodeCoordinatesEditor); SplineSettingsEditor = SplinePlus.CreateInstance(SplineSettingsEditor); FollowerEditor = SplinePlus.CreateInstance(FollowerEditor); TrainEditor = SplinePlus.CreateInstance(TrainEditor); ProjectionSettingsEditor = SplinePlus.CreateInstance(ProjectionSettingsEditor); SceneViewUI = SplinePlus.CreateInstance(SceneViewUI); SplineCreationClass = SplinePlus.CreateInstance(SplineCreationClass); SmoothNodeClass = SplinePlus.CreateInstance(SmoothNodeClass); HandlesClass = SplinePlus.CreateInstance(HandlesClass); settingsData = AssetDatabase.LoadAssetAtPath("Assets/ElseForty/SplinePlus/Editor/Data.asset", typeof(SettingsData)) as SettingsData; if (settingsData == null) { settingsData = (SettingsData)ScriptableObject.CreateInstance("SettingsData"); AssetDatabase.CreateAsset(settingsData, "Assets/ElseForty/SplinePlus/Editor/Data.asset"); AssetDatabase.SaveAssets(); } SPData.SharedSettings.ShowHelper = settingsData.ShowHelper; SPData.SharedSettings.ShowRaycast = settingsData.ShowRaycast; SPData.SharedSettings.ShowGizmos = settingsData.ShowGizmos; SPData.SharedSettings.HelperSize = settingsData.HelperSize; SPData.SharedSettings.GizmosSize = settingsData.GizmosSize; SPData.SharedSettings.ShowSecondaryHandles = settingsData.ShowSecondaryHandles; SPData.NodeType = settingsData.NodeType; SPData.SharedSettings.StandardPathPointColor = settingsData.StandardPathPointColor; SPData.SharedSettings.RandomSharedNodeColor = settingsData.RandomSharedNodeColor; SPData.SharedSettings.RandomSharedNodeColor = settingsData.RandomSharedNodeColor; EditorApplication.playmodeStateChanged += ModeChanged; ElementHeight = EditorGUIUtility.singleLineHeight; ElementHeightSpace = 2; }