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 / Line.pm
CommitLineData
86530b38
AT
1package Pastel::Geometry::Line;\r
2@ISA = qw(Pastel::Mixin::Mixin Pastel::Shape);\r
3use strict;\r
4\r
5sub 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
13sub _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
38sub 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
44sub get_x1 { $_[0]->{x1}; }\r
45sub get_x2 { $_[0]->{x2}; }\r
46sub get_y1 { $_[0]->{y1}; }\r
47sub get_y2 { $_[0]->{y2}; }\r
48\r
49sub get_p1 { return Pastel::Geometry::Point->new ($_[0]->{x1}, $_[0]->{y1}); }\r
50sub 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
55sub _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
831;\r