The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.

has_ports()

        if ($edge->has_ports())
          {
          ...
          }

Return true if the edge has restriction on the starting or ending port, e.g. either the start or end attribute is set on this 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

Graph::Easy.

AUTHOR

Copyright (C) 2004 - 2005 by Tels http://bloodgate.com.

See the LICENSE file for more details.