search.cpan.org is shutting down
Aleksey Korabelshchikov > Math-Polygon-Tree-0.041 > Math::Polygon::Tree

Math-Polygon-Tree-0.041.tar.gz

Dependencies

Annotate this POD

# CPAN RT

 Open 0
View/Report Bugs
Module Version: 0.041   Source   Latest Release: Math-Polygon-Tree-0.08

# NAME

Math::Polygon::Tree - Class for fast check if point is inside polygon

# SYNOPSIS

Math::Polygon::Tree creates a B-tree of polygon parts for fast check if object is inside this polygon. This method is effective if polygon has hundreds or more segments.

```    use Math::Polygon::Tree;

my \$poly  = [ [0,0], [0,2], [2,2], ... ];
my \$bound = Math::Polygon::Tree->new( \$poly );

if ( \$bound->contains( [1,1] ) )  { ... }```

# METHODS

## new

Takes polygons (at least one) and creates a tree structure. All polygons are outer, inners in not implemented. Polygon is a reference to array of points

```    my \$poly1 = [ [0,0], [0,2], [2,2], ... ];
...
my \$bound = Math::Polygon::Tree->new( \$poly1, \$poly2, ... );```

or a .poly file

`    my \$bound = Math::Polygon::Tree->new( 'boundary.poly' );`

## contains

Checks if point is inside bound polygon. Returns 1 if point is inside polygon or 0 otherwise.

`    if ( \$bound->contains( [1,1] ) )  { ... `

## contains_points

Checks if points are inside bound polygon. Returns 1 if all points are inside polygon, 0 if all outside, or undef.

`    if ( \$bound->contains_points( [1,1], [2,2] ... ) )  { ...`

## contains_bbox_rough

Checks if box is inside bound polygon. Returns 1 if box is inside polygon, 0 if box is outside polygon or undef if it 'doubts'.

```    my (\$xmin, \$ymin, \$xmax, \$ymax) = ( 1, 1, 2, 2 );
if ( \$bound->contains_bbox_rough( \$xmin, \$ymin, \$xmax, \$ymax ) )  { ... }```

## contains_polygon_rough

Checks if polygon is inside bound polygon. Returns 1 if inside, 0 if outside or undef if 'doubts'.

`    if ( \$bound->contains_polygon_rough( [ [1,1], [1,2], [2,2], ... ] ) )  { ... }`

## bbox

Returns polygon's bounding box.

`    my ( \$xmin, \$ymin, \$xmax, \$ymax ) = \$bound->bbox();`

# FUNCTIONS

## polygon_bbox

Function that returns polygon's bbox.

`    my ( \$xmin, \$ymin, \$xmax, \$ymax ) = polygon_bbox( [1,1], [1,2], [2,2], ... );`

## polygon_centroid

Function that returns polygon's weightened center.

`    my ( \$x, \$y ) = polygon_centroid( [1,1], [1,2], [2,2], ... );`

## polygon_contains_point

Function that tests if polygon contains point (modified one from Math::Polygon::Calc). Returns -1 if point lays on polygon's boundary

# AUTHOR

liosha, `<liosha at cpan.org>`

# BUGS

Please report any bugs or feature requests to `bug-math-polygon-tree at rt.cpan.org`, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Math-Polygon-Tree. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

# SUPPORT

You can find documentation for this module with the perldoc command.

`    perldoc Math::Polygon::Tree`

You can also look for information at: