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