Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / lib / site_perl / 5.8.0 / Pastel / Geometry / EllipseIterator.pm
CommitLineData
86530b38
AT
1package Pastel::Geometry::EllipseIterator;\r
2@ISA = qw(Pastel::Geometry::PathIteratorI Pastel::Mixin::Mixin);\r
3use Pastel::Geometry::PathIteratorI;\r
4use Pastel::Mixin::Mixin;\r
5use strict;\r
6use Carp;\r
7\r
8sub new {\r
9 my $class = shift;\r
10 my $self = {};\r
11 bless $self, ref($class) || $class;\r
12 $self->_init(@_);\r
13 return $self;\r
14}\r
15\r
16sub _init {\r
17 my ($self, @args) = @_;\r
18 if (@args < 2 ){\r
19 croak "Error: Isufficent argument in Pastel::Geometry::EllipseIterator!\n";\r
20 }\r
21 elsif ( ref($args[0]) ne "Pastel::Geometry::Ellipse"){\r
22 croak "First argument of the Pastel::Geometry::EllipseIterator::new\n\r
23 has to be a Pastel::Geometry::Ellipse\n";\r
24 }\r
25\r
26 elsif ( ref($args[1]) ne "Pastel::Geometry::AffineTransform"){\r
27 croak "Second argument of Pastel::Geometry::EllipseIterator::new\n\r
28 has to be a Pastel::Geometry::AffineTransform\n";\r
29 }\r
30\r
31 else {\r
32 $self->{x} = $args[0]->get_x();\r
33 $self->{y} = $args[0]->get_y();\r
34 $self->{w} = $args[0]->get_width();\r
35 $self->{h} = $args[0]->get_height();\r
36 $self->{affine} = $args[1];\r
37 $self->{index} = 0;\r
38\r
39 if ( $self->{w} < 0 || $self->{h} < 0){\r
40 $self->{index} = 6;\r
41 }\r
42 }\r
43\r
44 return $self;\r
45}\r
46\r
47sub get_winding_rule {\r
48 my ($self, @args)= @_;\r
49 #print "winding rule called\n";\r
50 #print $WIND_NON_ZERO;\r
51 return $Pastel::Geometry::PathIteratorI::WIND_NON_ZERO;\r
52}\r
53\r
54sub is_done {\r
55 my $self = shift;\r
56 return $self->{index} > 5;\r
57}\r
58\r
59sub next {\r
60 my $self = shift;\r
61 $self->{index}++;\r
62}\r
63\r
64\r
651;\r
66\r
67 \r
68 \r