 |
Changes in GeoZui3D 3.5
|
These are the changes in GeoZui3D version 3.5, since the release
of version 3.4.
Infrastructure
- The ability to handle temporally registered data has been
introduced. Not all aspects of GeoZui3D recognize time, but
time will be integrated more and more into GeoZui3D with
future releases. The most visible effect is a Time
Control Panel that appears on the bottom of the GeoZui3D
application window when a time-aware object is loaded.
The interface documentation does not yet reflect this
panel, but does give a short description of
Time and the gztime command.
- Hierarchical arrangement of objects is now supported to a
limited extent. The most visible manifestation of this is
in the new hierarchical listing of objects in the Object
Panel.
- Objects can now be edited and many (but not all) objects
can be saved to reflect these edits. For instance, GUTMs
converted from lat-long can be saved in UTM coordinates,
and GUTMs can even be saved with holes cut in them from
the fusion process. Points (.gdp) and lines (.gdl) can
be edited and saved as well.
- The default colormap has been changed to something more
reasonable for map-like coloring. It is optimized for
data with wide ranging values, both above and below sea-level.
Interface
- Rendering of GUTM's has been accelerated and now renders more in
higher-resolution during interaction than before. Just how much
gets rendered is controlled by the setting of the
scripting variable
interactivityHint. This variable can be set through the
"Options->Interactivity Hint" menu item as well (not documented yet).
The old rendering mechanism can be obtained by using the
"highres" tellObject command for any GUTM.
- Mouse features
- Clicking in "empty space" with the middle mouse button in previous
versions would not cause a window to translate, but would still
allow zooming when the mouse was pushed forward or backward with
the middle button down. Now GeoZui3D treats such a click as a
desire to move to a new location on the X-Y plane in which
the center of workspace is currently located. Thus, unless the
pitch of the window is near 0, any click of the middle mouse
button will cause translational motion.
- Zooming can now be accomplished alternatively through the scroll-wheel
on mice that are so-equipped.
- An object can be edited by right-clicking on it and selecting
"Allow edit" from the menu. Most objects are moved by their
LOCAL_ORIGIN point, although individual points within some objects
(.gdp and .gdl) can be moved. When an object allowing edit is
clicked, edit widgets appear. The green points and lines control
the height (Z-level) of a point or object, while directly selecting
a control point moves the point within an X-Y plane at the current
Z-level. Object supporting heading rotation and scale have addtional
widgets for controlling these aspects (pitch is not editable through
the GUI yet). Points and lines can be added/deleted using various
combinations of the keys, and the arrow keys can be used to navigate
through points and lines (see below). To keep an object from being
inadvertantly edited, select "Disallow edit" from the object's
right-click menu. Editing features are not yet reflected in the
documentation.
- Keyboard features
- Height exaggeration is now instantaneous, rather than requiring
time to recalculate normals.
- An experimental 3D cursor feature is enabled by pressing the 'c'
key on the keyboard. If you accidentally hit it, press the 'c' key
again to make it go away.
- The 'o' key on the keyboard puts a window into a orthogonal rendering
mode. Pressing the 'p' key puts the widow back into the default
perspective rendering mode. Caveat: interaction in orthogonal
rendering mode is unrefined and buggy--it is intended for temporary
uses or uses which do not require much more than the basic
interaction required for navigation.
- When editing a point (.gdp) or line (.gdl) object, the following
keys are mapped to the following actions. To change the current
point index, use the left and right arrows. To change line index,
use PgUp and PgDn. Height is changed using the up and down arrows.
Ins and Del can be used to insert and delete points, with modifier
keys--Shift causes an insertion/deletion to occur after the current
point (versus before/at the current point), while Cntrl causes an
entire line to be inserted or deleted.
- The '9' and '0' keys on the keyboard act similarly to the
'{' and '}' keys for controlling cyclopean scale. This was
done to support certain international keyboards that lack the
'{' and '}' keys.
- New windows
- An undocumented color key window can be displayed by pressing the
"Key" button on the Objects Panel. The color key window displays
a color key representation of the selected color lookup table (.clut).
The number and arrow keys can be used in various ways to change
the spacing of height labels, but this window is better-controlled
through the scripting interface.
- Undocumented attribute panels can be displayed in a couple of
different ways. These panels allow you to view and alter posable
(x,y,z, etc.) information for an object as well as certain of
its attributes. A panel for a specific object can be brought
up by right-clicking on the object and selecting "Attributes"
from its menu. A more general-purpose panel, reflecting
whatever is currently being edited, can be brought up by
selecting "View->Edit-Target Attributes" from the main menu.
Especially for the edit-target attribute window, it is
usually a good idea to check the "Update continuously box".
You can change a value simply by editing the value in the
appropriate field and either pressing the return key or clicking
somewhere else on the screen.
- Tethers on subwindows can now be made to disappear, and only appear
when they are most likely to be needed. This can be enabled by
unchecking the "Options->Static Subwindow Tethers" menu item.
- Some icons have been created to represent object types in the
Object Panel. Adventurous users can modify or add the .gif
files in the bin/bitmaps directory to update these representations.
- Progress dialogs appear during loading of some objects types that
are prone to long loading times. More will likely use these dialogs
in the future.
Objects
- Scene files are migrating from the legacy Scene (.sdv) format
to the new XML Scene (.gzx) format.
All scenes saved by GeoZui3D are saved in the new .gzx format. The new
format allows other scene files to be referenced for loading. It also
allows some objects to be defined within the scene file itself. For
instance, Chart objects can be created as in
a single line of the .gzx format, while a netCDF file (.nc) can be interpreted
into several objects (to support tides or flow visualizations) using several
lines of the .gzx fomrat. In addition, scripts can be embedded or sourced
anywhere in the loading process.
- DEGRADATION syntax is now common to all objects.
Any object that degrades can have its degradation turned off, or at least
minimized (GUTMs still degrade with DEGRADATION OFF, but to a much lesser
extent).
- Some minor format additions have been made to certain objects, especially
the Data Points (.gdp),
Data Lines (.gdl), and
Data Triangles (.gdt) objects.
The most notable change relates to support for user-defined DATA fields
that can be accessed from within GeoZui3D as object attributes.
Conversion Grids are
now more flexible in what inputs they can understand as well.
- A Label (.label) object has been added,
allowing bitmap text to be rendered in scale-dependent manners.
- A Chart class has been added (created
inline in .gzx files only). Charts display geo-referenced pictures
that can have holes punched in them by fusing with GUTMs. This is
especially useful for flat maps or charts.
- A Tide class has been added (created
inline in .gzx files only). Tides modify an existing GUTM using
time-referenced offsets that correspond to the current GeoZui3D time.
This is especially useful for visualizing the effect of tides on
a piece of bathymetry.
- A Time-varying GUTM class has
been added (created inline in .gzx files only). Time-varying Gutms
are useful for showing surfaces that change significantly over time,
such as with glacial ice flows or morphology changes between surveys.
- Limited NetCDF support is available
in .gzx files for certain objects. Currently, only the
Flow object can be loaded
in this way. The Flow object provides a visualization of flow using
numerous tracers that animate with the progression of GeoZui3D time.
- A new Vessel object has been
added that allows a boxy ship of specified dimension to be represented
in the scene with a pseudo-"course-made-good" line.
Automation
- A new, gztime command has been added
for controlling the flow of time in GeoZui3D with respect to real time.
- The "gz tellObject" syntax
is now valid for any addressable entity in the address hierarchy.
Many objects have additional tellObject commands that they support.
- Events, Event Mediators, Interactors,
and Event Handlers have all been added to the address hierarchy
and can be controlled and manipulated via scripts. Internal GeoZui3D
handling of events can be controlled through the new event script
infrastructure, and new events and event handlers can be created.
- New Togl-Window subcommands
have been added, including clippingPlane, inParent (for controlling how
a proxy is represented in a parent window), localHeightExaggeration
(for setting height exaggeration only in one window), perspective
(for setting whether orthogonal or perspective projection is used
in a window--interaction in orthogonal mode is unrefined/buggy), and
wireframe (for rendering all objects in wireframe only in one particular
window).
- Documentation of Composite
Objects and their use is now available. Composite objects provide
a way of attaching windows to groups of objects, generating events
when objects come in proximity, and generating events when boundaries
are crossed, among other things. An undocumented set of region
management tools (for triggerig events when a posable enters or leaves
a nearly-arbitrarily-shaped 3-D region) can be found in
bin/scripts/support/region.tcl (with some documentation in the
header comments).
- There are two new Animator types:
PathAnimator and VectorAnimator. A PathAnimator allows a posable to follow
a .gdl or .gdp file, potentially interpolated and potentially
temporally-referenced (progress is controlled by the passage of time
and the new Time Control Panel). An example of how to use
PathAnimators can be found in the bin/scripts directory (follower.tcl).
A VectorAnimator causes a posable to be animated such that it heads
in a particular direction at a particular speed.
- There are new ColorKey subcommands
for controlling the display of the color key.