NAME
Graph::Easy::Layout::Path - Path management for Manhattan-style grids
SYNOPSIS
use
Graph::Easy;
my
$graph
= Graph::Easy->new();
my
$bonn
= Graph::Easy::Node->new(
name
=>
'Bonn'
,
);
my
$berlin
= Graph::Easy::Node->new(
name
=>
'Berlin'
,
);
$graph
->add_edge (
$bonn
,
$berlin
);
$graph
->layout();
$graph
->as_ascii( );
# prints:
# +------+ +--------+
# | Bonn | --> | Berlin |
# +------+ +--------+
DESCRIPTION
Graph::Easy::Layout::Scout
contains just the actual path-managing code for Graph::Easy, e.g. to create/destroy/maintain paths, node placement etc.
EXPORT
Exports nothing.
SEE ALSO
METHODS into Graph::Easy
This module injects the following methods into Graph::Easy
:
_path_is_clear()
$graph
->_path_is_clear(
$path
);
For all points (x,y pairs) in the path, check that the cell is still free. $path
points to a list x,y,type pairs as in [ [x,y,type], [x,y,type], ...]
.
_create_cell()
my
$cell
=
$graph
->(
$edge
,
$x
,
$y
,
$type
);
Create a cell at $x,$y
coordinates with type $type
for the specified edge.
_path_is_clear()
$graph
->_path_is_clear();
For all points (x,y pairs) in the path, check that the cell is still free. $path
points to a list of [ x,y,type, x,y,type, ...]
.
Returns true when the path is clear, false otherwise.
_trace_path()
my
$path
=
my
$graph
->_trace_path(
$src
,
$dst
,
$edge
);
Find a free way from source node/group to destination node/group for the specified edge. Both source and destination need to be placed beforehand.
METHODS in Graph::Easy::Node
This module injects the following methods into Graph::Easy::Node
:
_near_places()
my
$node
->_near_places();
Take a node and return a list of possible placements around it and prune out already occupied cells. $d is the distance from the node border and defaults to two (for placements). Set it to one for adjacent cells.
_shuffle_dir()
my
$dirs
=
$node
->_shuffle_dir( [ 0,1,2,3 ],
$dir
);
Take a ref to an array with four entries and shuffle them around according to $dir
.
_shift()
my
$dir
=
$node
->_shift(
$degrees
);
Return a the flow()
direction shifted by X degrees to $dir
.
AUTHOR
Copyright (C) 2004 - 2007 by Tels http://bloodgate.com.
See the LICENSE file for information.