Mark Overmeer > Math-Polygon-1.03 > Math::Polygon::Surface

Download:
Math-Polygon-1.03.tar.gz

Dependencies

Annotate this POD

# CPAN RT

 Open 5
View/Report Bugs
Module Version: 1.03   Source   Latest Release: Math-Polygon-1.06

# NAME

Math::Polygon::Surface - Polygon with exclusions

# SYNOPSIS

``` my \$outer   = Math::Polygon->new( [1,2], [2,4], [5,7], [1,2] );
my \$surface = Math::Polygon::Surface->new(\$outer);```

# DESCRIPTION

A surface is one polygon which represents the outer bounds of an array, plus optionally a list of polygons which represent exclusions from that outer polygon.

# METHODS

## Constructors

\$obj->new([%options], [\$polygons], %options)
Math::Polygon::Surface->new([%options], [\$polygons], %options)

You may add %options after and/or before the \$polygons. You may also use the "outer" and "inner" options. \$polygons are references to ARRAYs of points, each an ARRAY of X and Y, but better instantiated Math::Polygon objects.

``` -Option--Default
inner   []
outer   undef```
inner => ARRAY-OF-POLYGONS

The inner polygons, zero or more Math::Polygon objects.

outer => POLYGON

The outer polygon, a Math::Polygon.

## Attributes

\$obj->inner()

Returns a list (often empty) of inner polygons.

\$obj->outer()

Returns the outer polygon.

## Simple calculations

area()

Returns the area enclosed by the outer polygon, minus the areas of the inner polygons. See method Math::Polygon::area().

\$obj->bbox()

Returns a list with four elements: (xmin, ymin, xmax, ymax), which describe the bounding box of the surface, which is the bbox of the outer polygon. See method Math::Polygon::bbox().

\$obj->perimeter()

The length of the border: sums outer and inner perimeters. See method Math::Polygon::perimeter().

## Clipping

\$obj->fillClip1(\$box)

Clipping a polygon into rectangles can be done in various ways. With this algorithm, the parts of the polygon which are outside the \$box are mapped on the borders.

All polygons are treated separately.

\$obj->lineClip(\$box)

Returned is a list of ARRAYS-OF-POINTS containing line pieces from the input surface. Lines from outer and inner polygons are undistinguishable. See method Math::Polygon::lineClip().

\$obj->string()

Translate the surface structure into some string. Use Geo::WKT if you need a standardized format.

Returned is a single string possibly containing multiple lines. The first line is the outer, the other lines represent the inner polygons.

# DIAGNOSTICS

Error: surface requires outer polygon

# SEE ALSO

This module is part of Math-Polygon distribution version 1.03, built on January 21, 2014. Website: http://perl.overmeer.net/geo/

# LICENSE

Copyrights 2004,2006-2014 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html

syntax highlighting: