Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

under construction

Scrolling

Most folks are pretty familiar with the idea of a document viewed through a window on a computer.

...

Scroll bars are used to position the document, or the window if you prefer to think of it that way.

Zooming

The notion of zooming also has a pretty clear physical analog.
We can introduce another "scroll" bar to zoom in and out.
From bird's eye view to actual size and beyond to magnification.

...

Another zooming technique tried was to click and hold one mouse button for zooming out
and another for zooming in.
This had the advantage of setting a "zoom focus" with the same click.
This focal point would remain fixed as all others around it were modified by the zooming.

With Genoviz, and hence IGB, one can use "semantic zooming"
where each glyph can change appearance as you zoom in or out.

Zooming the two dimensions independently.
Trouble with the widget to effect such zooming.

Zooming can be done in two dimensions independently.
Designing controls for this can be tricky.
When zooming in one dimension
instead of a focal point there is a focal line.
That line would be vertical for horizontal scrolling
and horizontal for vertical scrolling.
In either case the focal line remains fixed
and lines parallel to it move toward or away from the focal line.

Scrolling, Zooming, and Stretching With Genoviz

The Genoviz SDK was developed to display genomic data.
It uses the notion of scene and view as analogs to document and window respectively.
Within the scene (document) glyphs representing data are arranged in a hierarchy.<NeoMapScene picture>
The Genoviz SDK was developed to display genomic data.
It uses the notion of scene and view as analogs to document and window respectively.
Within the scene (document) glyphs representing data are arranged in a hierarchy

With Genoviz, and hence IGB, one can use "semantic zooming"
where each glyph can change appearance as you zoom in or out.

There is also the notion of stretch to fit
which is a sort of automatic zooming
so that the subject fills up its container.

<NeoMapScene picture>

Adding Tiers

The notion of tiers was introduced to display tracks of data
all aligned to the same horizontal coordinate space.
Manipulating these tiers presents some interesting problems.
This discussion is limited to vertical manipulations.

<TiersExample>

Current (targeted) Behavior

Zooming

The whole thing can be zoomed as any other Genoviz NeoMap component.
This will resize all tiers together.

<zoomed>

Collapsing

A tier can be made to disappear by clicking the little - box on it's right.
When it is gone the box will change to a + to let the user make it reappear.

Border Adjustment

Adjust a border between two tiers.
Dragging a border up should shrink the tier above and expand the tier below.
Dragging it down should expand the tier above and shrink the one below.
All other tiers should remain unaffected.
No scrolling is instigated.

<border>

Moving a Tier

A user can move a tier over others
by grabbing it in the middle (not the border) with the mouse and dragging it vertically.
When dropped the tier will take a new position in the stack of tiers
and other tiers will be pushed down (or up)
to accommodate the dropped tier's new position.
All tiers retain their pre drag height.
Scrolling is not instigated.
Maybe it should be.

<moved>

Automatic Resizing

Future Possibilities

  • Scrolling a Single Tier
  • Zooming a Single Tier Vertically (Note that this requires scrolling)
  • Expanding a Single Tier Vertically
  • - zoom to fit?
  • - move other tiers
  • - shrink other tiers

...