[Fwd: Re: [Biojava-l] LabelledSequenceRenderer does not work with TranslatedSequenceRenderer, Newbie]

Kalle Näslund kalle.naslund at genpat.uu.se
Tue Mar 30 04:05:59 EST 2004


Keith James wrote:

> [ ... ]
>
> Long story...
>
> This came about because SequencePanel had two problems:
>
> 1. It will by default render a huge sequence in a single huge
>   coordinate space which leads to floating point errors in marking
>   tics/points at the far end of the sequence.
>
>   To solve this a hack was put in to translate the drawing
>   coordinates to ~0 before drawing. However that broke rendering to
>   any Graphics2D derived from a BufferedImage where it produced an
>   un-renderable region between 0 and the offset (which was 50 pixels
>   wide, if I remember)
>
> 2. It was far too slow with available sequence/feature renderers.
>
>
> So I wrote TranslatedSequencePanel which solves the first problem
> without using the offset hack. Instead of placing a huge virtual
> rendering area in a ScrollPane, it clips a window of sequence to
> render and runs the window along the sequence. Therefore you are
> always drawing from 0, even at base 100,000,001 of the sequence.
>
> As a nice side-effect, it also turned out to be 5-10x faster at
> rendering with the current sequence/feature renderers.
>
> But people were still using the SequencePanel in their client code, so
> I didn't want to remove it.
>
> Keith
>
>  
>
Matthew have done some work on the rendering part, there is now a class
called org.biojava.bio.gui.sequence.GUITools that contains some helper
methods, so that SequenceRenderers can figure out what part is visible, so
they can limit rendering to the visible parts. From a quick test, the speed
with SequencePanel seems comparable to the speed you get with
TranslatedSequencePanel.

I dont know if he has fixed issue number 1 aswell, but i will try to 
take a look
at that later on today, and see if i can see the rendering errors with 
the CVS
version of SequencePanel.

Kalle





More information about the Biojava-l mailing list