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( );
}
}