This glyph draws a diamond of fixed size, positioned in the center of
the feature. The height and width of the diamond are set by the
"height" option.
The following options are standard among all Glyphs. See
Bio::Graphics::Glyph for a full explanation.
Option Description Default
------ ----------- -------
-fgcolor Foreground color black
-outlinecolor Synonym for -fgcolor
-bgcolor Background color turquoise
-fillcolor Synonym for -bgcolor
-linewidth Line width 1
-height Height of glyph 10
-font Glyph font gdSmallFont
-connector Connector type 0 (false)
-connector_color
Connector color black
-label Whether to draw a label 0 (false)
-description Whether to draw a description 0 (false)
None available.
sub draw_component
{ my $self = shift;
my $gd = shift;
my $fg = $self->fgcolor;
my ($x1,$y1,$x2,$y2) = $self->calculate_boundaries(@_);
my $xmid = ($x1+$x2)/2; my $ymid = ($y1+$y2)/2;
my $h = $self->option('height')/2; $y1 = $ymid - $h;
$y2 = $ymid + $h;
if ($self->option('point') || $x2 - $x1 < $h*2) {
$x1 = $xmid - $h;
$x2 = $xmid + $h;
}
elsif ($self->option('fallback_to_rectangle')) {
return $self->SUPER::draw_component($gd,@_);
}
$gd->line($x1,$ymid,$xmid,$y1,$fg);
$gd->line($xmid,$y1,$x2,$ymid,$fg);
$gd->line($x2,$ymid,$xmid,$y2,$fg);
$gd->line($xmid,$y2,$x1,$ymid,$fg);
if (my $c = $self->bgcolor) {
$gd->fillToBorder($xmid,$ymid,$fg,$c);
}
}
1;
__END__ } |