—#############################################################################
# (c) by Tels 2004 - 2005. An empty filler cell. Part of Graph::Easy.
#
#############################################################################
package
Graph::Easy::Node::Cell;
use
Graph::Easy::Node;
@ISA
=
qw/Graph::Easy::Node/
;
$VERSION
=
'0.10'
;
use
strict;
#############################################################################
sub
_init
{
# generic init, override in subclasses
my
(
$self
,
$args
) =
@_
;
$self
->{class} =
''
;
$self
->{name} =
''
;
$self
->{x} = 0;
$self
->{y} = 0;
# default: belongs to no node
$self
->{node} =
undef
;
foreach
my
$k
(
keys
%$args
)
{
if
(
$k
!~ /^(node|graph|x|y)\z/)
{
Carp::confess (
"Invalid argument '$k' passed to Graph::Easy::Node::Cell->new()"
);
}
$self
->{
$k
} =
$args
->{
$k
};
}
$self
;
}
sub
_correct_size
{
my
$self
=
shift
;
$self
->{w} = 0;
$self
->{h} = 0;
$self
;
}
sub
node
{
# return the node this cell belongs to
my
$self
=
shift
;
$self
->{node};
}
sub
as_ascii
{
''
;
}
sub
as_html
{
''
;
}
sub
group
{
my
$self
=
shift
;
$self
->{node}->group();
}
1;
__END__
=head1 NAME
Graph::Easy::Node::Cell - An empty filler cell
=head1 SYNOPSIS
use Graph::Easy;
use Graph::Easy::Edge;
my $graph = Graph::Easy->new();
my $node = $graph->add_node('A');
my $path = Graph::Easy::Node::Cell->new(
graph => $graph, node => $node,
);
...
print $graph->as_ascii();
=head1 DESCRIPTION
A C<Graph::Easy::Node::Cell> is used to reserve a cell in the grid for nodes
that occupy more than one cell.
You should not need to use this class directly.
=head1 METHODS
=head2 error()
$last_error = $cell->error();
$cvt->error($error); # set new messags
$cvt->error(''); # clear error
Returns the last error message, or '' for no error.
=head2 node()
my $node = $cell->node();
Returns the node this filler cell belongs to.
=head1 SEE ALSO
L<Graph::Easy>.
=head1 AUTHOR
Copyright (C) 2004 - 2005 by Tels L<http://bloodgate.com>.
See the LICENSE file for more details.
=cut