Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  ACE::GRAPHICS::GLYPH (3)

.ds Aq ’


Ace::Graphics::Glyph - Base class for Ace::Graphics::Glyph objects



See Ace::Graphics::Panel.


Ace::Graphics::Glyph is the base class for all glyph objects. Each glyph is a wrapper around an Ace::Sequence::Feature object, knows how to render itself on an Ace::Graphics::Panel, and has a variety of configuration variables.

End developers will not ordinarily work directly with Ace::Graphics::Glyph, but may want to subclass it for customized displays.


This section describes the class and object methods for Ace::Graphics::Glyph.


Ace::Graphics::Glyph objects are constructed automatically by an Ace::Graphics::GlyphFactory, and are not usually created by end-developer code.
$glyph = Ace::Graphics::Glyph->new(-feature=>$feature,-factory=>$factory) Given a sequence feature, creates an Ace::Graphics::Glyph object to display it. The -feature argument points to the Ace::Sequence::Feature object to display. -factory indicates an Ace::Graphics::GlyphFactory object from which the glyph will fetch all its run-time configuration information.

A standard set of options are recognized. See OPTIONS.


Once a glyph is created, it responds to a large number of methods. In this section, these methods are grouped into related categories.

Retrieving glyph context:
$factory = $glyph->factory Get the Ace::Graphics::GlyphFactory associated with this object. This cannot be changed once it is set.
$feature = $glyph->feature Get the sequence feature associated with this object. This cannot be changed once it is set.
Retrieving glyph options:
$fgcolor = $glyph->fgcolor
$bgcolor = $glyph->bgcolor
$fontcolor = $glyph->fontcolor
$fillcolor = $glyph->fillcolor These methods return the configured foreground, background, font and fill colors for the glyph in the form of a GD::Image color index.
$width = $glyph->width Return the maximum width allowed for the glyph. Most glyphs will be smaller than this.
$font = $glyph->font Return the font for the glyph.
$option = $glyph->option($option) Return the value of the indicated option.
$index = $glyph->color($color) Given a symbolic or #RRGGBB-form color name, returns its GD index.
Retrieving information about the sequence:
$start = $glyph->start
$end = $glyph->end These methods return the start and end of the glyph in base pair units.
$offset = $glyph->offset Returns the offset of the segment (the base pair at the far left of the image).
$length = $glyph->length Returns the length of the sequence segment.
Retrieving formatting information:
$top = $glyph->top
$left = $glyph->left
$bottom = $glyph->bottom
$right = $glyph->right These methods return the top, left, bottom and right of the glyph in pixel coordinates.
$height = $glyph->height Returns the height of the glyph. This may be somewhat larger or smaller than the height suggested by the GlyphFactory, depending on the type of the glyph.
$scale = $glyph->scale Get the scale for the glyph in pixels/bp.
$height = $glyph->labelheight Return the height of the label, if any.
$label = $glyph->label Return a human-readable label for the glyph.
These methods are called by Ace::Graphics::Track during the layout process:
$glyph->move($dx,$dy) Move the glyph in pixel coordinates by the indicated delta-x and delta-y values.
($x1,$y1,$x2,$y2) = $glyph->box Return the current position of the glyph.
These methods are intended to be overridden in subclasses:
$glyph->calculate_height Calculate the height of the glyph.
$glyph->calculate_left Calculate the left side of the glyph.
$glyph->calculate_right Calculate the right side of the glyph.
$glyph->draw($gd,$left,$top) Optionally offset the glyph by the indicated amount and draw it onto the GD::Image object.
$glyph->draw_label($gd,$left,$top) Draw the label for the glyph onto the provided GD::Image object, optionally offsetting by the amounts indicated in $left and $right.
These methods are useful utility routines:
$pixels = $glyph->map_pt($bases); Map the indicated base position, given in base pair units, into pixels, using the current scale and glyph position.
$glyph->filled_box($gd,$x1,$y1,$x2,$y2) Draw a filled rectangle with the appropriate foreground and fill colors, and pen width onto the GD::Image object given by $gd, using the provided rectangle coordinates.
$glyph->filled_oval($gd,$x1,$y1,$x2,$y2) As above, but draws an oval inscribed on the rectangle.


The following options are standard among all Glyphs. See individual glyph pages for more options.

  Option      Description               Default
  ------      -----------               -------

  -fgcolor    Foreground color          black

  -outlinecolor                         black
              Synonym for -fgcolor

  -bgcolor    Background color          white

  -fillcolor  Interior color of filled  turquoise

  -linewidth  Width of lines drawn by   1

  -height     Height of glyph           10

  -font       Glyph font                gdSmallFont

  -label      Whether to draw a label   false

You may pass an anonymous subroutine to -label, in which case the subroutine will be invoked with the feature as its single argument. The subroutine must return a string to render as the label.

SUBCLASSING Ace::Graphics::Glyph

By convention, subclasses are all lower-case. Begin each subclass with a preamble like this one:

 package Ace::Graphics::Glyph::crossbox;

 use strict;
 use vars @ISA;
 @ISA = Ace::Graphics::Glyph;

Then override the methods you need to. Typically, just the draw() method will need to be overridden. However, if you need additional room in the glyph, you may override calculate_height(), calculate_left() and calculate_right(). Do not directly override height(), left() and right(), as their purpose is to cache the values returned by their calculating cousins in order to avoid time-consuming recalculation.

A simple draw() method looks like this:

 sub draw {
  my $self = shift;
  my $gd = shift;

  # and draw a cross through the box
  my ($x1,$y1,$x2,$y2) = $self->calculate_boundaries(@_);
  my $fg = $self->fgcolor;

This subclass draws a simple box with two lines criss-crossed through it. We first call our inherited draw() method to generate the filled box and label. We then call calculate_boundaries() to return the coordinates of the glyph, disregarding any extra space taken by labels. We call fgcolor() to return the desired foreground color, and then call $gd->line() twice to generate the criss-cross.

For more complex draw() methods, see Ace::Graphics::Glyph::transcript and Ace::Graphics::Glyph::segments.


Please report them.


Ace::Sequence, Ace::Sequence::Feature, Ace::Graphics::Panel, Ace::Graphics::Track, Ace::Graphics::Glyph::anchored_arrow, Ace::Graphics::Glyph::arrow, Ace::Graphics::Glyph::box, Ace::Graphics::Glyph::primers, Ace::Graphics::Glyph::segments, Ace::Graphics::Glyph::toomany, Ace::Graphics::Glyph::transcript,


Lincoln Stein <>.

Copyright (c) 2001 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.

Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 ACE::GRAPHICS::GLYPH (3) 2001-09-17

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.