Aetheria/Assets/Scripts/NIH/Graph#/ISoftMutableGraph.cs
hyperion51 d5f2e3734a TECH TREES WHOO
Implemented procedural tech tree generation by porting GraphSharp to Unity.
Also, some database editor convenience changes.
2020-04-11 19:18:02 +01:00

43 lines
No EOL
1.4 KiB
C#

using System;
using System.Collections.Generic;
using QuickGraph;
namespace GraphSharp
{
/// <summary>
/// Soft mutation means: We can hide the vertices or the edges.
/// </summary>
/// <typeparam name="TVertex"></typeparam>
/// <typeparam name="TEdge"></typeparam>
public interface ISoftMutableGraph<TVertex, TEdge> : IBidirectionalGraph<TVertex, TEdge>
where TEdge : IEdge<TVertex>
{
bool HideVertex( TVertex v );
bool HideVertex( TVertex v, string tag );
void HideVertices( IEnumerable<TVertex> vertices );
void HideVertices( IEnumerable<TVertex> vertices, string tag );
void HideVerticesIf( Func<TVertex, bool> predicate, string tag );
bool IsHiddenVertex( TVertex v );
bool UnhideVertex( TVertex v );
void UnhideVertexAndEdges( TVertex v );
IEnumerable<TVertex> HiddenVertices { get; }
int HiddenVertexCount { get; }
bool HideEdge( TEdge e );
bool HideEdge( TEdge e, string tag );
void HideEdges( IEnumerable<TEdge> edges );
void HideEdges( IEnumerable<TEdge> edges, string tag );
void HideEdgesIf( Func<TEdge, bool> predicate, string tag );
bool IsHiddenEdge( TEdge e );
bool UnhideEdge( TEdge e );
void UnhideEdges( IEnumerable<TEdge> edges );
void UnhideEdgesIf( Func<TEdge, bool> predicate );
IEnumerable<TEdge> HiddenEdgesOf( TVertex v );
int HiddenEdgeCountOf( TVertex v );
IEnumerable<TEdge> HiddenEdges { get; }
int HiddenEdgeCount { get; }
bool Unhide( string tag );
bool UnhideAll( );
}
}