[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Some object types (LIST
, INST
) allow references to other
OOGL objects, which may appear literally in the data stream, be loaded
from named disk files, or be communicated from elsewhere via named
objects. Gcl commands also accept geometry in these forms.
The general syntax is
<oogl-object> ::= [ "{" ] [ "define" |
where "quoted" items are literal strings (which appear without the quotes), [bracketed] items are optional, and | denotes alternatives. Curly braces, when present, must match; the outermost set of curly braces is generally required when the object is in a larger context, e.g. when it is part of a larger object or embedded in a Geomview command stream.
For example, each of the following three lines:
{ define fred QUAD 1 0 0 0 0 1 0 1 0 1 0 0 } { appearance { +edge } LIST { < "file1" } { : fred } } VECT 1 2 0 2 0 0 0 0 1 1 2 |
The "<" construct causes a disk file to be read. Note that this isn't a general textual "include" mechanism; a complete OOGL object must appear in the referenced file.
Files read using "<" are sought first in the directory of the file which
referred to them, if any; failing that, the normal search path (set by
Geomview's load-path
command) is used. The default search looks
first in the current directory, then in the Geomview data directories.
The ":" construct allows references to symbols, created with
define
. A symbol's initial value is a null object. When a
symbol is (re)defined, all references to it are automatically changed;
this is a crucial part of the support for interprocess communication.
Some future version of the documentation should explain this better...
Again, white space and line breaks are insignificant, and "#" comments may appear anywhere.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |