Graph:...t::Path(3pm)

πŸ“¦
version 0.76 Β· 4 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– Graph::Easy::Layout::Path β€” the manual, but make it cute πŸ’–

okay bestie, so this is the Perl docs page for Graph::Easy::Layout::Path (you'll see it filed under Graph:...t::Path(3pm) in the User Contributed Perl Documentation shelf, iykyk). It's giving path management for Manhattan-style grids and honestly? it ate. πŸ¦‹


✨ NAME ✨

Graph::Easy::Layout::Path β€” Path management for Manhattan-style grids


🌸 SYNOPSIS 🌸

no cap, here's the whole vibe in code, copy it exactly bestie:

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();

print $graph->as_ascii( );

# prints:

# +------+     +--------+
# | Bonn | --> | Berlin |
# +------+     +--------+

look at that lil arrow. iconic. πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

so "Graph::Easy::Layout::Scout" contains just the actual path-managing code for Graph::Easy β€” like, the create/destroy/maintain-paths-and-node-placement kind of stuff. that's the whole gig. periodt. ✨


🫢 EXPORT 🫢

Exports nothing. not a single thing. empty-handed but glowing. πŸ’€


🌈 SEE ALSO 🌈

Graph::Easy. that's it, that's the list. go look at the main character. πŸ‘‘


πŸ’œ METHODS into Graph::Easy πŸ’œ

this module injects the following methods into "Graph::Easy" β€” sneaky lil gifts, love that for us. 🎁

🧚 _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. brand new cell, fresh out the box. ✨

πŸ’– _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. so like, a vibe check on the path. 🫢

⭐ _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 β€” no shortcuts, bestie, they gotta already be sitting there. πŸ“


πŸ’… 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.

so $d defaults to two, but if you want the adjacent cells you set it to one. lowkey important. πŸŽ€

🌸 _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. shuffle shuffle shuffle πŸ’ƒ

πŸ”₯ _shift()

my $dir = $node->_shift($degrees);

Return a the "flow()" direction shifted by X degrees to $dir. yes it literally says "a the", we don't gatekeep the original wording. 😭


πŸ‘‘ AUTHOR πŸ‘‘

Copyright (C) 2004 - 2007 by Tels <http://bloodgate.com>.

See the LICENSE file for information. go read it, it's right there. πŸ“œ


and that's the whole page bestie!! this one came from perl v5.36.0 and it's dated 2022-11-20, filed under Graph:...t::Path(3pm). mwah, no notes, go build something cute. πŸ’–βœ¨πŸ¦‹πŸŽ€