GeoZui3D Data File Format Specifications |
All object formats native to GeoZui3D have a similar structure. Elements in this format that act unchanged across objects only appear in this section (to reduce clutter and repetition). The structure is as follows:
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN < Data-Type> < Version-Number> | Each file format is designated by a Data-Type. The Version-Number indicates the version of the general format in the digit before the first decimal, and the version of the format for the specific Data-Type after the first decimal. |
[Header Contents] | Each Data-Type has its own header format. Each line in the header has a keyword optionally followed by parameters. Each keyword consists only of capital letters, numbers, and underscores. The contents of a header line following a percent sign "%" will be treated as a comment and ignored by GeoZui3D. Blank lines in the header are also ignored. |
[DEGRADATION {OFF | ON | < Object-specific-keyword>}] | Specifies whether or not to degrade the object. If "OFF", minimal or no degradation is done. If "ON", degradation occurs according to the default for the object. Various objects define additional possible types of degradation. If this line is not present, defaults to the default for the object (same as "ON"). |
[REVERSED_XY] | Using this keyword, objects support the reversal of X and Y coordinates, allowing Y-coordinates to appear first. This reversal is especially useful when information is given in latitude-longitude pairs, but the format expects x- and y- coordinates. The reversal applies to LOCAL_ORIGIN and PROJECT...CENTER coordinates as well. |
[PROJECT {AUTO | < Projection-Name>} [CENTER < Longitude> < Latitude> < Height>] [< arg>]* ] | Specifies that the data in this file is not in UTM, and should be projected first (currently, only projections from latitude-longitudes are supported). All objects that support the PROJECT keyword take at least one argument (Projection-Name) and an optional CENTER clause. The Projection-Name is one of the projections available in the .Projection hierarchy (accessible through the "gz projection list" command). If AUTO is specified, then the currently active projection in GeoZui3D is used, or if no projection is present then an appropriate UTM zone is automatically determined and made the active GeoZui3D projection. The CENTER clause is optional, and specifies what a point to be used to select an AUTO projection, as well as what to use as the internal reference point from which the remaining points will be offset. Further arguments may be present in some formats, such as the GUTM format. The PROJECT line replaces the LOCAL_ORIGIN line as indicating the end of the header, and should not appear in the header for files that contain data already in UTM coordinates. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> [IN < Projection-Name>] | The end of each header is designated by the local origin of the object given in UTM coordinates (meters). The height is with respect to "sea level": a negative height specifies an origin below sea-level, and a positive height specifies an origin above sea-level. If a Projection-Name is given, GeoZui3D attempts to set this as the current projection. If another projection is already in place, however, GeoZui3D produces a warning and loads the object as if the LOCAL_ORIGIN coordiates are relative to the current projection already in place. |
[Data] | Each Data-Type has its own data format, although some have no data whatsoever. |
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN GUTM < Version-Number> | The current version is 1.1. Features that were not present in version 1.0 have the number of the first version they appear in at the end of the description. |
COLS_ROWS < Column-Count> < Row-Count> | Specifies the number of points in each column and row of the bounding grid. |
CELLSIZE {< Cell-Size> | AUTO} | Specifies the distance between grid points in meters. AUTO can only be specified if a PROJECT line is present, and is the default. |
SHAPE { FULLGRID | PARTIAL } | Specifies whether the Strips that follow specify the start and end of a line (PARTIAL) or not (FULLGRID). PARTIAL is the default if no SHAPE is given. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the Southwestern corner of the bounding grid. |
[PROJECT {AUTO | < Projection-Name>} [CENTER < Longitude> < Latitude> < Height>] < Conversion-Method> [< arg>]* ] | Specifies that the data in this file is to be converted to GUTM format from another gridded format, and that the data following the PROJECT line is in the Conversion Grid Format. The Projection-Name is one of the projections available in the .Projection hierarchy (accessible through the "gz projection list" command), and the Conversion-Method is one of the methods available in the .Conversion hierarchy (accessible through the "gz address Conversion list" command). If AUTO is specified, then the currently active projection in GeoZui3D is used, or if no projection is present then an appropriate UTM zone is automatically determined. If a CENTER clause is present, it is not used to give an internal (x, y, z) reference point. The Longitude is used to determine the projection if AUTO is specified, and the Height is used as the base of the GUTM (the Latitude is for all purposes ignored). Further arguments after the Conversion-Method are passed to the conversion method, as are information from COLS_ROWS, CELLSIZE, and SHAPE parameters. The PROJECT line replaces the LOCAL_ORIGIN line as indicating the end of the GUTM header, and should not appear in the header for normal GUTM files that contain triangle-strip records. (New in 1.1) |
{< Triangle-Strip>}* | < Conversion-Grid> | If no PROJECT line is in the header, Triangle-Strips are specified from South to North. There must be as many strips as there are rows. The format of the strips are defined in the following table. If a PROJECT line is in the header, a full Conversion Grid Format is expected. |
Triangle Strip Records
The definition of < Triangle-Strip> for the GUTM file format is as
follows:
[< Start-Column> < End-Column+1>] | Indicates the starting and ending columns in the current strip (row) from West to East. The GUTM is assumed to be empty outside this range, but data is expected for every point within this range (excluding the column of End-Column+1). This line is only present if "PARTIAL" is chosen for the SHAPE. |
{< Height-Value>}* | The height for the current row and column. Any values less than or equal to 0.0 are assumed to be holes. The number of heights in a strip is equal to < End-Column> - < Start-Column> + 1. |
Example
The following example shows a 5x4 bounding grid with a surface
defined at the points represented in the following schematic.
The bounding grid area is 100x80, as determined by the cellsize
and the dimensions of the grid.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN IMAGEFILE < Version-Number> | Currently, there is only one version (1.0). |
{ROV | BILLBOARD | HOVER} | Specifies the format for the Image-Records that follow. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the origin from which image locations are specified. |
{< Image-Record>}* | Specified in any order. There can be any number of Image-Records, as there is no line specifying how many to expect. The format of the Image-Records are defined in the following table. |
Images Format Options
A < Image-Record> within the Images file format takes one
of the following formats (all location values are specified in
meters from the LOCAL_ORIGIN):
< X> < Y> < Z> < Heading> < Filename> < Time> | "ROV" Option. The x-y-z position indicates the location of the "camera" that took the picture. Default values for the size and distance of the images from the camera are assumed. Heading is given in degrees, and indicates the direction the camera was facing (in absolute terms). The filename is the name of the jpeg to be shown. The time field is currently unused, but a value must be present here. The format expected is HH:MM:SS, although any format that does not contain whitespace would be acceptable at this time. |
< X> < Y> < Z> < Heading> < Height> < Width> < Filename> | "BILLBOARD" Option. The x-y-z position indicates the location of the "camera" that took the picture. Heading is given in degrees, and indicates the direction the camera was facing (in absolute terms). Height and Width parameters specify what size the image should have when displayed. The distance from the camera is assumed to be 1.5 * Width. The filename is the name of the jpeg to be shown. |
< X1> < Y1> < X2> < Y2> < X3> < Y3> < X4> < Y4> < Z> < Filename> | "HOVER" Option. The X and Y positions specify the four corners of the image, all using the same Z. This has the effect of generating an image that is parallel with the sea-plane. The filename is the name of the jpeg to be shown. |
Examples
The following example shows a 10-image ROV-style file.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN PLANE < Version-Number> | Currently, there is only one version (1.0). |
BACKGROUND {ON | OFF} | Specifies whether the grid is filled ("ON") or hollow ("OFF") |
BGCOLOR < Red-Byte> < Green-Byte> < Blue-Byte> | Specifies the color of the background when it is on (even if it is off, this field is required anyway). Each color component is specified as a decimal integer between 0 and 255. |
GCOLOR < Red-Byte> < Green-Byte> < Blue-Byte> | Specifies the color of the grid itself. Each color component is specified as a decimal integer between 0 and 255. |
CELLSIZE < X-Size> < Y-Size> | Specifies the size of a grid rectangle (might not be square) in meters. |
CELLCOUNT < X-Count> < Y-Count> | Specifies the number of grid rectangles in each direction. Must be an integer. |
GRIDOFFSET < Height> | Specifies the distance between the background and the grid, when the background is on (if it is off, this field is required anyway). The offset is always added to the LOCAL_ORIGIN to determine the location of the plane; the background is always at the height of the LOCAL_ORIGIN. The offset is given in meters. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the center of the background plane. |
The Plane format has no data after the header. |
Example
The following example shows a sea-level plane with a
blue background and a white grid. The grid is 5km x 6km,
with 100m x 100m squares.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN POINTS < Version-Number> | Currently, there is only one version (1.0). |
N_RECORDS < Point-Count> | Specifies the number of point records to follow |
{XYZC | XYZDC | XYZDCT} | Specifies one of three formats for the point records to follow. All of them expect x-y-z coordinate triples. "XYZC" expects color specificaiton, "XYZDC" expects cone diameter in addition to color, and "XYZDCT" expects diameter, color, and text. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the origin from which points are specified. |
{< Point>}* | Specified in any order. There must be as many points as specified in the "N_RECORDS" line. The format of the points are defined in the following table. |
Point Format Options
A < Point> within the Points file format takes one
of the following formats (all x-y-z triples are specified in
meters from the origin, and supported colors are listed
in the next subsection):
< X> < Y> < Z> < Color> | "XYZC" Option. |
< X> < Y> < Z> < Diameter> < Color> | "XYZDC" Option. The Diameter is actually a (multiplicative) scale factor on the entire point representation. |
< X> < Y> < Z> < Diameter> < Color> "< Text>" | "XYZDCT" Option. The Diameter is actually a (multiplicative) scale factor onthe entire point representation. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes. |
A | Auburn (brown) |
B | Blue |
C | Cyan |
D | Dark Green |
E | Elephant Grey |
G | Green (bright) |
R | Red |
Y | Yellow |
Example
The following example shows a 7-point object, with diameter
and text fields included.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN TUBE < Version-Number> | Currently, there is only one version (1.0). |
N_RECORDS < Point-Count> | Specifies the number of point records to follow |
{SPLINE | NO_SPLINE} | Specifies whether or not a spline is automatically generated. Currently, the "SPLINE" option can only be used with the "XYZ 0" below. |
DIA < Diameter> | Specifies the diameter of the tube. |
COLOR < Red-1> < Green-1> < Blue-1> < Red-2> < Green-2> < Blue-2> | Specifies two colors for striping the tube, or for using in choosing blended colors. |
XYZ < Num-Params> | Specifies the number of parameters for the tube. x-y-z triples are always present. If Num-Params > 1, then floats between 0 and 1 are expected (indicating a blend of the colors specified above). If Num-Params > 2, then diameter multipliers are also expected (multiplied by the base diameter given above). If Num-Params is greater than zero, "NO_SPLINE" must be specified (for now, at least). |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the origin from which tube points are specified. |
{< Point-Record>}* | Specified in order from first to last. There must be as many point-records as specified in the "N_RECORDS" line. The format of the point-records are defined in the following table. |
Tube Format Options
A < Point-Record> within the Tube file format takes one
of the following formats (all x-y-z triples are specified in
meters from the origin):
< X> < Y> < Z> | "XYZ 0" Option. |
< X> < Y> < Z> < Color-Blend> | "XYZ 1" Option. The Color-Blend number is a float between 0 and 1. If a is the first color specified in the "COLOR" header attribute, b is the second color, and C is the value of the Color-Blend for this particular record, then the resulting color is (1 - C)a + Cb. |
< X> < Y> < Z> < Color-Blend> < Size-Factor> | "XYZ 2" Option. The Color-Blend is described above in the "XYZ 1" option. The Size-Factor is a (multiplicative) factor on diameter of the tube at the current point. |
Examples
The following example shows a 10-point tube, with changing
diameters and colors
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN DATA_POINTS < Version-Number> | Currently, there is only one version (1.0). |
N_RECORDS < Point-Count> | Specifies the number of Point-Records to follow |
N_COLUMNS < Column-Count> | Specifies how many whitespace delineated data items to expect in each Point-Record. |
{XYZ | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column>} | If "XYZ", specifies that the first three columns should be used for x-y-z triples. If "XYZ_COLUMNS", specifies which column contains the coordinate data for each dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS. |
COLOR { ATTRIBUTE < Attrib-Column> [AS_HEIGHT] |
RGB_COLUMNS < Red-Column> < Green-Column> < Blue-Column> | CODE < Index-Column> | CONSTANT {RGB | CODE} < Color-Info> } | If "ATTRIBUTE", specifies which column contains the
data attribute to be mapped to color. If AS_HEIGHT
is specified, applies the proper georeference height
offset to the attribute before mapping it to color.
If "RGB_COLUMNS", specifies which columns contain the color data for each color dimension. Unused components are designated by a 0. If "CODE", specifies which column contains a character representing color (given in the table that follows). If "CONSTANT", indicates that the following color should be used for all points. Color-Info consists of three floating point numbers between 0 and 1 if RGB, or a supported code if CODE. |
GLYPH {POINT | Shape | COLUMN < Glyph-Column>} | Specifies how to represent a point. If "POINT" is selected, then each point is represented as a scale-independent square, with a size in pixels determined by the SIZE option. Otherwise, Shape can be one of glyphs listed in the "Supported Glyphs" table below. If COLUMN is selected, then the following argument specifies which column contains the glyph specification for each point. |
[DROP_LINE {ON | OFF | FRAGILE | TRANSIENT}] | Specifies whether or not a line is dropped from the point, to provide better depth-cueing. If specified as "FRAGILE", then the dropped line only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the dropped line only appears in low-resolution drawing (it is only there during interaction). Default is FRAGILE. |
SIZE {CONSTANT < Size-Factor> | COLUMN < Size-Column> < Size-Factor> | COLUMNS [X][Y][Z][C][K] < Dim-Size-Column>* [< Size-Factor>]} | Specifies a constant size, or which column(s) contains the size information for each data point. If the GLYPH selected is a point, the size is multiplied by Size-Factor to indicate the number of pixels, otherwise the size is multiplied by Size-Factor to scale the GLYPH selected. Size-Column should be specified only if COLUMN is present. If COLUMNS is specified, then what follows is a 1-, to 5-letter designation for the numbers that follow respectively. X, Y, and Z indicate that the associated number is the column (starting from 1) in which the size for that dimension is specified. C indicates that the associated number is the column in which a multiplier on every dimension can be found. K indicates a that the associated number is a constant (Size-Factor) for any unspecified dimensions, and a multiplier for the specified dimensions. COLUMNS size specification can only be used with non-point GLYPH's. |
TEXT {NONE | COLUMN < Text-Column>} | If "NONE" is specified, then no text is expected. If "COLUMN" is specified, then the following argument specifies which column contains the text information for each data point. This text can be displayed in the Information window of the Objects panel in GeoZui3D. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes. A Text-Column of 0 indicates that no text should be associated with any points. |
DEGRADATION {OFF | SIMPLIFY_GLYPH | NTH} | Specifies how to degrade the collection of points. If "OFF", no degradation is done. If "NTH", degradation occurs by only displaying every nth point. |
DATA COLUMN < Data-Column> < Name> [AS_NUMBER | AS_STRING | AS_EXPONENTIAL] | Specifies that some data column should be read in for each row, and exported as an attribute named Name (rather than being actively displayed in some way). "AS_NUMBER" indicates the data should be treated as integer or floating point data, while "AS_STRING" indicates the data should be treated as literal strings. "AS_EXPONENTIAL" indicates that a log (base 2) should be taken on the data, then treated as floating point data. Defaults to "AS_NUMBER". |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the origin from which points are specified. |
{< Point-Record>}* | Specified in any order. There must be as many points as specified in the "N_RECORDS" line. The format of the points are defined by the settings specified above. |
A | Auburn (brown) |
B | Blue |
C | Cyan |
D | Dark Green |
E | Elephant Grey |
G | Green (bright) |
K | Black |
M | Magenta |
R | Red |
W | White |
Y | Yellow |
These are the supported glyphs for the Geographic Data Points format. In practice, only the first three letters of the name are looked at, so you could specify CONE instead of CON, for instance.
CON | Cone |
CUB | Cube |
CYL | Cylinder |
DIA | Diamond |
INV | Inverted Cone |
SPH | Sphere |
UCU | UCube (Unit Cube, width of 2.0) |
UCY | UCylinder (Unit Cylinder, radius and height of 1.0) |
USP | USphere (Unit Sphere, radius of 1.0) |
Example
The following example creates 7-points, represented
as cones with dropped lines, and with diameter
and text fields included.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN DATA_LINES < Version-Number> | Currently, there is only one version (1.0). |
N_RECORDS < Point-Count> | Specifies the number of Line-Records to follow |
N_COLUMNS < Column-Count> | Specifies how many whitespace delineated data items to expect in each line of a Line-Record. |
{XYZ | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column>} | If "XYZ", specifies that the first three columns should be used for x-y-z triples. If "XYZ_COLUMNS", specifies which column contains the coordinate data for each dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS. |
COLOR { ATTRIBUTE < Attrib-Column> [AS_HEIGHT] |
RGB_COLUMNS < Red-Column> < Green-Column> < Blue-Column> | CODE < Index-Column> | PER_RECORD {ATTRIBUTE | RGB | CODE} | CONSTANT {RGB | CODE} < Color-Info> } | If "ATTRIBUTE", specifies which column contains the
data attribute to be mapped to color. If AS_HEIGHT
is specified, applies the proper georeference height
offset to the attribute before mapping it to color.
If "RGB_COLUMNS", specifies which columns contain the color data for each color dimension. Unused components are designated by a 0. If "CODE", specifies which column contains a character representing color (given in the color table for .gdp's). If "PER_RECORD", indicates that the color will be given at the beginning of a record in one of these formats. If "CONSTANT", indicates that the following color should be used for all lines. Color-Info consists of three floating point numbers between 0 and 1 if RGB, or a supported code if CODE. |
[LINE {OFF | ON | FRAGILE | TRANSIENT}] | Specifies whether to show a line or not. If specified as "FRAGILE", then the line only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the line only appears in low-resolution drawing (it is only there during interaction). Default is ON. |
[TUBE {OFF | ON | FRAGILE | TRANSIENT} [FACETS < FacetCount>]] | Specifies whether to show a tube or not. If specified as "FRAGILE", then the tube only appears in high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the tube only appears in low-resolution drawing (it is only there during interaction). If FACETS is given, TUBE must not be OFF, and the FacetCount specifies how many rectangles to use to approximate a tube. Default is OFF. |
SIZE {PER_RECORD | CONSTANT < Size>} | Specifies whether the size (width) for a line is given at the beginning of a Line-Record, or is constant and given here. |
TEXT {NONE | PER_RECORD} | Specifies whether text is supplied at the beginning of a Line-Record or not. |
[DEGRADATION {OFF | NTH | FACETS | FACETS_NTH}] | Specifies how to degrade the collection of points. If "OFF", no degradation is done. If "NTH", degradation occurs by only displaying every nth point. "FACETS" and "FACETS_NTH" are respective degradations of "OFF" and "NTH" that degrade a tube to have fewer facets. The default is FACETS_NTH. |
DATA {COLUMN < Data-Column>| PER_RECORD} < Name> [AS_NUMBER | AS_STRING | AS_EXPONENTIAL] | Specifies that some data should be read in and exported as an attribute named Name (rather than being actively displayed in some way). If "COLUMNS" is specified, the data will be expected for every point. If "PER_RECORD" is specified, the data will be expected after all other fields in each "NEW" line (but before any DATA lines declared after this line). "AS_NUMBER" indicates the data should be treated as integer or floating point data, while "AS_STRING" indicates the data should be treated as literal strings. "AS_EXPONENTIAL" indicates that a log (base 2) should be taken on the data, then treated as floating point data. Defaults to "AS_NUMBER". |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the origin from which points are specified. |
{< Line-Record>}* | Specified in any order. There must be as many Line-Records as specified in the "N_RECORDS" line. The format of the Line-Records are given in the folowing table. |
NEW < Point-Count> [< Color>] [< Size>] [< Text>] | Indicates the number of points in this line (>= 2). Any attributes that were designated as PER_RECORD in the header are listed in the order shown here. If COLOR was specified as RGB, three floats between 0.0 and 1.0 are expected. Size is either a scale-independent line width or a scale-dependent tube diameter. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes. |
{< Point-Record>}* | Specified in order of the line. There must be as many points as specified in the Point-Count above. The format of the points are defined by the settings specified in the header. |
Example
The following example creates three lines, represented
as tubes with lines running down the center, and with diameter
and text fields included. Color is given independently for
each point.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN DATA_TRIANGLES < Version-Number> | Currently, there is only one version (1.0). |
N_RECORDS < Point-Count> | Specifies the number of Triangle-Records to follow |
N_COLUMNS < Column-Count> | Specifies how many whitespace delineated data items to expect in each line of a Triangle-Record. |
{XYZ | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column>} | If "XYZ", specifies that the first three columns should be used for x-y-z triples. If "XYZ_COLUMNS", specifies which column contains the coordinate data for each dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS. |
COLOR { ATTRIBUTE < Attrib-Column> [AS_HEIGHT] |
RGB_COLUMNS < Red-Column> < Green-Column> < Blue-Column> | CODE < Index-Column> | TEXTURE | PER_RECORD {ATTRIBUTE | RGB | CODE} | CONSTANT {RGB | CODE} < Color-Info> } | If "ATTRIBUTE", specifies which column contains the
data attribute to be mapped to color. If AS_HEIGHT
is specified, applies the proper georeference height
offset to the attribute before mapping it to color.
If "RGB_COLUMNS", specifies which columns contain the color data for each color dimension. Unused components are designated by a 0. If "CODE", specifies which column contains a character representing color (given in the color table for .gdp's). If "TEXTURE", the user will assign a geo-referenced texture at run-time. If "PER_RECORD", indicates that the color will be given at the beginning of a record in one of these formats. If "CONSTANT", indicates that the following color should be used for all triangle strips. Color-Info consists of three floating point numbers between 0 and 1 if RGB, or a supported code if CODE. |
[FILL {PER_RECORD | OFF | ON | FRAGILE | TRANSIENT}] | Specifies whether to render hollow triangles or fill them in. If specified as "FRAGILE", then triangles are only filled in during high-resolution drawing (it is "non-robust" with respect to interaction; it "breaks" when you move and recovers when you stop moving). If specified as "TRANSIENT", then the triangles are filled in only during low-resolution drawing (it is only there during interaction). Default is ON. |
NORMALS {PER_RECORD | RIGHT_HANDED | LEFT_HANDED | UP | DOWN | XYZ_COLUMNS < X-Column> < Y-Column> < Z-Column> [SCALE_Z < Z-Factor>]} | Specifies how the normals should be calculated for the purposes of lighting. If XYZ_COLUMNS, specifies which column contains the vector normal component for each respective dimension. Each column number must be greater than or equal to 1 (the first column) and less than or equal to N_COLUMNS. If a SCALE_Z is present, then the Z-factor that follows is multiplied by each normal's z-component, which can be useful when normals are calculated in lat-long (normals do not get transformed by projections). If not XYZ_COLUMNS, the normals are automatically generated by taking the cross-product of the lines between the first two points of a triangle and the second two points, modified as follows (If PER_RECORD, each triangle strip will define its own option from RIGHT_HANDED, LEFT_HANDED, UP, or DOWN). RIGHT_HANDED and LEFT_HANDED indicate whether the right-hand rule (standard) or the left-hand rule (multiply each component of the cross product result by -1) should be used to determine the direction of the normal for the first triangle--after this, the rule is alternated with each successive triangle so that a "regular" strip has all normals pointing in the same z-direction. UP or DOWN indicates that all normals should be forced to point in the same z-direction (either UP or DOWN). |
SIZE {PER_RECORD | CONSTANT < Size>} | Specifies whether the size (width) for lines are given at the beginning of a Triangle-Record, or is constant and given here. This specifies the line thickness. |
TEXT {NONE | PER_RECORD} | Specifies whether text is supplied at the beginning of a Triangle-Record or not. |
DATA {COLUMN < Data-Column>| PER_RECORD} < Name> [AS_NUMBER | AS_STRING | AS_EXPONENTIAL] | Specifies that some data should be read in and exported as an attribute named Name (rather than being actively displayed in some way). If "COLUMNS" is specified, the data will be expected for every point. If "PER_RECORD" is specified, the data will be expected after all other fields in each "NEW" line (but before any DATA lines declared after this line). "AS_NUMBER" indicates the data should be treated as integer or floating point data, while "AS_STRING" indicates the data should be treated as literal strings. "AS_EXPONENTIAL" indicates that a log (base 2) should be taken on the data, then treated as floating point data. Defaults to "AS_NUMBER". Not actively implemented yet! |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the origin from which points are specified. |
{< Triangle-Record>}* | Specified in any order. There must be as many Triangle-Records as specified in the "N_RECORDS" line. The format of the Triangle-Records are given in the folowing table. |
Triangle-Records
A < Triangle-Record> within the Geographic Data Triangles
file format takes the following format:
NEW < Point-Count> [< Color>] [< Fill-Mode>}] [< Normal-Rule>] [< Size>] [< Text>] | Indicates the number of points in this triangle strip. Any attributes that were designated as PER_RECORD in the header are listed in the order shown here. If COLOR was specified as RGB, three floats between 0.0 and 1.0 are expected. The Fill-Mode can be one of ON, OFF, FRAGILE, or TRANSIENT, with the effect described for the FILL parameter above. The Normal-Rule can be one of RIGHT_HANDED, LEFT_HANDED, UP, or DOWN, with the effect described for the NORMALS parameter above. Size indicates a scale-independent line width. Text must appear between double-quotes, and may not contain double-quotes within it. Newlines and other characters are acceptable within the double-quotes. |
{< Point-Record>}* | Specified as in GL_TRIANGLE_STRIP. In othe words, for a list of n points, the first triangle is formed by p0, p1, and p2; the second triangle is formed by p1, p2, and p3; all the way up to p(n-2), p(n-1), pn. There must be as many points as specified in the Point-Count above. The format of the points are defined by the settings specified in the header. |
Example
The following example creates three triangle stips using
a texture supplied through GeoZui3D at runtime.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. | ||||||||||||||
BEGIN COORD < Version-Number> | Currently, there is only one version (1.0). | ||||||||||||||
DIMENSIONS < XYZ-String> {< Length>}+
Specifies the dimensions of the grid/axis. XYZ-String
can be one of the folowing: X, Y, Z, XY, XZ, YZ, or XYZ.
There is one Length value for each character in the
string, representing the length in the respective
dimension.
|
REFERENCE {LOCAL | GLOBAL}
| Specifies whether gridlines and ticks are displayed
at local offsets or at global coordinate locations.
|
[BACKGROUND < Num-Planes> {< Plane-String>}*]
| Specifies how many background planes are generated, and which
ones they are. The Plane-Strings are selected from the
following: XYMIN, XYMAX, XZMIN, XZMAX, YZMIN, YZMAX. The
"MIN" designation means the plane should be at the minimum
position of the orthogonal dimension, while "MAX" designates
the maximum position. The BACKGROUND field is not required
if no backgrounds are desired.
|
[BGCOLOR < Red> < Green> < Blue>]
| Specifies the color of the backgrounds when they are on. Each
color component is specified as a float between 0.0 and 1.0.
The BGCOLOR field is not required.
|
LINECOLOR < Red> < Green> < Blue>
| Specifies the color of the grid/axis lines. Each color component
is specified as a float between 0.0 and 1.0.
|
[BACKGROUND_OFFSET < Distance>]
| Specifies the distance between the background and the grid/axis,
when a background is on. The offset is always subtracted from
MIN planes and added to MAX planes. The offset is given
in meters. The BACKGROUND_OFFSET field is not required.
|
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height>
| The coordinates of the origin of the coordinate grid/axis.
The origin corresponds to the MIN position in all three
dimensions.
|
{[{FRAGILE | TRANSIENT}] < Coord-Spec>}*
| Specified in any order. Determines where lines, axis ticks,
and/or labels are to go. Optionally, FRAGILE or TRANSIENT
may appear before each record. If FRAGILE is specified,
then the entity only appears in high-resolution drawing
(it is "non-robust" with respect to interaction; it
"breaks" when you move and recovers when you stop moving).
If TRANSIENT is specified, then the entity only appears
in low-resolution drawing (it is only there during
interaction). The format of the Coord-Specs are defined
in the following table.
| |
Coordinate Grid/Axis Format Options
A < Coord-Spec> within the Coordinate Grid/Axis file
format takes one of several formats. Some options are present
across formats, as listed:
< Location*> | { MIN | MAX | MIN_MAX | THROUGH} | The Location takes the value of MIN, THROUGH, MAX, or MIN_MAX, indicating where lines, ticks, or labels should appear in the dimension being specified. For instance, an axis drawn through the X dimension might be drawn at the local-"0" values for both Y and Z, which would require MIN to be chosen for each of these dimensions. If MAX were chosen for both, the axis would be drawn at the opposite edge of the bouding-box (specified in the DIMENSIONS field in the header). THROUGH indicates that a line, tick, or label should be repeated at a regular interval throughout the respective dimension. |
< Spacing-clause> |
{SPACING_EVEN < Spacing> |
SPACING_XYZ < X-Spacing> < Y-Spacing> < Z-Spacing> | SPACING_DYNAMIC [< Spacing-Factor>] } | If the first token in the Spacing-clause is "SPACING_EVEN", then the following argument describes the distance between lines, ticks, or labels given in meters. If the token is "SPACING_XYZ", then three arguments must follow, each describing the distance between lines, ticks, or labels, given in meters for each respective dimension. If the first token is intstead "SPACING_DYNAMIC", then the following argument describes the factor at which new sets of ticks/axes are created as the environment is zoomed in and out. If no argument is given for SPACING_DYNAMIC, the Spacing-Factor defaults to 10.0. |
The formats for the different types of Coord-Spec's are as follows:
LINES < Direction> < Location1>
[< Location2>] [< Spacing-clause>] | Lines for grid markings, axis. Direction is given as a letter indicating which axis the line is parallel to, followed by a dash, followed by one or two letters indicating which axes the line should be replicated in. For instance, X-Y is a line parallel to the X axis, potentially replicated in the XY plane; while X-YZ is also parallel to the X axis, but is potentially replicated throughout space. The Location indicates where the line(s) should appear relative to the portion of the direction after the dash. If the portion of the direction after the dash is a single letter, then Location2 must be specified (otherwise it must not be specified), and indicates the location with respect to the missing dimension (othogonal to both in the Direction argument). If THROUGH is specified for any dimension, then a Spacing-clause is required. |
{TICKS | LABELS | TICKS_LABELS}
< Direction>
< Location1> < Location2> < Distance> < Spacing-clause> | Tick marks and/or labels for axes. Direction is given
as a letter indicating the dimension along which ticks and/or
labels should be placed. Location1 and Location2 indicate where
on the other two orthogonal axes the tick marks and/or labels
should go. Location1 specifies either X or Y, and Location2
specifies either Y or Z, Direction != Location1 != Location2.
LABELS are never really drawn THROUGH, but instead appear
as if specified as MIN_MAX. < Distance> specifies
how long the tick marks should be (in meters) and/or how far
away the labels should be from the axis.
When SPACING_DYNAMIC is chosen as the method of spacing, the meaning of Location and Distance information changes somewhat. The Distance gets scaled according to the scale of the level being drawn. For instance, if Distance is 2.0 and the Spacing-Factor is 10.0, then for a grid level with spacing of 100 meters, the length of a tick would be 20 meters. With LABELS, if Location is THROUGH, labels will appear on either end of each dynamic area, as if specified as MIN_MAX for each dynamic area. |
GRID < Direction> < Location> < Spacing-clause> | Special case of LINES for simple grid creation. Direction is one of XY, XZ, YZ, or XYZ. The Location indicates where the plane should appear in the dimension orthogonal to the grid plane (or in the case of XYZ, it specifies the location for all 3 orthogonal directions at once). |
Example
The following example shows a sea-level plane with a
blue background and a white grid. The grid is 5km x 6km,
with 100m x 100m squares.
The structure of the Curtain Plot file format is as follows:
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN CURTAIN < Version-Number> | Currently, there is only one version (1.0). |
{ CLUT | RGB | RGBA } | "CLUT" specifies that each data point is represented in the file as a single pair of hex digits representing an index between 0 (00) and 255 (FF). The index value 0 is reserved to indicate an invalid reading. For rendering purposes, the index will be used to index an unassigned color lookup table. "RGB" specifies that each data point is represented by three pairs of hex digits representing the red, green, and blue components of the color to be used to represent the data point. "RGBA" specifies that each data point is represented by four pairs of hex digits representing the red, green, blue and alpha components of the data point's color. Alpha is an opacity value, where 255 (FF) means fully opaque and 0 (00) means fully transparent. In index (CLUT) mode, a standard GeoZui3D color lookup table must be assigned to the curtain, via the user interface. This lookup table is indexed by the curtain to determine colors (i.e. the height value in the lookup table is ignored, and each unique height entry in the table is given an index, starting at 0). Since index value 0 is reserved for an invalid reading, the color table should be constructed with its first entry being the one to represent bad data. |
NCOLS < Column-Count> | Specifies the number of columns of data to follow |
Z_STEP < Depth-Increment> | Specifies the distance in meters between the readings in a single column of data. |
DEGRADATION {OFF | NTH} | Specifies how to degrade the curtain of points. If "OFF", no degradation is done. If "NTH", degradation occurs by creating the curtain using every nth point, potentially changing the shape and continuity of the curtain. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The coordinates of the origin from which data columns are specified. |
{< X> < Y> < Z> < NVALS> {XX}*}* | This is the column data. There is one line in the data file per column, in order by column number. There must be as many columns as specified in the "NCOLS" line. The X, Y and Z values are the coordinates of the top of the column. NVALS is the number of data values in the column. The data values XX themselves appear next, in order from the top of the column. These values are hex encoded as explained above and must not be comma or space separated. |
Example
The following example shows a curtain plot file for a
curtain consisting of only 8 columns, each with at most 15 data points, and with
data coded by an index. The curtain reference height is 500 meters below sea
level.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. | ||||||||||||||||||||||||
BEGIN LABEL < Version-Number> | Currently, there is only one version (1.0). | ||||||||||||||||||||||||
N_RECORDS < Record-count>
Specifies the number of records that will follow for specifying
the scale-dependent representations.
|
SCALE < Min-Scale> < Max-Scale>
| Specifies the minimum and maximum scales at which the label should
be drawn at all. If Max-Scale is 0, the label is always visible.
|
[LABEL {ROBUST | OFF | FRAGILE | TRANSIENT | DEFAULT}]
| Specifies when a label is drawn with respect to interaction.
If specified as "FRAGILE", then the label only appears in
high-resolution drawing (it is "non-robust" with respect
to interaction; it "breaks" when you move and recovers
when you stop moving). If specified as "TRANSIENT", then the
label only appears in low-resolution drawing (it is only there
during interaction). ROBUST means it always shows, while OFF
means it does not show. Default is ROBUST.
|
[TEXT < Label-String>]
| Specifies what should be displayed as the label text. If Label-String
includes whitespace, it should be enclosed in quotes.
|
[FONT < Font-Type>]
| Specifies what font should be used in displaying the label.
Valid Font-Types are STANDARD_9_BY_15, STANDARD_8_BY_13,
TIMES_ROMAN_10, TIMES_ROMAN_24, HELVETICA_10, HELVETICA_12,
and HELVETICA_18. The default is HELVETICA_10.
|
[COLOR < Red> < Green> < Blue>
[< Alpha>]]
| Specifies the foreground color of the text, as well as any
lines or wireframe boxes drawn with the label. Valid values
for each channel are between 0.0 and 1.0, inclusive. The
default is all 1.0's (opaque white).
|
[PRIORITY < Priority-Value>]
| The PRIORITY syntax is reserved for future use and currently
has no effect.
|
[LINE {ALWAYS | AUTO | DEFAULT | OFF}
[ROBUST | OFF | FRAGILE | TRANSIENT | DEFAULT]]
| The LINE syntax is reserved for future use and currently has no effect.
|
[BACKGROUND [COLOR < Red> < Green> < Blue>
< Alpha>] {SHADOW | OUTLINED_BOX | BOX | OFF | DEFAULT}
[ROBUST | OFF | FRAGILE | TRANSIENT | DEFAULT]]
| Specifies that a background of some sort should appear behind the label.
If COLOR is present, all four channels must be present as well, with each
in the range of 0.0 to 1.0. Otherwise, the background color defaults to
all 0.0's (transparent black). The "background" can take the form of
shadowed text, a solid box, or an outlined solid box. In the case of
the outlined solid box, the outline color is determined by the toplevel
COLOR line (not from this BACKGROUND line). If a robustness argument
is given, "FRAGILE" indicates the background should only appear in
high-resolution drawing (it is "non-robust" with respect
to interaction; it "breaks" when you move and recovers
when you stop moving). If specified as "TRANSIENT", then the
background only appears in low-resolution drawing (it is only there
during interaction). ROBUST means it always shows, while OFF
means it does not show. The default if no BACKGROUND line is
present is OFF, but the default if a BACKGROUND line is present
and no robustness keyword is used is ROBUST.
|
[SURFACE < GUTM-Name>]
| The SURFACE syntax is reserved for future use and currently
has no effect.
|
[INTEREST {POINT | REGION} x1 y1 z1 [x2 y2 z2]]
| Specifies where the label should appear relative to the LOCAL_ORIGIN.
If POINT is given, appears centered at (x1, y1, z1), relative to
the LOCAL_ORIGIN. The REGION syntax and use of (x2, y2, z2) is
reserved for future use and may cause instability if used currently.
|
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height>
| The base coordinates of the label.
|
{< Label-Record>}*
| Specified in order of increasing scale (magnification).
There must be as many Label-Records as specified in the "N_RECORDS"
line. The format of the Label-Records are given in the folowing table.
| |
Label-Records
A < Label-Record> within the Label file format
takes the following format (label records must appear in
the order of increasing scale):
NEW_SCALE < Min-Scale> | Indicates the lower scale bound for the scale region in which the record applies. |
{< Label-Specification>}* | Most of the syntax that is valid in the header is also valid in a Label-Record. LABEL, TEXT, FONT, COLOR, PRIORITY, LINE, BACKGROUND, SURFACE, and INTEREST syntax are all applicable here. |
Examples
The following example shows a label that appears in a larger
font between scales of 0.5 and 5.0 in the window that is rendering
it, and a smaller font between scales of 5.0 and 50.0. When
shown as the larger text, the text appears in cyan, with a grey
box and a cyan outline, all centered at a position 100 meters
from the LOCAL_ORIGIN in each dimension. When shown as the smaller
text, it appears in light-blue with a white background box (no outline),
50 meteres lower than the larger text was.
The following example shows a label that appears at any scale up to a scale of 5. It appers at one location (in the center of Maine) up to a scale of .01, and then gets moved closer and closer to the New Hampshire border as the scale reaches .01, then .05, and finally .50 (it disappears at a scale of 5). This example is used in an exhibit that zooms in from a large region containing several states to an area on the border between New Hampshire and Maine. At the last level, the label changes to "Kittery, Maine" (this last line does not appear in the exhibit).
The structure of the vector file format is as follows:
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN VECTOR < Version-Number> | Currently, there is only one version (1.0). |
{ STATIC } | "STATIC" specifies that vectors are not animated at a certain point in time. |
SCALE < scale > | Specifies the amount to scale the vectors to make them visible when viewed as a group. |
Example
The following example shows a curtain plot file for a
curtain consisting of only 8 columns, each with at most 15 data points, and with
data coded by an index. The curtain reference height is 500 meters below sea
level.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. | ||||||||||
BEGIN VESSEL < Version-Number> | Currently, there is only one version (1.0). | ||||||||||
BOW_SIZE < Width> < Length> < Height>
Specifies the dimensions of the bow (front) of the vessel.
The Width and Height arguments indicate what the hull
dimensions taper to Length meters from the front end of
the hull.
|
HULL_SIZE < Width> < Length> < Height>
| Specifies the dimensions of the hull (main body) of the vessel.
All dimensions are given in meters. The hull is just a big
rectangular solid that connects the bow, stern, and bridge
together. The main reference point for the vessel is in the
center of the bottom-rear of the hull, where the tail comes out.
|
STERN_SIZE < Width> < Length> < Height>
| Specifies the dimensions of the stern (rear) of the vessel.
The Width and Height arguments indicate what the hull
dimensions taper to Length meters from the back end of
the hull.
|
BRIDGE_SIZE < Width> < Length> < Height>
| Specifies the dimensions of the bridge (box on top) of the vessel.
All dimensions are given in meters. The bridge is a
rectangular solid that sits on top of the hull, starting
one quarter of the way up the hull.
|
SHADOW {ON | OFF}
| Specifies whether or not a shadow should be shown below the vessel
over the bathymetry underneath. NOT IMPLEMENTED YET.
|
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height>
| The coordinates of the bottom center of the vessel, where
the hull meets the stern.
| |
Example
The following example shows a vessel with its keel
10 meters below the surface.
<?xml version="1.0"?> | Must appear at the very beginning of the file. Identifies the XML version used. |
<GZ> | Identifies this XML file as a GeoZui file. |
{< Scene-Item>}* | Any number of Scene-Items may be present between the GZ statements. Scene-Items include Object-Items, Texture-Items, Script-Items, and Collections, as described in the next table. |
</GZ> | Must appear at the end of the GeoZui-specific information. No other top-level tags can be present, and no more than one GZ section is read. |
Scene Items
A < Scene-Item> within the XML Scene file format takes one
of the following formats:
<Collection [label=< label>]> < Scene-Item>* </Collection> | A Collection allows object-items to be nested and given a collective name. |
<Texture filename=< filename> [label=< label>] [default=< value>] > </Texture> | Causes GeoZui to load a texture of the given filename. A label can be given (otherwise the texture name is generated from the filename), and if the default tag is present, then the texture is designated as the default texture for objects. |
<Object {filename=< filename> | type=< type> [< tags>} [label=< label>] [texture=< texture>] > [< inline-object-info>] </Object> | Causes GeoZui to either load an of the given filename or create an object of the given type. A label can be given (otherwise the object name is generated from the filename), and a texture can be given, either as the name of a texture already loaded, or as "default" (with quotes included). |
<Script [filename=< filename>]> [< inline-TCL-script>] </Script> | Causes GeoZui to source a script of the given filename, if a filename is given. Also executes any text between the Script tags as TCL. |
Example
The following example loads two textures and three objects.
It runs a script called "testscript.tcl" between loading
endeavor.gutm and r509.gutm, then runs an embedded script
at the end.
A chart object displays a horizontal image at sea level, such as a nautical charts. When fused with a gutm, a hole will be created trough the image to display the gutm. Currently, only TIFF format images are supported for chart objects.
imagefile |
Location of the TIFF file. |
worldfile |
Location of the corresponding World Header File as used in ArcView and Arc/INFO. |
Tides are represented as a series of Gutms representing waterlevel hights above a datum. Each timestep is represented by a Timestep tag in the Object tag of type Tide.
time |
Time in seconds since January 1st, 1970. |
filename |
Filename of the gutm for this timestep. |
A TVGutm is a surface that varies in time. Essentially, it is a collection of Gutms that are displayed one at a time, at their specified time.
time |
Time in seconds since January 1st, 1970. |
filename |
Filename of the gutm for this timestep. |
ncfile |
Filename of the netCDF file |
A NetCDF Object tag may contain one or more of the following object types.
Values may be interpreted from a netCDF file in various ways. The following codes are used to describe the source of some values:
d |
Dimension |
va |
Variable attribute |
ds |
Dimension size |
var |
Variable in the netCDF file
containing the particle data |
time |
Dimension representing the times |
timestep |
Length of time bwtween steps |
x |
Which dimension and index points
to the x values |
y |
Which dimension and index points to the y values |
z |
Which dimension and index points to the z values |
count | How to determine the number of
particles |
headcolor |
RGB color of the head of the
particle streaks |
tailcolor |
RGB color of the tail of the
particle streaks |
linewidth |
Width in pixels of the streaks. |
antialias |
If set to "true", |
length |
length in timesteps of the
streaks. |
east |
East edge of the bounding box. |
west |
West edge of the bounding box. |
north |
North edge of the bounding box. |
south |
South edge of the bounding box. |
top |
Top of the bounding box. |
bottom |
Bottom of the bounding box. |
headcolor |
RGB color of the head of the
particle streaks starting in the bounding box. |
tailcolor |
RGB color of the tail of the particle streaks starting in the bounding box. |
step |
Determines how many particles to
skip between highlighted ones. |
headcolor | RGB color of the head of the highlighted particle streaks |
tailcolor |
RGB color of the tail of the highlighted particle streaks |
Not yet available
Not yer available
All composite object formats have a similar structure, since they are essentially objects that in some sense "manage" other objects. Elements in this format that act unchanged across composite objects only appear in this section (to reduce clutter and repetition). The structure is as follows:
[Optional Comments] | As normal, anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN ... | See the General file format description for details about the BEGIN keyword. |
N_RECORDS < Posable-Count> | Specifies how many posables are to follow the LOCAL_ORIGIN keyword and be "managed" by this composite object. |
[Header Contents] | Each Data-Type has its own additional keywords. |
[REVERSED_XY] | See the General file format description for details about the REVERSED_XY keyword. |
[PROJECT ... ] | See the General file format description for details about the PROJECT keyword. |
LOCAL_ORIGIN ... | See the General file format description for details about the LOCAL_ORIGIN keyword. |
< Posable*> | The lines following the LOCAL_ORIGIN keyword each contains the address of exactly one posable (which must already be loaded before the composite object is loaded). There should be as many of these lines as specified after N_RECORDS. |
[Data] | Additional data may appear afterward, depending on the composite object. |
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN AVERAGING_OVERVIEW < Version-Number> | Currently, there is only one version (1.0). |
TRACKING {{H | P | R | S | T | X | Y | Z}*} | Specifies which components of the managed posables are to be tracked, in terms of maintaining the average composite value. Each letter is the first letter of the particular component: Heading, Pitch, Roll, Scale, Translation (XYZ), X-position, Y-position, and Z-position. Defaults to all except Roll being tracked (HPST). |
AVERAGE [MEAN | MIN_MAX] | Specifies whether the average position should be calculated as a mean of all managed posables, or as a mean of the min/max extents of these posables. Defaults to MIN_MAX. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The value for the LOCAL_ORIGIN has little meaning, but for the sake of rendering accuracy, should be in the vicinity of where the managed posables are expected to be. |
< Posable*> | The list of managed posables. |
The AveragingOverview format has no data after the list of posables. |
Example
This example creates an AveragingOverview that tracks
the scale and position of two objects. When there are
only two managed posables, there is no difference between
AVERAGE MEAN and AVERAGE MIN_MAX.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN AVERAGING_OVERVIEW < Version-Number> | Currently, there is only one version (1.0). |
SCALE < Scale> | Specifies the width (and contributes to the height) of the rendered rectangle of the boundary. Defaults to 1.0. |
HEIGHT_RATIO < Ratio> | Specifies the height of the rendered rectange of the boundary with respect to the scale. The height is determined by multiplying the scale by this value. Defaults to 0.0 (renders as a line segment). |
YAW < Angle> | Specifies the heading of the normal vector to the boundary, pointing in the "inward" direction. Defaults to 0. |
PITCH < Angle> | Specifies the pitch of the normal vector to the boundary, pointing in the "inward" direction. Defaults to 0. |
ROLL < Angle> | Specifies the roll of the rendered rectangle with respect to the boundary's normal vector. Defaults to 0. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | Specifies the origin of the rendered rectangle. |
< Posable*> | The list of managed posables, for which events will be generated whenever they cross the boundary. |
The Boundary format has no data after the list of posables. |
Example
This example creates a Boundary that faces nearly east,
and is pitched down at 45 degrees. When rendered, the
Boundary has width of 100m and a height of 80m. It
generates a boundaryCrossedOut or boundaryCrossedIn event
whenever the main window crosses the boundary (in on the
east side, out on the west).
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN PROXIMITY_HIGHLIGHTER < Version-Number> | Currently, there is only one version (1.0). |
TRACKING {ON | OFF} | Specifies whether or not the position of the nearest two objects should be tracked (and maintained in the ProximityHighlighter's posable). Defaults to ON. |
THRESHOLD < distance> | Specifies the distance at which the two nearest managed posables should cause the ProximityHighlighter to trigger and event. Triggers an inProximity event when two managed posables are within distance meters of each other, an inCloseProximity event when they are within half that distance, an outOfCloseProximity event when they were previously in close proximity and move out of 0.55 times the distance, and and outOfProximity event when they were in proximity and they move out of 1.1 times the distance. Defaults to 60 meters. |
LOCAL_ORIGIN < UTM-X> < UTM-Y> < Height> | The value for the LOCAL_ORIGIN has little meaning, but for the sake of rendering accuracy, should be in the vicinity of where the managed posables are expected to be. |
< Posable*> | The list of managed posables. |
The ProximityHighlighter format has no data after the list of posables. |
Example
This example creates a ProximityHighlighter that tracks
the scale and position of the nearest of four objects,
triggering events when any two of them are within 20
meters of each other.
textures | Must appear at the very beginning of the file. |
{< Texture-Filename> < Texture-Label>[ < Default-Indicator>]}* | Any number of texture filename-label pairs may be present after the "textures" line. The Texture-Label is the name used to represent the texture loaded in from the file specified by Texture-Filename. Only one texture may have the Default-Indicator present, and there must not be any space between int and the Texture-Label. The Default-Indicator is the star character ("*"). |
objects | Must appear immediately after the last texture filename-name pair, without any intervening lines. |
{< Object-Filename> < Object-Label> < Texture-Label>}* | Any number of object specification triples may be present after the "objects" line. The Object-Label is the name used to represent theobject loaded in from the file specified by Object-Filename. The Texture-Label specifies which texture should be mapped to this object when it is first rendered. If Texture-Label is "default", then the texture marked with the Default-Indicator is assigned. |
end | Marks the end of required information (objects and textures). Must appear immediately after the last object specification triple, without any intervening lines. |
[< Script-Filename>]* | Optional scripts to be run upon completion of loading all textures and objects. If present, the first line must appear immediately after the "end" line. Each script must be on a separate line without any intervening lines between them. |
Example
The following example loads two textures and five objects.
It runs a script called "tube.tcl" after everything has
been loaded.
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN CONVERSION_GRID < Version-Number> | Currently, there is only one version (1.0). |
LAYOUT {LITERAL | ROW_MAJOR | COLUMN_MAJOR} [ INVERTED_ROWS] | Specifies how the height data is layed out. LITERAL indicates that the data are arranged in rows and columns in the file (one row to a line). ROW_MAJOR and COLUMN_MAJOR indicate that the data is listed in row major or column major order, respectively, according to other parameters in the header. If INVERTED_ROWS is specified, then rows are expected to be given in the data from the northwest corner, down, rather than the usual southwest corner, up. |
[COLS_ROWS < Column-Count> < Row-Count>] | Specifies the number of points in each column and row of the grid. COLS_ROWS should not appear if LAYOUT is LITERAL. |
CELLSIZE { IMPLICIT | {{< X-Size> | VARIABLE} {< Y-Size> | VARIABLE} [ PER_RECORD]} | Specifies the distance between grid points in X and Y directions. If IMPLICIT, then X and Y coordinates are expected for every point, always as an (x, y, z) triple. COLS_ROWS must be used and SHAPE must be FULLGRID if the IMPLICIT keyword is used here. If a number is given for X-size or Y-size, it specifies the width or height (respectiviely) of every cell. If VARIABLE is given for a dimension, it means that the individual coordinates will be given for each column and/or row, respectively. If PER_RECORD does not appear, the coordinates for each row and column are expected in sections delimited by the SECTION_DELIMITER. The non-major-ordered coordinates always appear in the data section first (column coordinates for row-major order, for instance) followed by the major-ordered coordinates (rows, for our example). If PER_RECORD appears, the major-ordered coordinates are expected at the beginning of each line record (whether this is a row or a column), and not in a separate section. |
GRID_ORIGIN < X-Origin> < Y-Origin> | The coordinates of the Southwestern corner of the grid. This line is required if any numeric values are given for CELLSIZE. Values given here are ignored if the CELLSIZE for the corresponding dimension is given as VARIABLE. |
[SECTION_DELIMITER < Delimiter>] | Specifies what ends a particular section of data. If no SECITON_DELIMITER is given, "END" is the default. |
[VALID_DATA {LESS_THAN | GREATER_THAN | BETWEEN} < value1> [< value2>]] | Specifies what values constitue valid data (the rest are considered to be missing, or a "hole"). Any data that does not start with a digit or sign will also be considered missing. If VALID_DATA does not appear, all numeric data is considered valid. |
[SHAPE { FULLGRID | PARTIAL }] | Specifies whether the data that follow specify the start and end of a line (PARTIAL) or not (FULLGRID). FULLGRID is the default if no SHAPE is given. SHAPE should not appear if LAYOUT is LITERAL. |
END_HEADER | Specifies end of header. |
< Data> | Specified from South to North and West to East, according to the parameters specified earlier in the header. |
clut1.0 | Must appear at the very beginning of the file. |
{< Value> < Red> < Green> < Blue> < Alpha>}* | Any number of look-up table entries can be present after the "clut1.0" line. The Value is a floating point number, indicating the top of the range to have the specified color. The color is specified as levels of red, green, blue, and alpha; the levels are simple integers between 0 and 255 inclusive. If this Clut is used as a height-mapped texture, the color associated with the topmost value is used for all values above that value as well. For all other applications, values outside the range of the table entries result in a neutral color. |
done | Must appear immediately after the last look-up table entry, without any intervening lines. Indicates the end of Clut information. Anything after this line is ignored. |
Example
The following example specifies 11 different colors
at values spaced 10.0 apart (when used as a height
mapped texture, this would be 10.0 meters apart).
Colors range from blue (-2190) to red (-2000).
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN GRID < Version-Number> | Currently, there is only one version (1.0). |
< Image-Section> | This is the background specification for the grid tile. The format of the Image-Section is found in the first table below. |
< Maingrid-Section> | This is the specification for the topmost level of the grid, which is essentially a border around the grid tile. The format of the Maingrid-Section is found in the second table below. |
{< Subgrid-Section>}* | These are the specifications for the subdivisions within a grid tile. There may be up 10 Subgrid-Sections. The format of the Subgrid-Section is found in the third table below. |
Grid Image-Section Format
< Image-Section> within the Grid file format takes
the following form.
IMAGE | Indicates that general specifications for a background image tile follow. |
WIDTH < pixel-width> | The width (east-west direction) in pixels of one tile. Default = 512 pixels. |
HEIGHT < pixel-height> | The height (north-south direction) in pixels of one tile. Default = 512 pixels. |
COLOR < red> < green> < blue> < alpha> | The tile's background color. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the image background is fully transparent, 1 that it is fully opaque. Default = 0 0 0 0 (transparent black). |
Grid Maingrid-Section Format
< Maingrid-Section> within the Grid file format takes
the following form.
MAINGRID | Indicates that general specifications for the main grid drawn on an image tile follow. |
HSIZE < width> | The horizontal size (east-west direction) in meters of the main grid. Default = 100 m. |
VSIZE < height> | The vertical size (north-south direction) in meters of the main grid. Default = 100 m. |
LINEWIDTH < thickness> | The thickness in pixels of the outline to be drawn around main grid tile. Default = 10 pixels. |
COLOR < red> < green> < blue> < alpha> | The color of the outline to be drawn around main grid tile. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the line is fully transparent, 1 that it is fully opaque. Default = 0.3 0.3 0.9 0.7. |
Grid Subgrid-Section Format
< Subgrid-Section> within the Grid file format takes
the following form.
SUBGRID | Indicates that general specifications for a subgrid drawn on an image tile follow. |
HDIVS < m> | The number of horizontal divisions (east-west direction) across one tile of the main grid. Default = 10 divisions. |
VDIVS < n> | The number of vertical divisions (north-south direction) across one tile of the main grid. Default = 10 divisions. |
LINEWIDTH < thickness> | The thickness in pixels of the lines forming the subgrid. Default = 5 pixels. |
COLOR < red> < green> < blue> < alpha> | The color of the lines forming the subgrid. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the line is fully transparent, 1 that it is fully opaque. Default = 0.2 0.2 0.7 0.7. |
< x cellsize> | The size of a single pixel of the georeferenced image in the east direction. |
0 | Must be zero (used in Arc/INFO to rectify rotation, but not supported in GeoZui3D) |
0 | Must be zero (used in Arc/INFO to rectify rotation, but not supported in GeoZui3D) |
< y cellsize> | The size of a single pixel of the georeferenced image in the north direction. |
< x> | The projected east position in meters (UTM) of the origin of the image to be draped. If this entry is positive, the origin of the image is on its west side. If it is negative the origin of the image is on its east side. |
< y> | The projected north position in meters (UTM) of the origin of the image to be draped. If this entry is positive, the origin of the image is on its south side. If it is negative the origin of the image is on its north side. |
[Optional Comments] | Anything up to the first line beginning with the keyword "BEGIN" is ignored, and is assumed to be a comment. |
BEGIN LATTICE < Version-Number> | Currently, there is only one version (1.0). |
< Image-Section> | This is the background specification for the lattice tile. The format of the Image-Section is found in the first table below. |
{< Lattice-Section>}* | These are the specifications for the various texture elements to be generated within the lattice tile. There may be up to 10 Lattice-Sections. The format of the Lattice-Section is found in the second table below. |
Lattice Image-Section Format
< Image-Section> within the Lattice file format takes
the following form.
IMAGE | Indicates that general specifications for a background image tile follow. |
WIDTH < pixel-width> | The width (east-west direction) in pixels of one tile. Default = 512 pixels. |
HEIGHT < pixel-height> | The height (north-south direction) in pixels of one tile. Default = 512 pixels. |
HSIZE < width> | The horizontal size (east-west direction) in meters of a single tile. Default = 100 m. |
VSIZE < height> | The vertical size (north-south direction) in meters of a single tile. Default = 100 m. |
COLOR < red> < green> < blue> < alpha> | The tile's background color. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the image background is fully transparent, 1 that it is fully opaque. Default = 0 0 0 0 (transparent black). |
FILTER [NOFILTER | [GAUSS | BOX] <w> ] | Keyword NOFILTER indicates that no filtering is to be done, GAUSS that a gaussian filter is to be applied, and BOX that a box filter is to be applied. The filter kernel is of width w. Default = NOFILTER. |
Lattice Lattice-Section Format
< Lattice-Section> within the Lattice file format takes
the following form.
LATTICE | Indicates that general specifications for a lattice drawn on an image tile follow. |
ROWS < m> | The number of lattice rows across one tile of the main grid. Default = 10 rows. |
COLS < n> | The number of lattice columns across one tile of the main grid. Default = 10 columns. |
PROBABILITY < p> | The probability that an individual lattice element will be drawn when the texture tile is created. p ranges between 0.0 and 1.0, where 0.0 = never drawn, 1.0 = always drawn. Default = 1.0 |
HJITTER [CONSTANT <offset>| [NORMAL | UNIFORM] <offset> <range> ] | Horizontal (east-west) offset and jitter. Keyword CONSTANT indicates that no horizontal jitter is to be applied, NORMAL that a normally distributed jitter is to be applied, and UNIFORM that a uniformly distributed jitter is to be applied. The offset determines a fixed horizontal offset of the point from the lattice point. The range parameter indicates one standard deviation for a NORMAL distribution and indicates the maximum magnitude deviation for a UNIFORM distribution. All distances are specified in meters. Default = CONSTANT 0 |
VJITTER [CONSTANT <offset>| [NORMAL | UNIFORM] <offset> <range> ] | Vertical (north-south) offset and jitter. Keywords and paramters are the same as for HJITTER. Default = CONSTANT 0 |
RJITTER [CONSTANT <offset>| [NORMAL | UNIFORM] <offset> <range> ] | Rotational offset and jitter. Keyword CONSTANT indicates that no rotational jitter is to be applied, NORMAL that a normally distributed jitter is to be applied, and UNIFORM that a uniformly distributed jitter is to be applied. The offset determines a fixed rotational offset. The range parameter indicates one standard deviation for a NORMAL distribution and indicates the maximum magnitude deviation for a UNIFORM distribution. All angles are specified in degrees. Default = CONSTANT 0 |
STYLE [DOT <diameter>| [LINE | GABOR] <angle> <length> <thickness>] | The style of the patterning element to be drawn at the lattice points. Keyword DOT signifies a filled circle with the indicated diameter. LINE signifies a straight line drawn at the indicated angle, and with the specified length and thickness. GABOR signifies a gabor function drawn with its main axis at the indicated angle, and with the specified length determining wavelength and thickness determining the ratio of gaussian size to wavelength. Default = DOT 0.1 |
COLOR < red> < green> < blue> < alpha> | The color to be used when drawing the patterning element. Color components are specified as decimal fractions between 0 and 1. An alpha value of 0 indicates that the element is fully transparent, 1 that it is fully opaque. Default = 0.2 0.2 0.7 0.7. |