protected void DoOpenEndedInspector <U>(SerializedProperty isOpenEndedProperty) where U : PathEditorTool <T>
        {
            serializedObject.Update();

            using (var check = new EditorGUI.ChangeCheckScope())
            {
                EditorGUILayout.PropertyField(isOpenEndedProperty);

                if (check.changed)
                {
                    if (EditorToolManager.IsActiveTool <U>() && EditorToolManager.IsAvailable <U>())
                    {
                        var paths = EditorToolManager.GetEditorTool <U>().paths;

                        foreach (var path in paths)
                        {
                            path.undoObject.RegisterUndo("Set Open Ended");
                            path.isOpenEnded = isOpenEndedProperty.boolValue;
                        }
                    }
                }
            }

            serializedObject.ApplyModifiedProperties();
        }
 protected void DoSnappingInspector <U>() where U : PathEditorTool <T>
 {
     if (EditorToolManager.IsActiveTool <U>() && EditorToolManager.IsAvailable <U>())
     {
         var tool = EditorToolManager.GetEditorTool <U>();
         tool.enableSnapping = EditorGUILayout.Toggle(Contents.snappingLabel, tool.enableSnapping);
     }
 }
        protected void DoPathInspector <U>() where U : PathEditorTool <T>
        {
            if (EditorToolManager.IsActiveTool <U>() && EditorToolManager.IsAvailable <U>())
            {
                var paths = EditorToolManager.GetEditorTool <U>().paths;

                CreateCachedEditor(paths, null, ref m_CachedEditor);

                if (m_CachedEditor == null) //Needed to avoid a nullref on exiting playmode
                {
                    return;
                }

                using (var check = new EditorGUI.ChangeCheckScope())
                {
                    m_CachedEditor.OnInspectorGUI();

                    if (check.changed)
                    {
                        EditorToolManager.GetEditorTool <U>().SetShapes();
                    }
                }
            }
        }