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.