Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | package Pastel::Geometry::Shape;\r |
2 | use strict;\r | |
3 | \r | |
4 | # Perl interface for the Geometry objects. The function get_bounds()\r | |
5 | # Called by all the Geometry objects. Parameters passed are the\r | |
6 | # Point coordinates\r | |
7 | \r | |
8 | sub _get_bounds\r | |
9 | {\r | |
10 | my ($self, @args) = @_;\r | |
11 | my ($max_x, $max_y, $min_x, $min_y); # Hold the maximum and the minimum coordinates\r | |
12 | \r | |
13 | $max_x = $args[0];\r | |
14 | $max_y = $args[1];\r | |
15 | $min_x = $args [0];\r | |
16 | $min_y = $args[1];\r | |
17 | \r | |
18 | for (my $i = 0; $i < @args; $i +=2) { #Pick even number X values\r | |
19 | if ($args[$i] > $max_x) {\r | |
20 | $max_x = $args[$i];\r | |
21 | }\r | |
22 | elsif ($args[$i] < $min_x){\r | |
23 | $min_x = $args[$i];\r | |
24 | }\r | |
25 | \r | |
26 | }\r | |
27 | \r | |
28 | for (my $i = 1; $i <@args; $i +=2) { #Pick odd number Y values\r | |
29 | if ($args[$i] > $max_y) {\r | |
30 | $max_y = $args[$i];\r | |
31 | }\r | |
32 | elsif ($args[$i] < $min_y) {\r | |
33 | $min_y = $args[$i];\r | |
34 | }\r | |
35 | }\r | |
36 | \r | |
37 | my $bb = Pastel::Geometry::Rectangle->new($min_x, $min_y, ($max_x - $min_x), ($max_y - $min_y));\r | |
38 | return $bb;\r | |
39 | \r | |
40 | }\r | |
41 | \r | |
42 | sub set_stroke {\r | |
43 | my $self = shift;\r | |
44 | my $stroke = shift;\r | |
45 | $self->{stroke} = $stroke;\r | |
46 | }\r | |
47 | \r | |
48 | \r | |
49 | 1;\r |