using System.Collections.Generic; using QuickGraph; using System.Diagnostics.Contracts; namespace GraphSharp { public interface ICompoundGraph : IBidirectionalGraph where TEdge : IEdge { bool AddChildVertex( TVertex parent, TVertex child ); int AddChildVertexRange( TVertex parent, IEnumerable children ); TVertex GetParent( TVertex vertex ); bool IsChildVertex( TVertex vertex ); IEnumerable GetChildrenVertices( TVertex vertex ); int GetChildrenCount( TVertex vertex ); bool IsCompoundVertex( TVertex vertex ); IEnumerable CompoundVertices { get; } IEnumerable SimpleVertices { get; } } }