namespace Netron.Diagramming.Core.Analysis {
///
/// Describes a connection from the point of view of graph analysis.
///
public interface IEdge {
///
/// Indicates if this edge is directed or undirected.
///
bool IsDirected { get; set; }
///
/// Returns the first, or source, node upon which this Edge is incident.
///
INode SourceNode { get; }
///
/// Returns the second, or target, node upon which this Edge is incident.
///
INode TargetNode { get; }
///
/// Given a Node upon which this Edge is incident, the opposite incident
/// Node is returned. Throws an exception if the input node is not incident
/// on this Edge.
///
INode AdjacentNode(INode node);
}
}