Quick Navigator

 Search Site Miscellaneous Server Agreement Year 2038 Credits

# Manual Reference Pages  -  MATH::POLYGON::SURFACE (3)

.ds Aq ’

### 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-><B>newB>([%options], [\$polygons], %options)
Math::Polygon::Surface-><B>newB>([%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->innerB>() Returns a list (often empty) of inner polygons. \$obj->outerB>() Returns the outer polygon.

#### Simple calculations

 areaB>() Returns the area enclosed by the outer polygon, minus the areas of the inner polygons. See method Math::Polygon::area(). \$obj->bboxB>() 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->perimeterB>() The length of the border: sums outer and inner perimeters. See method Math::Polygon::perimeter().

#### Clipping

 \$obj->fillClip1B>(\$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->lineClipB>(\$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->stringB>() 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

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