From: gordonc@epcc.ed.ac.uk (Gordon Cameron)
Newsgroups: comp.graphics.explorer
Subject: NEW MODULE - Axis V1.1
Date: 11 Jan 93 18:47:51 GMT
Organization: Edinburgh Parallel Computing Centre


--------------------------
An updated version of the Axis module is now available via. anon
ftp from ftp.epcc.ed.ac.uk (and soon from swedishchef.lerc.nasa.gov)
in [/pub]/explorer/modules/Axis

Thanks to the authors Rob DeMillo and Oliver Newell (the authors)

	-Gordon C.
--------------------------

From the README file.....

"Axis" will annotate a geometric, rendered image that was constructed
from Explorer 3D Uniform or Curvilinear Lattices. The user has control over the
axes that are displayed, as well as textual information such
as axis labels, tic labels and an image title. This module is meant
to be used in conjunction with the "Render" module, since all of its
output is in the geometric data set.

"Axis" was written so that the user can "know where he/she is looking"
in a render window. Although explorer is an excellent visualization
tool, the lack of any common reference can be quite confusing after
you've stretched, rotated and zoomed behind your image a multitude of
times. "Axis" provides you with a common reference point, and allows
for a bit of useful annotations. 

Although images rendered in conjunction with "Axis" can be used
for presentations or reports, the extreme two-dimensionality of the
fonts in a three-dimensional world can look a bit...strange. In a 
future release, we will offer better control of font placement, 
font type, and (hopefully) three-dimensional block fonts. Until that
time, feel free to use "Axis" as a starting point and perhaps fill
in the "nicities" of image label using "Showcase" or a similar
presentation tool.

With the release of version 1.1, Axis now supports curivlinear lattices,
although (admittedly) not very well. There is no convient way within
Explorer to determine whether or not a curvilinear lattice is in 
cylindrical coordinate domain or the spherical coordinate domain. Since
this cannot be determined automatically, a rough "compromise" axis is
displayed. The range values are always displayed from 
	-max(range) <--> max(range)
and are displayed in three times, with mutually orthogonal lines. The
origin for the range line is always (0,0,0). The tic marks and labels 
for the range lines are always placed outside the volume, as to not
clutter up the scene. (Unfortunately, no attempt is made to see if any
of the angular values exceed 180 degrees...therefore, if your lattice
occupies only one hemisphere, the range axis still occupies the entire
range of angles. Range is represented by the i-value.

If the user's coordinate space is cylindrical, then the j-value represents
the angle "phi" about the z axis, and the k-value represents the altitude
value "z." If the user's coordinate space is spherical, then the j-value
still represents the angle "phi" about the z-axis, but the k-value 
now represents the vector radius with the positive semi-axis with z.
Both of these extents are represented with circular "wheels," having an
origin at (0,0,0). The wheels are orthoganal to each other, with the
j-value wheel appearing in the ij plane, and the k-value wheel appearing
in the jk plane. The radius of both wheels are "range," and the tic marks
are represented as radii. The j-value wheel is blue, and the k-value
wheel is green. (Admittedly, this system is baised towards the spherical
coordinate system, but this will be corrected for in coming releases.)

When the "Axis" module is connected to a 3D Lattice input stream,
it take certain reasonable defaults for the axis attributes. The
number of Major tics always defaults to 10, the Minor tics always
defaults to 2. If the user is not satisfied with the tic spacing, 
then he/she can set any spacing desired, or turn them off altogether.

Axis labels, tic labels and tic marks are placed in the plane that the
axis in question shares with the i Axis. j Labels, for instance, are
written in the ij plane. For now, numeric tic labels are limited to
1 decimal position for output. We realize this is troublesome, and it
will be remedied in subsequent releases.

Image titles and subtitles are placed in either the ij plane above 
the maximum j value, or in the jk plane above the maximum k value. 
An attempt is made to center the text string,
but there are no guarantees since we cannot get world coordinate
information *back* from the Render module easily. 

Image titles can be up to 1,024 characters in length. Subtitles are
separated from the main title with a "||" separator. (Two pipes
together.) There is no limit as to how many subtitles
there can be in any one image. The main title is moved upwards forever
to make room for the subtitles.

The severe restriction of allowing for only 16 input ports in any
given module meant that a lot of functionality was left out of 
the "Axis" module. For instance, the user has no control over
placement of the labels, origin of the axes, etc. Hopefully, these 
omissions will be addressed in a future release. If the number of
input ports cannot be increased, it will be quite difficult to 
continue to upgrade functionality of this module, since it 
very dependent upon user input. It may be necessary to break 
Axis up into several modules in the future.

This same restriction is currently preventing us from placing
a control to allow the user to select between cylindrical and
spherical coordinates. This would allow for a "no compromise"
axis representation, which would be (hopefully) a lot less confusing
for curvilinear axis representations.

The "j" and "k" tic marks in curvilinear space currently do
not numerically label themselves. This will be fixed in a future
release.

Currently, only 3D lattice structures can be run through axis, this
will be changed in a future release.

Currently, non-uniform lattices cannot be represented. This will hopefully
change in a future release.




-- 
e|p Gordon Cameron                      |     Phone:+44 31 650 5024(Rm. 2259)
c|c Edinburgh Parallel Computing Centre |     Email: gordonc@epcc.ed.ac.uk
    oOo The University of Edinburgh oOo |    'So far so good, so now so what'