NAME
    Math::Geometry::Planar::Offset - Calculate offset polygons

SYNOPSIS
     use Math::Geometry::Planar::Offset;

AUTHOR
    Eric Wilhelm <ewilhelm at cpan dot org>

COPYRIGHT NOTICE
    Copyright (C) 2003-2005 Eric Wilhelm

NO WARRANTY
    Absolutely, positively NO WARRANTY, neither express or implied, is
    offered with this software. You use this software at your own risk. In
    case of loss, neither Eric Wilhelm, nor anyone else, owes you anything
    whatseover. You have been warned.

    Note that this includes NO GUARANTEE of MATHEMATICAL CORRECTNESS. If you
    are going to use this code in a production environment, it is YOUR
    RESPONSIBILITY to verify that the methods return the correct values.

LICENSE
    You may use this software under one of the following licenses:

      (1) GNU General Public License 
        (found at http://www.gnu.org/copyleft/gpl.html) 
      (2) Artistic License 
        (found at http://www.perl.com/pub/language/misc/Artistic.html)

CHANGES
      1.02
        First Public Release

      1.03
        Code cleanup

      1.03_01
        Build file restructure.

BUGS
    There are currently some problems with concurrent edge events on outward
    (and maybe inward) offsets. Some significant changes need to be made.

METHODS
    These methods are actually defined in Math::Geometry::Planar, which uses
    this module.

  offset_polygon
    Returns reference to an array of polygons representing the original
    polygon offsetted by $distance

      $polygon->offset_polygon($distance);

Functions
    Only OffsetPolygon is exported.

  pi
    Returns the constant pi

  OffsetPolygon
    Make offset polygon subroutine.

    Call with offset distance and ref to array of points for original
    polygon polygon input must be pre-wrapped so point[n]=point[0]

    Will return a list of polygons (as refs.) The number of polygons in the
    output depends on the shape of your input polygon. It may split into
    several pieces during the offset.

      my (@results) = OffsetPolygon(\@points, $distance);
      foreach my $polygon (@results) {
        # do something with @$polygon
      }

