home *** CD-ROM | disk | FTP | other *** search
-
-
-
- geomview(5) geomview(5)
-
-
- NAME
- geomview - geomview command language, version 1.4.1
-
- DESCRIPTION
- The Geomview language has the syntax of lisp -- i.e. an
- expression of the form (f a b ...) means pass the values
- of a, b, ... to the function f. The present version of
- the language is very limited; it is simply a "one-pass"
- command language, rather than a programming language, but
- this may change in future versions.
-
- This is the language that geomview understands for files
- that it loads as well as for communication with other pro-
- grams. If you want to execute a command in the language
- interactively, you can bring up the "Command" panel which
- lets you type in a command; geomview executes the command
- when you hit the return key. Output from such commands is
- printed to standard output. Alternately, you can invoke
- geomview as "geomview -c -" which causes it to read com-
- mands from standard input.
-
- In the descriptions of the commands below several refer-
- ences are made to "OOGL" formats. OOGL is the data
- description language that geomview uses for describing
- geometry, cameras, appearances, and other basic objects.
- It is described in the "OOGL File Formats" chapter of the
- manual. This chapter is essentially the same thing as the
- oogl(5) manual page, distributed with geomview in the file
- man/cat5/oogl.5.
-
- The geomview language command and argument types are
- listed below. You can see this list while running
- geomview by executing the command "(? *)".
-
-
- ! < = >
- ? ?? APPEARANCE CAM-ID
- CAMERA GEOM-ID GEOMETRY ID
- ND-axes ND-color ND-xform NeXT
- STATEMENT TRANSFORM all ap-override
- backcolor bbox-color bbox-draw camera
- camera-draw camera-prop camera-reset car
- cdr clock command copy
- cull-backface cursor cursor-still cursor-twitch
- delete dice dimension draw
- echo emodule-clear emodule-define emodule-defined
- emodule-isrunning emodule-path emodule-run emodule-sort
- emodule-start emodule-transmit escale event-mode
- evert exit ezoom freeze
- geometry geomview-version hdefine help
- hmodel hsphere-draw if inhibit-warning
- interest lines-closer load load-path
- look look-encompass look-encompass-size look-recenter
- look-toward merge merge-ap merge-base-ap
-
-
-
- Geometry Center October 29, 1993 1
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- merge-baseap morehelp name-object new-alien
- new-camera new-center new-geometry new-reset
- normalization pick pickable position
- position-at position-toward progn quit
- quote rawevent rawpick read
- real-id redraw regtable rehash-emodule-path
- replace-geometry rib-display rib-snapshot scale
- scene set-clock set-conformal-refine set-emodule-path
- set-load-path set-motionscale setenv sgi
- shell sleep-for sleep-until snapshot
- soft-shader space stereowin time-interests
- transform transform-incr transform-set ui-center
- ui-emotion-program ui-emotion-run ui-panel ui-target
- uninterest update update-draw window
- winenter write write-sexpr xform
- xform-incr xform-set zoom |
-
-
- ! is a synonym for "shell"
- (< EXPR1 EXPR2)
- Returns t if EXPR1 is less than EXPR2. EXPR1 and EXPR2 should
- be either both integers or floats, or both strings.
- (= EXPR1 EXPR2)
- Returns t if EXPR1 is equal to EXPR2. EXPR1 and EXPR2 should
- be either both integers or floats, or both strings.
- (> EXPR1 EXPR2)
- Returns t if EXPR1 is greater than EXPR2. EXPR1 and EXPR2 should
- be either both integers or floats, or both strings.
- (? [command])
- Command may include "*"s as wildcards; see also "??"
- One-line command help; lists names only if multiple commands match.
- ? is a synonym for "help"
- (?? command) "command" may include "*" wildcards
- Prints more info than "(? command)". ?? is a synonym
- for "morehelp"
- APPEARANCE is an OOGL appearance specification.
- CAM-ID is an ID that refers to a camera.
- CAMERA is an OOGL camera specification.
- GEOM-ID is an ID that refers to a geometry.
- GEOMETRY is an OOGL geometry specification.
- ID is a string which names a geometry or camera. Besides
- those you create, valid ones are:
-
- World, world,
- worldgeom, g0: the collection of all geom's
- target: selected target object (cam or geom)
- center: selected center-of-motion object
- targetcam: last selected target camera
- targetgeom: last selected target geom
- focus: camera where cursor is (or most
- recently was)
- allgeoms: all geom objects
- allcams: all cameras
- default, defaultcam: prototype; future cameras inherit
-
-
-
- Geometry Center October 29, 1993 2
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- default's settings
-
- The following IDs are used to name coordinate systems,
- e.g. in "pick" and "write" commands:
-
- world, World, etc.: the world, within which all other
- geoms live.
- universe: the universe, in which the World, lights
- and cameras live. Cameras' world2cam
- transforms might better be called
- universe2cam, etc.
- self: "this geomview object". Transform from
- an object to "self" is the identity;
- writing its geometry gives the object
- itself with no enclosing transform;
- picked points appear in the object's
- coordinates.
- primitive: (for "pick" only) Picked points appear in
- the coordinate system of the
- lowest-level OOGL primitive.
-
- A name is also an acceptable id. Given names are made unique
- by appending numbers if necessary (i.e. "foo<2>"). Every geom
- is also named g[n] and every camera is also named c[n] ("g0"
- is always the worldgeom): this name is used as a prefix to
- keyboard commands and can also be used as a command language
- id. Numbers are reused after an object is deleted. Both names
- are shown in the Object browser.
- (ND-axes CAMID [CLUSTERNAME [Xindex Yindex Zindex]])
- Sets or reads the set of axes in the space of the N-dimensional virtual
- camera CLUSTERNAME which determine the 3-D subspace seen by camera CAMID.
- Axes are specified by their indices, from 0 to N-1 for an N-dimensional
- space.
- (ND-color CAM-ID [ (((x0 x1 x2 ... xn) v r g b a v r g b a ... )
- ((x0 ... xn) v r g b a v r g b a ...) ...)] )
- (ND-xform OBJID [ntransform { idim odim ... }])
- Sets or returns the N-D transform of the given object.
-
- (NeXT)
- Returns t if running on a NeXT, nil if not
- STATEMENT represents a function call. Function calls have
- the form "( func arg1 arg2 ... )", where func is the name
- of the function and arg1, arg2, ... are the arguments.
- TRANSFORM is an OOGL 4x4 transformation matrix.
- (all geometry) returns a list of names of all geometry objects.
- (all camera) returns a list of names of all cameras.
- (all emodule defined) returns a list of all defined external modules.
- (all emodule running) returns a list of all running external modules.
- Use e.g. ``(echo (all geometry))'' to print such a list.
- (ap-override [on|off])
- Selects whether appearance controls should override objects' own
- settings. On by default. With no arguments, returns current setting.
- (backcolor CAM-ID R G B)
- Set the background color of CAM-ID; R G B are numbers
-
-
-
- Geometry Center October 29, 1993 3
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- between 0 and 1.
- (bbox-color GEOM-ID R G B)
- Set the bounding-box color of GEOM-ID; R G B are numbers
- between 0 and 1.
- (bbox-draw GEOM-ID [yes|no])
- Say whether GEOM-ID's bounding-box should be drawn; "yes" if omitted.
- (camera CAM-ID [CAMERA])
- Specify data for CAM-ID; CAMERA is a string giving an OOGL
- camera specification. If no camera CAM-ID exists,
- it is created; in this case, the second argument is optional,
- and if omitted, a default camera is used. See also: new-camera.
- (camera-draw CAM-ID [yes|no])
- Say whether or not cameras should be drawn in CAM-ID; "yes" if omitted.
- (camera-prop { geometry object } [projective])
- Specify the object to be shown when drawing other cameras.
- By default, this object is drawn with its origin at the camera,
- and with the camera looking toward the object's -Z axis.
- With the "projective" keyword, the camera's viewing projection is
- also applied to the object; this places the object's Z=-1 and Z=+1 at
- near and far clipping planes, with the viewing area -1<={X,Y}<=+1.
- Example: (camera-prop { < cube } projective)
- (camera-reset CAM-ID)
- Reset CAM-ID to its default value.
- (car LIST)
- returns the first element of LIST.
- (cdr LIST)
- returns the list obtained by removing the first element of LIST.
- (clock)
- Returns the current time, in seconds, as shown by this stream's clock.
- See also set-clock and sleep-until.
- (command INFILE [OUTFILE])
- Read commands from INFILE; send corresponding responses
- (e.g. anything written to filename "-") to OUTFILE, stdout
- by default.
- (copy [ID] [name])
- Copies an object or camera. If ID is not specified, it
- is assumed to be targetgeom. If name is not specified, it
- is assumed to be the same as the name of ID.
- (cull-backface [on|off])
- Select whether back-facing polygons should be displayed.
- Initially on: all polygons are displayed. When off, polygons whose
- vertices are arranged clockwise on the screen are hidden. Useful for
- simulating two-sided surface coloring.
- (cursor CAM-ID {on|off} [pbmfile xorigin yorigin])
- Turns the given window's graphics cursor on or off.
- Optionally sets the 16x16 pixel cursor glyph from the given file,
- which must be in binary (P4) PBM format. Can only be applied to
- actual windows, not e.g. "allcams" or "default". Sorry.
- (cursor-still [INT])
- Sets the number of microseconds for which the cursor must not
- move to register as holding still. If INT is not specified,
- the value will be reset to the default.
- (cursor-twitch [INT])
- Sets the distance which the cursor must not move (in x or
-
-
-
- Geometry Center October 29, 1993 4
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- y) to register as holding still. If INT is not specified,
- the value will be reset to the default.
- (delete ID)
- Delete object or camera ID.
- (dice GEOM-ID N)
- Dice any Bezier patches within GEOM-ID into NxN meshes; default 10.
- (dimension [N])
- Sets or reads the space dimension for N-dimensional viewing.
- (Since calculations are done using homogeneous coordinates,
- this means matrices are (N+1)x(N+1).)
- With no arguments, returns the current dimension, or 0 if
- N-dimensional viewing has not been enabled.
- (draw CAM-ID)
- Draw the view in CAM-ID, if it needs redrawing. See also "redraw".
- (echo ...)
- Write the given data to the special file "-". Strings are written
- literally; lisp expressions are evaluated and their values written.
- If received from an external program, "echo" sends to the program's
- input. Otherwise writes to geomview's own standard output
- (typically the terminal).
- (emodule-clear)
- Clears the geomview application (external module) browser.
- (emodule-define NAME SHELL-COMMAND ...)
- Define an external module called NAME, which then appears in the
- external-module browser. The SHELL-COMMAND string
- is a UNIX shell command which invokes the module.
- See emodule-run for discussion of external modules.
- (emodule-defined "modulename")
- If the given external-module name is known, returns the name of
- the program invoked when it's run as a quoted string; otherwise
- returns nil. ``(echo (emodule-defined "name"))'' prints the string.
- (emodule-isrunning NAME)
- Returns Lt if the emodule NAME is running, or Lnil
- if it is not running. NAME is searched for in the
- names as they appear in the browser and in the shell commands
- used to execute the external modules (not including arguements).
- (emodule-path)
- Returns the current search path for external modules.
- Note: to actually see the value returned by this function
- you should wrap it in a call to echo: (echo (emodule-path)).
- See also set-emodule-path.
- (emodule-run SHELL-COMMAND ARGS...)
- Runs the given SHELL-COMMAND (a string containing a UNIX shell
- command) as an external module. The module's standard output
- is taken as geomview commands; responses (written to filename
- "-") are sent to the module's standard input. The shell
- command is interpreted by /bin/sh, so e.g. I/O redirection may
- be used; a program which prompts the user for input from the
- terminal could be run with:
- (emodule-run yourprogram <&2)
- If not already set, the environment variable $MACHTYPE is set
- to the name of the machine type. Input and output
- connections to geomview are dropped when the shell command
- terminates. Clicking on a running program's module-browser entry
-
-
-
- Geometry Center October 29, 1993 5
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- sends the signal SIGHUP to the program. For this to work, programs
- should avoid running in the background; those using FORMS or GL
- should call foreground() before the first FORMS or winopen() call.
- See also emodule-define, emodule-start.
- (emodule-sort)
- Sorts the modules in the application browser alphabetically.
- (emodule-start NAME)
- Starts the external module NAME, defined by emodule-define.
- Equivalent to clicking on the corresponding module-browser entry.
- (emodule-transmit NAME LIST)
- Places LIST into external module NAME's standard input. NAME is
- searched for in the names of the modules as they appear in the
- External Modules browser and then in the shell commands used to
- execute the external modules. Does nothing if modname is not
- running.
- (escale GEOM-ID FACTOR)
- Same as scale but multiplies by exp(scale). Obsolete.
- (event-mode MODESTRING)
- Set the mouse event (motion) mode; MODESTRING should be one of
- the strings that appears in the motion mode browser (including
- the keyboard shortcut, e.g. "[r] Rotate").
- (evert GEOM-ID [yes|no])
- Set the normal eversion state of GEOM-ID. If the second argument
- is omitted, toggle the eversion state.
- (exit)
- Terminates geomview.
- (ezoom GEOM-ID FACTOR)
- Same as zoom but multiplies by exp(zoom). Obsolete.
- (freeze CAM-ID)
- Freeze CAM-ID; drawing in this camera's window is turned off
- until it is explicitly redrawn with "(redraw CAM-ID)", after
- which time drawing resumes as normal.
- (geometry GEOM-ID [GEOMETRY])
- Specify the geometry for GEOM-ID. GEOMETRY is a string
- giving an OOGL geometry specification. If no object
- called GEOM-ID exists, it is created; in this case the
- GEOMETRY argument is optional, and if omitted, the new
- object GEOM-ID is given an empty geometry.
- (geomview-version)
- Returns a string representing the version of geomview that is
- running.
- (hdefine "geometry"|"camera"|"transform"|"window" name value)
- Sets the value of a handle of a given type.
- (hdefine <type> <name> <value>) is generally equivalent to
- (read <type> { define <name> <value> })
- except that the assignment is done when hdefine is executed,
- (possibly not at all if inside a conditional statement),
- while the ``read ... define'' performs assignment as soon as the
- text is read.
-
- (help [command])
- Command may include "*"s as wildcards; see also "??"
- One-line command help; lists names only if multiple commands match.
- (hmodel CAMID {virtual|projective|conformal})
-
-
-
- Geometry Center October 29, 1993 6
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- Set the model used to display geometry in
- this camera; see also "space".
- (hsphere-draw CAMID [yes|no])
- Say whether to draw the sphere at infinity in hyperbolic space.
- If the second argument is omitted, "yes" is assumed.
- (if TEST EXPR1 [EXPR2])
- Evaluates TEST; if TEST returns a non-nil value, returns the
- value of EXPR1. If TEST returns nil, returns the value of
- EXPR2 if EXPR2 is present, otherwise returns nil.
- (inhibit-warning STRING)
- Inhibit warning inhbits geomview from displaying a
- particular warning message determined by STRING.
- At present there are no warning messages that this
- applies to, so this command is rather useless.
- (interest (COMMAND [args]))
-
- Allows you to express interest in a command. When geomview
- executes that command in the future it will echo it to the
- communication pool from which the interest command came.
- COMMAND can be any command. Args specify restrictions on the
- values of the arguments; if args are present in the interest
- command, geomview will only echo calls to the command in which
- the arguments match those given in the interest command. Two
- special argument values may appear in the argument list. "*"
- matches any value. "nil" matches any value but supresses the
- reporting of that value; its value is reported as "nil".
-
- The purpose of the interest command is to allow external
- modules to find out about things happening inside geomview.
- For example, a module interested in knowing when a geom called
- "foo" is deleted could say "(interest (delete foo))" and would
- receive the string "(delete foo)" when foo is deleted.
-
- Picking is a special case of this. For most modules
- interested in pick events the command "(interest (pick
- world))" is sufficient. This causes geomview to send a string
- of the form "(pick world ...)" every time a pick event (right
- mouse double click). See the "pick" command for details.
- (lines-closer CAM-ID DIST)
- Draw lines (including edges) closer to the camera than polygons
- by DIST / 10^5 of the Z-buffer range. DIST = 3.0 by default.
- If DIST is too small, a line lying on a surface may be
- dotted or invisible, depending on the viewpoint.
- If DIST is too large, lines may appear in front of surfaces
- that they actually lie behind. Good values for DIST vary with
- the scene, viewpoint, and distance between near and far clipping
- planes. This feature is a kludge, but can be helpful.
- (load filename [command|geometry|camera)
- Loads the given file into geomview. The optional second argument
- specifies the type of data it contains, which may be "command"
- (geomview commands), "geometry" (OOGL geometric data), or
- "camera" (OOGL camera definition). If omitted, attempts to guess
- about the file's contents.
- Loading geometric data creates a new visible object; loading a camera
-
-
-
- Geometry Center October 29, 1993 7
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- opens a new window; loading a command file executes those commands.
-
- (load-path)
- Returns the current search path for command, geometry, etc. files.
- Note: to actually see the value returned by this function
- you should wrap it in a call to echo: (echo (load-path)).
- See also set-load-path.
- (look [objectID] [cameraID])
- Rotates the named camera to point toward the center of the
- bounding box of the named object (or the origin in hyperbolic or
- spherical space). In Euclidean space, moves the camera
- forward or backward until the object appears as large
- as possible while still being entirely visible. Equivalent to
- progn (
- (look-toward [objectID] [cameraID] {center | origin})
- [(look-encompass [objectID] [cameraID])]
- )
- If objectID is not specified, it is assumed to be World. If
- cameraID is not specified, it is assumed to be targetcam.
- (look-encompass [objectID] [cameraID])
- Moves cameraID backwards or forwards until its field of view
- surrounds objectID. This routine works only in Euclidean space.
- If objectID is not specified, it is assumed to be the world.
- If cameraID is not specified, it is assumed to be the targetcam.
- See also (look-encompass-size).
- (look-encompass-size [view-fraction clip-ratio near-margin far-margin])
- Sets/returns parameters used by (look-encompass).
- view-fraction is the portion of the camera window filled by the object,
- clip-ratio is the max allowed ratio of near-to-far clipping planes.
- The near clipping plane is 1/near-margin times closer than the near
- edge of the object, and the far clipping plane is far-margin times
- further away. Returns the list of current values.
- Defaults: .75 100 0.1 4.0
-
- (look-recenter [objectID] [cameraID])
- Translates and rotates the camera so that it is looking in the
- -z direction (in objectID's coordinate system) at the center of
- objectID's bounding box (or the origin of the coordinate system
- in non-Eudlidean space). In Euclidean space, the camera is also
- moved as close as possible to the object while allowing the
- entire object to be visible. Also makes sure that the y-axes of
- objectID and cameraID are parallel.
- (look-toward [objectID] [cameraID] [origin | center])
- Rotates the named camera to point toward the origin of the
- object's coordinate system, or the center of the object's
- bounding box (in non-Euclidean space, the origin will be used
- automatically). Default objectID is the world, default camera
- is targetcam, default location to point towards is the center
- of the bounding box.
- (merge {window|camera} CAM-ID { WINDOW or CAMERA ... } )
- Modify the given window or camera, changing just those properties
- specified in the last argument. E.g.
- (merge camera "Camera" { far 20 })
- sets Camera's far clipping plane to 20 while leaving
-
-
-
- Geometry Center October 29, 1993 8
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- other attributes untouched.
- (merge-ap GEOM-ID APPEARANCE)
- Merge in some appearance characteristics to GEOM-ID.
- Appearance parameters include surface and line color, shading
- style, line width, and lighting.
- merge-base-ap is a synonym for merge-baseap.
- (merge-baseap APPEARANCE)
- Merge in some appearance characteristics to the base default
- appearance (applied to every geom before its own apperance).
- Lighting is typically included in the base appearance.
- (morehelp command) "command" may include "*" wildcards
- Prints more info than "(help command)"
- (name-object ID NAME)
- Assign a new NAME (a string) to ID. A number is appended if
- that name is in use (for example, "foo" -> "foo<2>"). The new
- name, possibly with number appended, may be used as object's
- id thereafter.
- (new-alien name [GEOMETRY])
- Create a new alien (geom not in the world) with the given name
- (a string). GEOMETRY is a string giving an OOGL geometry
- specification. If GEOMETRY is omitted, the new alien
- is given an empty geometry. If an object with that name
- already exists, the new alien is given a unique name. The
- light beams that are used to move around the lights are an
- example of aliens. They're drawn but are not controllable the
- way ordinary objects are: they don't appear in the object
- browser and the user can't move them with the normal motion
- modes.
- (new-camera name [CAMERA])
- Create a new camera with the given name (a string). If a
- camera with that name already exists, the new object is given
- a unique name. If CAMERA is omitted a default camera is used.
- (new-center [id])
- Stop id, then set id's transform to the identity. Default id
- is target. Also, if the id is a camera, calls
- (look-recenter World id). The main function of the call to
- (look-recenter) is to place the camera so that it is pointing
- parallel to the z axis toward the center of the world.
- (new-geometry name [GEOMETRY])
- Create a new geom with the given name (a string). GEOMETRY is
- a string giving an OOGL geometry specification. If
- GEOMETRY is omitted, the new object is given an empty geometry.
- If an object with that name already exists, the new object is
- given a unique name.
- (new-reset)
- Equivalent to (progn (new-center ALLGEOMS)(new-center ALLCAMS))
- (normalization GEOM-ID {each|none|all|keep})
- Set the normalization status of GEOM-ID.
- "none" suppresses all normalization.
- "each" normalizes the object's bounding box to fit into the unit
- sphere, with the center of its bounding box translated
- to the origin. The box is scaled such that its long diagonal,
- sqrt((xmax-xmin)^2 + (ymax-ymin)^2 + (zmax-zmin)^2), is 2.
- "all" resembles "each", except when an object is changing
-
-
-
- Geometry Center October 29, 1993 9
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- (e.g. when its geometry is being changed by an external program).
-
- Then, "each" tightly fits the bounding box around the
- object whenever it changes and normalizes accordingly,
- while "all" normalizes the union of all variants of the object
- and normalizes accordingly.
-
- "keep" leaves the current normalization transform unchanged
- when the object changes. It may be useful to apply "each" or
- "all" normalization apply to the first version of a changing
- object to bring it in view, then switch to "keep"
- (pick COORDSYS GEOMID G V E F P VI EI FI)
- The pick command is executed internally in response to pick
- events (right mouse double click).
-
- COORDSYS = coordinate system in which coordinates of the following
- arguments are specified. This can be:
- world: world coord sys
- self: coord sys of the picked geom (GEOMID)
- primitive: coord sys of the actual primitive within
- the picked geom where the pick occurred.
- GEOMID = id of picked geom
- G = picked point (actual intersection of pick ray with object)
- V = picked vertex, if any
- E = picked edge, if any
- F = picked face
- P = path to picked primitive [0 or more]
- VI = index of picked vertex in primitive
- EI = list of indices of endpoints of picked edge, if any
- FI = index of picked face
-
- External modules can find out about pick events by registering
- interest in calls to "pick" via the "interest" command.
- (pickable GEOM-ID {yes|no})
- Say whether or not GEOM-ID is included in the pool of objects
- that could be returned from the pick command.
- (position objectID otherID)
- Set the transform of objectID to that of otherID.
- (position-at objectID otherID [center | origin])
- Translate objectID to the center of the bounding box or the
- origin of the coordinate system of otherID (parallel translation).
- Default is center.
- (position-toward objectID otherID [center | origin])
- Rotate objectID so that the center of the bounding box
- or the origin of the coordinate system of the otherID
- lies on the positive z-axis of the first object. Default is
- the center of the bounding box.
- (progn STATEMENT [ ... ])
- evaluates each STATEMENT in order and returns the value of the
- last one. Use progn to group a collection of commands together,
- forcing them to be treated as a single command.
- quit is a synonym for "exit"
- (quote EXPR)
- returns the symbolic lisp expression EXPR without evaluating it.
-
-
-
- Geometry Center October 29, 1993 10
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- (rawevent dev val x y t)
- Enter the specified raw event into the event queue. The
- arguments directly specify the members of the event structure
- used internally by geomview. This is the lowest level event
- handler and is not intended for general use.
- (rawpick CAMID X Y)
- Process a pick event in camera CAMID at location (X,Y) given in
- integer pixel coordinates. This is a low-level procedure not
- intended for external use.
- (read {geometry|camera|transform|command} {GEOMETRY or CAMERA or ...})
- Read and interpret the text in ... as containing the
- given type of data. Useful for defining objects using OOGL
- reference syntax, e.g.
-
- (geometry thing { INST transform : T geom : fred })
- (read geometry { define fred QUAD 1 0 0 0 1 0 0 0 1 1 0 0 })
- (read transform { define T <myfile})
- (real-id ID)
- Returns a string canonically identifying the given ID,
- or "nil" if the object does not exist. Examples:
- (if (real-id fred) (delete fred))
- deletes "fred" if it exists but reports no error if it doesn't, and
- (if (= (real-id targetgeom) (real-id World)) () (delete targetgeom))
- deletes "targetgeom" if it is different from the World.
-
- (redraw CAM-ID)
- States that the view in CAM-ID should be redrawn on the
- next pass through the main loop or the next invocation of "draw".
- (regtable) --- shows the registry table
- (rehash-emodule-path)
- Rebuilds the application (external module) browser by reading
- all .geomview-* files in all directories on the emodule-path.
- Primarily intended for internal use; any applications defined
- by (emodule-define ...) commands outside of the .geomview-*
- files on the emodule-path will be lost. Does not sort the
- entries in the brower; see (emodule-sort) for that.
- (replace-geometry GEOM-ID PART-SPECIFICATION GEOMETRY)
- Replace a part of the geometry for GEOM-ID.
- (rib-display [frame|tiff] FILEPREFIX)
- Set Renderman display to framebuffer (popup screen window) or a
- TIFF format disk file. FILEPREFIX is used to construct
- names of the form "prefixNNNN.suffix". (i.e. foo0000.rib)
- The number is incremented on every call to "rib-snapshot" and
- reset to 0000 when "rib-display" is called. TIFF files are given
- the same prefix and number as the RIB file (i.e. foo0004.rib
- generates foo0004.tiff). The default FILEPREFIX is "geom" and
- the default format is TIFF. (Note that geomview just generates a
- RIB file, which must then be rendered.)
- (rib-snapshot CAM-ID [filename])
- Write Renderman snapshot (in RIB format) of CAM-ID to <filename>.
- If no filename specified, see "rib-display" for explanation of
- the filename used.
- (scale GEOM-ID FACTOR [FACTORY FACTORZ])
- Scale GEOM-ID, multiplying its size by FACTOR. The factors
-
-
-
- Geometry Center October 29, 1993 11
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- should be positive numbers. If FACTORY and FACTORZ are
- present and non-zero, the object is scaled by FACTOR in x, by
- FACTORY in y, and by FACTORZ in z. If only FACTOR is present,
- the object is scaled by FACTOR in x, y, and z. Scaling only
- really makes sense in Euclidean space. Mouse-driven scaling in
- other spaces is not allowed; the scale command may be issued
- in other spaces but should be used with caution because it may
- cause the data to extend beyond the limits of the space.
- (scene CAM-ID [GEOMETRY])
- Make CAM-ID look at GEOMETRY instead of at the universe.
- (set-clock TIME)
- Adjusts the clock for this command stream to read TIME (in seconds)
- as of the moment the command is received. See also sleep-until, clock.
- (set-conformal-refine CMX [N [SHOWEDGES]])
- Sets the parameters for the refinement algorithm used in drawing
- in the conformal model. CMX is the cosine of the maximum angle
- an edge can bend before it is refined. Its value should be between
- -1 and 1; the default is 0.95; decreasing its value will cause less
- refinement. N is the maximum number of iterations of refining;
- the default is 6. SHOWEDGES, which should be "no" or "yes",
- determines whether interior edges in the refinement are drawn.
- (set-emodule-path (PATH1 ... PATHN))
- Sets the search path for external modules. The PATHi should
- be pathnames of directories containing, for each module, the
- module's executable file and a .geomview-<modulename> file
- which contains an (emodule-define ...) command for that
- module. This command implicitly calls (rehash-emodule-path)
- to rebuild the application brower from the new path setting.
- (set-load-path (PATH1 ... PATHN))
- Sets search path for command, geometry, etc. files. The PATHi
- are strings giving the pathnames of directories
- to be searched.
- (set-motionscale X)
- Set the motion scale factor to X (default value 0.5). These
- commands scale their motion by an amount which depends on the
- distance from the frame to the center and on the size of the
- frame. Specifically, they scale by
- dist + scaleof(frame) * motionscale
- where dist is the distance from the center to the frame and
- motionscale is the motion scale factor set by this function.
- Scaleof(frame) measures the size of the frame object.
- (setenv name string) sets the environment variable ``name'' to the value
- ``string''; the name is visible to geomview (as in pathnames containing $name)
- and to processes it creates, e.g. external modules.
- (sgi)
- Returns t if running on an sgi machine, nil if not
- (shell SHELL-COMMAND)
- Execute the given UNIX SHELL-COMMAND using /bin/sh. Geomview
- waits for it to complete and will be unresponsive until it does.
- (sleep_for TIME)
- Suspend reading commands from this stream for TIME seconds.
- Commands already read will still be executed; ``sleep-for'' inside
- ``progn'' won't delay execution of the rest of the progn's contents.
- (sleep-until TIME)
-
-
-
- Geometry Center October 29, 1993 12
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- Suspend reading commands from this stream until TIME (in seconds).
- Commands already read will still be executed; ``sleep-until'' inside
- ``progn'' won't delay execution of the rest of the progn's contents.
- Time is measured according to this stream's clock, as set by
- ``set-clock''; if never set, the first sleep-until sets it to 0
- (so initially (sleep-until TIME) is the same as (sleep-for TIME)).
- Returns the number of seconds until TIME.
- (snapshot CAM-ID FILENAME)
- Save a snapshot of CAM-ID in IRIS rgb image format in file FILENAME
- (a string). The window is popped above all other windows and
- redrawn before taking the snapshot.
- (soft-shader CAM-ID {on|off|toggle})
- Select whether to use software or hardware shading in that camera.
- (space {euclidean|hyperbolic|spherical})
- Set the space associated with the world.
- (stereowin CAM-ID [no|horizontal|vertical|colored] [gapsize])
- Configure CAM-ID as a stereo window.
- no: entire window is a single pane, stereo disabled
- horizontal: split left/right: left is stereo eye#0, right is #1.
- vertical: split top/bottom: bottom is eye#0, top is #1.
- colored: panes overlap, red is stereo eye#0, cyan is #1.
- A gap of "gapsize" pixels is left between subwindows;
- if omitted, subwindows are adjacent.
- If both layout and gapsize are omitted, e.g. (stereowin CAM-ID),
- returns current settings as a ``(stereowin ...)'' command list.
- This command doesn't set stereo projection; use ``merge camera'' or
- ``camera'' to set the stereyes transforms, and ``merge window'' or
- ``window'' to set the pixel aspect ratio & window position if needed.
- (time-interests deltatime initial prefix [suffix])
- Indicates that all interest-related messages, when separated by at
- least "deltatime" seconds of real time, should be preceded by
- the string ``prefix'' and followed by ``suffix''; the first message
- is preceded by ``initial''. All three are printf format strings,
- whose argument is the current clock time (in seconds) on that stream.
- A "deltatime" of zero timestamps every message. Typical usage:
- (time-interests .1 "(set-clock %g)" "(sleep-until %g)") or
- (time-interests .1 "(set-clock %g)"
- "(sleep-until %g) (progn (set-clock %g)" ")") or
- (time-interests .1 "(set-clock %g)"
- "(if (> 0 (sleep-until %g)) (" "))".
- (transform objectID centerID frameID [rotate|translate|translate-scaled] x y z)
- Apply a motion (rotation or translation) to object "objectID"; that
- is, construct and concatenate a transformation matrix with
- objectID's transform The 3 IDs involved are the object
- that moves, the center of motion, and the frame of reference
- in which to apply the motion. The center is easiest understood
- for rotations: if centerID is the same as objectID then it will
- spin around its own axes; otherwise the moving object will orbit
- the center object. Normally frameID, in whose coordinate system
- the (mouse) motions are interpreted, is "focus", the current camera.
- Translations can be scaled proportional to the
- distance between the target and the center. Support for
- spherical and hyperbolic as well as Euclidean space is
- built-in: use the "space" command to change spaces. With type
-
-
-
- Geometry Center October 29, 1993 13
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- "rotate" x, y, and z are floats specifying angles in radians.
- For types "translate" and "translate-scaled" x, y, and z are
- floats specifying distances in the coordinate system of the
- center object.
- (transform-incr objectID centerID frameID [rotate|translate|translate-scaled] x y z [dt])
- Apply continuing motion: construct a transformation matrix and
- concatenate it with the current transform of objectID every
- refresh (sets objectID's incremental transform). Same syntax
- as transform. If optional "dt" argument is present,
- the object is moved at each time step such that its average motion
- equals one instance of the motion per "dt" seconds. E.g.
- (transform-incr World World World rotate 360 0 0 10.0)
- rotates the World about its X axis at 360 degrees every 10 seconds.
-
- (transform-set objectID centerID frameID [rotate|translate|translate-scaled] x y z)
- Set objectID's transform to the constructed transform.
- Same syntax as transform.
- (ui-center ID)
- Set the center for user interface (i.e. mouse) controlled
- motions to object ID.
- ui-emotion-program is an obsolete command.
- Use its new eqivalent "emodule-define" instead.
- ui-emotion-run is an obsolete command.
- Use its new eqivalent "emodule_start" instead.
- (ui-panel PANELNAME {on|off} [ WINDOW ] )
- Do or don't display the given user-interface panel.
- Case is ignored in panel names. Current PANELNAMEs are:
- geomview main panel
- tools motion controls
- appearance appearance controls
- cameras camera controls
- lighting lighting controls
- obscure obscure controls
- materials material properties controls
- command command entry box
- credits geomview credits
- By default, the "geomview" and "tools" panels appear when
- geomview starts. If the optional Window is supplied, a
- "position" clause (e.g. (ui-panel obscure on { position xmin
- xmax ymin ymax }) sets the panel's default position. (Only
- xmin and ymin values are actually used.) A present but empty
- Window, e.g. "(ui-panel obscure on {})" causes interactive
- positioning.
- (ui-target ID [yes|no])
- Set the target of user actions (the selected line of the
- target object browser) to ID. The second argument specifies
- whether to make ID the current object regardless of its type.
- If "no", then ID becomes the current object of its type
- (geom or camera). The default is "yes". This command may
- result in a change of motion modes based on target choice.
- (uninterest (COMMAND [args]))
- Undoes the effect of an "interest" command. (COMMAND [args]) must
- be identical to those used in the "interest" command.
- (update [timestep_in_seconds])
-
-
-
- Geometry Center October 29, 1993 14
-
-
-
-
-
- geomview(5) geomview(5)
-
-
- Apply each incremental motion once. Uses timestep if it's present and
- nonzero; otherwise motions are proportional to elapsed real time.
- (update-draw CAM-ID [timestep_in_seconds])
- Apply each incremental motion once and then draw CAM-ID.
- Applies "timestep" seconds' worth of motion, or uses elapsed real
- time if "timestep" is absent or zero.
- (window CAM-ID WINDOW)
- Specify attributes for the window of CAM-ID, e.g. its size
- or initial position, in the OOGL Window syntax.
- The special CAM-ID "default" specifies
- properties of future windows (created by "camera" or
- "new-camera").
- (winenter CAM-ID)
- Tell geomview that the mouse cursor is in the window
- of CAM-ID. This function is for development purposes
- and is not intended for general use.
- (write {command,geometry,camera,transform,window} FILENAME [ID|(ID ...)] [self|world|universe|otherID])
- write description of ID in given format to FILENAME. Last
- parameter chooses coordinate system for geometry & transform:
- self: just the object, no transformation or appearance (geometry only)
- world: the object as positioned within the World.
- universe: object's position in universal coordinates;
- includes Worldtransform
- other ID: the object transformed to otherID's coordinate system.
-
- A filename of "-" is a special case: data are written to the
- stream from which the 'write' command was read. For external
- modules, the data are sent to the module's standard input.
- For commands not read from an external program, "-" means
- geomview's standard output. (See also the "command"
- command.)
-
- The ID can either be a single id or a parenthesized list of
- ids, like "g0" or "(g2 g1 dodec.off)".
- (write-sexpr FILENAME LISPOBJECT)
- Writes the given LISPOBJECT to FILENAME. This function is intended
- for internal debugging use only.
- (xform ID TRANSFORM)
- Concatenate TRANSFORM with the current transform of the object
- (apply TRANSFORM to object ID).
- (xform-incr ID TRANSFORM)
- Apply continual motion: concatenate TRANSFORM with the current
- transform of the object every refresh (set object ID's
- incremental transform to TRANSFORM).
- (xform-set ID TRANSFORM)
- Overwrite the current object transform with TRANSFORM (set
- object ID's transform to TRANSFORM).
- (zoom CAM-ID FACTOR)
- Zoom CAM-ID, multiplying its field of view by FACTOR.
- FACTOR should be a positive number.
- | is a synonym for "emodule-run"
-
-
-
-
-
-
- Geometry Center October 29, 1993 15
-
-
-