Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | package Pastel::Geometry::Line;\r |
2 | @ISA = qw(Pastel::Mixin::Mixin Pastel::Shape);\r | |
3 | use strict;\r | |
4 | \r | |
5 | sub new {\r | |
6 | my $class = shift;\r | |
7 | my $self = {};\r | |
8 | bless $self, ref($class) || $class;\r | |
9 | $self->_init(@_);\r | |
10 | return $self;\r | |
11 | }\r | |
12 | \r | |
13 | sub _init {\r | |
14 | my ($self, @args) = @_;\r | |
15 | \r | |
16 | #If two Point objects have been passed\r | |
17 | if(@args == 2){\r | |
18 | my ($point1, $point2) = @args;\r | |
19 | $self->{x1}= $point1->get_x();\r | |
20 | $self->{x2} = $point2->get_x();\r | |
21 | $self->{y1} = $point1->get_y();\r | |
22 | $self->{y2} = $point2->get_y();\r | |
23 | }\r | |
24 | \r | |
25 | #If point coordinates have been passed\r | |
26 | elsif(@args > 2){\r | |
27 | my ($x1, $y1, $x2, $y2) = \r | |
28 | $self->_rearrange(["X1","Y1","X2","Y2"],@args);\r | |
29 | $self->{_coords} = [ $x1, $y1, $x2, $y2 ]; #Reserve the coordinates for future use\r | |
30 | $self->{x1} = $x1;\r | |
31 | $self->{x2} = $x2;\r | |
32 | $self->{y1} = $y1;\r | |
33 | $self->{y2} = $y2;\r | |
34 | }\r | |
35 | return $self;\r | |
36 | }\r | |
37 | \r | |
38 | sub get_bounds {\r | |
39 | \r | |
40 | my $self = shift;\r | |
41 | my $bb = $self->_get_bounds(@{$self->{_coords}}); # Call method from Pastel::Geometry::Shape\r | |
42 | return $bb;\r | |
43 | }\r | |
44 | sub get_x1 { $_[0]->{x1}; }\r | |
45 | sub get_x2 { $_[0]->{x2}; }\r | |
46 | sub get_y1 { $_[0]->{y1}; }\r | |
47 | sub get_y2 { $_[0]->{y2}; }\r | |
48 | \r | |
49 | sub get_p1 { return Pastel::Geometry::Point->new ($_[0]->{x1}, $_[0]->{y1}); }\r | |
50 | sub get_p2 { return Pastel::Geometry::Point->new ($_[0]->{x2}, $_[0]->{y2}); }\r | |
51 | \r | |
52 | \r | |
53 | # Called by the draw() method of Pastel::Graphics::draw()\r | |
54 | \r | |
55 | sub _draw {\r | |
56 | my $self = shift;\r | |
57 | my $x1 = $self->get_x1();\r | |
58 | my $x2 = $self->get_x2();\r | |
59 | my $y1 = $self->get_y1();\r | |
60 | my $y2 = $self->get_y2();\r | |
61 | \r | |
62 | \r | |
63 | my $graphics = shift; # Graphics object passed as parameter\r | |
64 | my $style =$self->get_style($graphics);\r | |
65 | #my $paint = $graphics->get_paint()->to_svg();\r | |
66 | \r | |
67 | my $data = qq(<line x1="$x1" y1="$y1" x2="$x2" y2="$y2" );\r | |
68 | \r | |
69 | $data .= "style=\"".$style."\"";\r | |
70 | #if (defined($self->{stroke})){\r | |
71 | # #print "Line stroke defined\n";\r | |
72 | # my $stroke = $self->{stroke} ;\r | |
73 | # my $st=$stroke->_to_svg();\r | |
74 | # $data .= "style="."\"fill:none;".$paint.";".$st."\""." />";\r | |
75 | # }\r | |
76 | # else {\r | |
77 | $data .= qq( />);\r | |
78 | # }\r | |
79 | return $data;\r | |
80 | \r | |
81 | }\r | |
82 | \r | |
83 | 1;\r |