This glyph draws a lightning bolt of specified height with relative
width, with the point of the lightning bolt centered on the
feature. The height of the bolt is specified by the "height"
option. Due to the complexity of this glyph, it doesn't resolve well
with heights less than 11 pixels.
This glyph was designed to indicate point mutations on a nucleotide or
protein backbone.
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)
-hilite Highlight color undef (no color)
The following options are specific to this Glyph.
Option Description Default
------ ----------- -------
-orient direction of lightning bolt N
None available.
sub draw_component
{ my $self = shift;
my $gd = shift;
my $fg = $self->fgcolor;
my ($x1,$y1,$x2,$y2) = $self->calculate_boundaries(@_);
my $h = $self->option('height');
my $w = $h*0.6;
my $poly_pkg = $self->polygon_package;
my $polygon = $poly_pkg->new();
if ($self->option('orient') eq 'N') {
$y1 = $y1 + $h/4; $polygon->addPt($x2,$y1+($h/2)); $polygon->addPt($x2-($w*0.7),$y1+($h/2)); $polygon->addPt($x2-($w*0.2),$y1+($h*0.15));
$polygon->addPt($x2-($w*0.6),$y1+($h*0.15));
$polygon->addPt($x2,$y1-$h/2); $polygon->addPt($x2-($w*0.1),$y1-($h*0.05));
$polygon->addPt($x2+($w*0.5),$y1-($h*0.05));
$polygon->addPt($x2,$y1+($h/2)); }
else {
$y1 = $y1 + $h/2; $polygon->addPt($x1,$y1-($h/2)); $polygon->addPt($x1+($w*0.7),$y1-($h/2)); $polygon->addPt($x1+($w*0.2),$y1-($h*0.15));
$polygon->addPt($x1+($w*0.6),$y1-($h*0.15));
$polygon->addPt($x1,$y1+$h/2); $polygon->addPt($x1+($w*0.1),$y1+($h*0.05));
$polygon->addPt($x1-($w*0.5),$y1+($h*0.05));
$polygon->addPt($x1,$y1-($h/2)); }
if (my $c = $self->bgcolor) {
$gd->filledPolygon($polygon,$c);
$gd->polygon($polygon,$fg);
} else {
$gd->polygon($polygon,$fg);
} } |
No reported bugs.