moving more stuff
[cview.git] / lib / CXGN / Cview / Label / Physical.pm
blob8b57ee6ef5eae91395ffeb172b8a3f63a4799df9
2 use strict;
4 use CXGN::Cview::Label;
6 package CXGN::Cview::Label::Physical;
8 use GD;
10 use base qw / CXGN::Cview::Label /;
13 =head2 function new()
15 Synopsis:
16 Arguments:
17 Returns:
18 Side effects:
19 Description:
21 =cut
23 sub new {
24 my $class = shift;
25 my $self = $class->SUPER::new(@_);
27 # set some interesting defaults
29 $self->set_align_side("left");
30 $self->set_label_spacer(20);
31 $self->set_vertical_stacking_spacing(2);
32 $self->set_stacking_height(5);
35 return $self;
39 =head2 function render_line()
41 Synopsis:
42 Arguments:
43 Returns:
44 Side effects:
45 Description:
47 =cut
49 sub render_line {
50 my $self = shift;
51 my $image = shift;
53 my $line_color = $image->colorResolve($self->get_line_color());
55 $image -> setAntiAliased($line_color);
56 my $width = 0;
58 # calculate the point that the line should connect to
59 # on the label
61 my ($x, $y, $a, $b) = $self->get_enclosing_rect();
63 my ($connection_x, $connection_y) = (0, 0);
65 if ($self->get_align_side() eq "right") {
67 $connection_x = $a;
68 $connection_y = $y + CXGN::Cview::ImageObject::round(($b - $y ) /2);
70 #my $horizontal = ($self->get_reference_point())[0]-$self->get_stacking_level()*$self->get_stacking_height();
72 $image->line($connection_x, $connection_y,
73 ($self->get_reference_point())[0], ($self->get_reference_point())[1],
74 gdAntiAliased
77 if ($self->get_align_side() eq "left") {
79 $connection_x = $x;
80 $connection_y = $y + CXGN::Cview::ImageObject::round(($b - $y)/2);
82 #my $horizontal = ($self->get_reference_point())[0]+$self->get_stacking_level()*$self->get_stacking_height();
84 $image->line($connection_x,
85 $connection_y,
86 ($self->get_reference_point())[0],
87 ($self->get_reference_point())[1],
88 gdAntiAliased
95 return 1;