
=head1 NAME

Box2D::b2PolygonShape - A convex polygon.

=head1 SYNOPSIS

  my $rect = Box2D::b2PolygonShape->new();
  $rect->SetAsBox( $hx, $hy );

=head1 DESCRIPTION

A convex polygon. It is assumed that the interior of the polygon is to
the left of each edge.

=head1 METHODS

=head2 new()

Default constructor.

Returns a C<Box2D::b2PolygonShape>

=head2 GetVertex( $index )

Get a vertex by index.

Parameters:

=over 4

=item * C<int32> C<$index>

=back

Returns a C<Box2D::b2Vec2>

=head2 GetVertexCount()

Get the vertex count.

Returns a C<int32>

=head2 Set( @vertices )

Copy vertices. This assumes the vertices define a convex polygon. It is assumed
that the exterior is the the right of each edge.

Parameters:

=over 4

=item * C<array> C<@vertices>

=back

=head2 SetAsBox( $hx, $hy )

=head2 SetAsBox( $hx, $hy, $center, $angle )

Build vertices to represent an oriented box.

Parameters:

=over 4

=item * C<float32> C<$hx> - the half-width.

=item * C<float32> C<$hy> - the half-height.

=item * C<Box2D::b2Vec2> C<$center> (optional) - the center of the box in local
coordinates.

=item * C<float32> C<$angle> (optional) - the rotation of the box in local
coordinates.

=back

=head2 SetAsEdge( $v1, $v2 )

Set this as a single edge.

Parameters:

=over 4

=item * C<Box2D::b2Vec2> C<$v1>

=item * C<Box2D::b2Vec2> C<$v2>

=back

=head1 SEE ALSO

=over 4

=item * L<Box2D>

=item * L<Box2D::b2Shape>

=back

=head1 BUGS

See L<Box2D/BUGS>

=head1 AUTHORS

See L<Box2D/AUTHORS>

=head1 COPYRIGHT & LICENSE

See L<Box2D/"COPYRIGHT & LICENSE">

=cut
