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();
    }
Exemple #4
0
    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);
    }
Exemple #5
0
    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);
    }
Exemple #6
0
    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;
    }