trusty (3) Math::Polygon::Surface.3pm.gz

Provided by: libmath-polygon-perl_1.02-1_all bug

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.02, built on September 19, 2011. Website:
       http://perl.overmeer.net/geo/

LICENSE

       Copyrights 2004,2006-2011 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