Graphics::Primitive::Canvas(3p)

NAME
Graphics::Primitive::Canvas - Component composed of paths

DESCRIPTION
Graphics::Primitive::Canvas is a component for drawing arbitrary things. It holds Paths and Operations.

SYNOPSIS
  use Graphics::Primitive::Canvas;

  my $canvas = Graphics::Primitive::Canvas->new;
  $canvas->move_to($point); # or just $x, $y
  $canvas->do($op);

DESCRIPTION
The Canvas is a container for multiple Paths. It has a path that is the operative path for all path-related methods. You can treat the Canvas as if it was a path, calling methods like line_to or move_to.

When you are ready to perform an operation on the path, call the do method with the operation you want to call as an argument. Drawing a line and stroking it would look like:

  $canvas->move_to(0, 0);
  $canvas->line_to(10, 10);
  my $op = Graphics::Primitive::Operation::Stroke->new;
  $stroke->brush->color(
      Graphics::Color::RGB->new(red => 0, blue => 1, green => 1)
  );
  $canvas->do($op);

When you instantiate a Canvas a newly instantiated path resides in path. After you call do that current path is moved to the paths list and new path is placed in current_path. If you want to keep the path around you can call save before do then call restore to put a saved copy of the path back into path.

METHODS

  Constructor

new Creates a new Graphics::Primitive::Canvas

  Instance Methods

do  Given an operation, pushes the current path onto the path stack.

      FIXME: Example

path
    The current path this canvas is using.

path_count
    Count of paths in paths.

paths
    Arrayref of hashrefs representing paths combined with their operations:

      [
        {
            path => $path,
            op   => $op
        },
      ]

restore
    Replace the current path by popping the top path from the saved path list.

save
    Copy the current path and push it onto the stack of saved paths.

saved_paths
    List of saved paths. Add to the list with save and pop from it using restore.

saved_path_count
    Count of paths saved in saved_paths.

AUTHOR
Cory Watson <gphat@cpan.org>

COPYRIGHT & LICENSE
Copyright 2008-2010 by Cory G Watson.

You can redistribute and/or modify this code under the same terms as Perl itself.