Bio::Graphics::Glyph pentagram
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Summary
Bio::Graphics::Glyph::pentagram - The "pentagram" glyph
Package variables
No package variables defined.
Inherit
Bio::Graphics::Glyph::generic
Synopsis
  See Bio::Graphics::Panel and Bio::Graphics::Glyph.
Description
This glyph draws a pentagram with the sharp angle pointing right
or,if the 'inverted' option is set to 1, an "inverted" pentagram
(with the sharp angle pointing inwards, not outwards).
There may be an optional text above the glyph. In addition to the common options, the following glyph-specific
options are recognized:
  Option      Description                  Default
------ ----------- -------
-size Width and height of the 20 glyph -text Text to show none -text_pad_x Number of pixels between 0 the left edge of the glyph and the start of text -text_pad_x Number of pixels between 3 the pentagram and the text
Methods
pad_top
No description
Code
default_text
No description
Code
default_text_pad_x
No description
Code
default_text_pad_y
No description
Code
default_size
No description
Code
draw_component
No description
Code
Methods description
None available.
Methods code
pad_topdescriptionprevnextTop
sub pad_top {
  my ($self) = @_;
  
  my $font = $self->option('labelfont') || $self->font;
  
  my $pad = $font->height;
  
  if ($self->option('text'))
  {
    $pad *= 2;
  }
  return $pad;
}
default_textdescriptionprevnextTop
sub default_text {
  return '';
}
default_text_pad_xdescriptionprevnextTop
sub default_text_pad_x {
  return 0;
}
default_text_pad_ydescriptionprevnextTop
sub default_text_pad_y {
  return 3;
}
default_sizedescriptionprevnextTop
sub default_size {
  return 20;
}
draw_componentdescriptionprevnextTop
sub draw_component {
  my $self = shift;
  my $gd = shift;
  my ($x1,$y1,$x2,$y2) = $self->calculate_boundaries(@_);
  
  my $fg = $self->fgcolor;
  my $bg = $self->bgcolor;
  
  my $size = defined $self->option('size') ? $self->option('size') : $self->default_size();

  my $poly_pkg = $self->polygon_package;
  
  my $polygon   = $poly_pkg->new();

  if ($self->option('inverted') == 1)
  {
    $polygon->addPt($x1,$y2);
    $polygon->addPt($x1+$size/2,$y2-$size/2);
    $polygon->addPt($x1,$y2-$size);
    $polygon->addPt($x1+$size, $y2-$size);
    $polygon->addPt($x1+$size, $y2);      
  }
  else
  {
    $polygon->addPt($x1,$y2);
    $polygon->addPt($x1,$y2-$size);
    $polygon->addPt($x1+$size/2,$y2-$size);
$polygon->addPt($x1+$size, $y2-$size/2);
$polygon->addPt($x1+$size/2, $y2);
} $gd->filledPolygon($polygon, $bg); $gd->polygon($polygon,$fg); my $text = defined $self->option('text') ? $self->option('text') : $self->default_text(); if ($text) { my $text_pad_x = defined $self->option('text_pad_x') ? $self->option('text_pad_x') : $self->default_text_pad_x(); my $text_pad_y = defined $self->option('text_pad_y') ? $self->option('text_pad_y') : $self->default_text_pad_y(); my $font = $self->option('labelfont') || $self->font; $gd->string($font, $x1+$text_pad_x, $y2-$size-$text_pad_y-$font->height, $text, $fg); }
}
General documentation
BUGSTop
Please report them.
SEE ALSOTop
Bio::Graphics::Panel,
Bio::Graphics::Glyph,
Bio::Graphics::Glyph::arrow,
Bio::Graphics::Glyph::cds,
Bio::Graphics::Glyph::crossbox,
Bio::Graphics::Glyph::diamond,
Bio::Graphics::Glyph::dna,
Bio::Graphics::Glyph::dot,
Bio::Graphics::Glyph::ellipse,
Bio::Graphics::Glyph::extending_arrow,
Bio::Graphics::Glyph::generic,
Bio::Graphics::Glyph::graded_segments,
Bio::Graphics::Glyph::heterogeneous_segments,
Bio::Graphics::Glyph::line,
Bio::Graphics::Glyph::pinsertion,
Bio::Graphics::Glyph::primers,
Bio::Graphics::Glyph::rndrect,
Bio::Graphics::Glyph::segments,
Bio::Graphics::Glyph::ruler_arrow,
Bio::Graphics::Glyph::toomany,
Bio::Graphics::Glyph::transcript,
Bio::Graphics::Glyph::transcript2,
Bio::Graphics::Glyph::translation,
Bio::Graphics::Glyph::triangle,
Bio::DB::GFF,
Bio::SeqI,
Bio::SeqFeatureI,
Bio::Das,
GD
AUTHORTop
Vsevolod (Simon) Ilyushchenko <simonf@cshl.edu>.
Copyright (c) 2004 Cold Spring Harbor Laboratory
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself. See DISCLAIMER.txt for
disclaimers of warranty.