NAME
Graph::Easy::Edge - An edge (a path from one node to another)
SYNOPSIS
use Graph::Easy;
my $ssl = Graph::Easy::Edge->new(
label => 'encrypted connection',
style => 'solid',
);
$ssl->set_attribute('color', 'red');
my $src = Graph::Easy::Node->new('source');
my $dst = Graph::Easy::Node->new('destination');
$graph = Graph::Easy->new();
$graph->add_edge($src, $dst, $ssl);
print $graph->as_ascii();
DESCRIPTION
A Graph::Easy::Edge
represents an edge between two (or more) nodes in a simple graph.
Each edge has a direction (from source to destination, or back and forth), plus a style (line width and style), colors etc. It can also have a label, e.g. a text associated with it.
Each edge also contains a list of path-elements (also called cells), which make up the path from source to destination.
METHODS
error()
$last_error = $edge->error();
$cvt->error($error); # set new messags
$cvt->error(''); # clear error
Returns the last error message, or '' for no error.
as_ascii()
my $ascii = $edge->as_ascii();
Returns the edge as a little ascii representation.
as_txt()
my $txt = $edge->as_txt();
Returns the edge as a little Graph::Easy textual representation.
label()
my $label = $edge->label();
Returns the label (also known as 'name') of the edge.
style()
my $style = $edge->style();
Returns the style of the edge, like 'solid', 'dotted', 'double', etc.
to_nodes()
my @nodes = $edge->to_nodes();
Return the nodes this edge connects to, as objects.
from_nodes()
my @nodes = $edge->from_nodes();
Return the nodes (that connections come from) as objects.
nodes()
my @nodes = $edge->nodes();
Return all the nodes connected (in either direction) by this edge as objects.
add_cell()
$edge->add_cell( $cell );
Add a new cell to the edge. $cell
should be an Graph::Easy::Path object.
clear_cells()
$edge->clear_cells();
Removes all belonging cells.
cells()
my $cells = $edge->cells();
Returns a hash containing all the cells this edge currently occupies. Keys on the hash are of the form of $x,$y
e.g. 5,3
denoting cell at X = 5 and Y = 3. The values of the hash are the cell objects.
bidirectional()
$edge->bidirectional(1);
if ($edge->bidirectional())
{
}
Returns true if the edge is bidirectional, aka has arrow heads on both ends. An optional parameter will set the bidirectional status of the edge.
undirected()
$edge->undirected(1);
if ($edge->undirected())
{
}
Returns true if the edge is undirected, aka has now arrow at all. An optional parameter will set the undirected status of the edge.
from()
my $from = $edge->from();
Returns the node that this edge starts at. See also to()
.
to()
my $to = $edge->to();
Returns the node that this edge leads to. See also from()
.
EXPORT
None by default.
TODO
- joints
-
Edges that join another edge.
SEE ALSO
AUTHOR
Copyright (C) 2004 - 2005 by Tels http://bloodgate.com.
See the LICENSE file for more details.