Geomview man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

     NAME
	  Geomview - Geomview command language

     NOTE
	  The material in this manual page also appears in the
	  Geomview manual.

     DESCRIPTION
	  gcl: the Geomview Command Language
	  **********************************

	  Gcl 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.
	  Gcl is very limited and is by no means an implementation of lisp.  It
	  is simply a language for expressing commands to be executed in the order
	  given, rather than a programming language.  It does not support variable
	  or function definition.

	  Gcl is the language that Geomview understands for files that it loads
	  as well as for communication with other programs.
	  To execute a gcl command interactively, you can bring up the
	  *Commands* 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 gcl commands
	  from standard input.

	  Gcl functions return a value, and you can nest function calls in ways
	  which use this returned value.  For example
	       (f (g a b))
	  evaluates `(g a b)' and then evaluates `(f x)' where `x'
	  is the result returned by `(g a b)'.	Geomview maintains these
	  return values internally but does not normally print them out.
	  To print out a return value pass it to the `echo' function.
	  For example the `geomview-version' function returns a string
	  representing the version of Geomview that is running, and
	       (echo (geomview-version))
	  prints out this string.

	  Many functions simply return `t' for success or `nil' for
	  failure; this is the case if the documentation for the function does not
	  indicate otherwise.  These are the lisp symbols for true and false,
	  respectively.	 (They correspond to the C variables `Lt' and
	  `Lnil' which you are likely to see if you look at the source code
	  for Geomview or some of the external modules.)

	  In the descriptions of the commands below several references are made to
	  "OOGL" formats.  OOGL is the data description language that Geomview
	  uses for describing geometry, cameras, appearances, and other basic
	  objects.  For details of the OOGL formats, *Note OOGL File Formats::.
	  (Or equivalently, see the oogl(5) manual page, distributed with Geomview
	  in the file man/cat5/oogl.5.

     Page 1					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  The gcl commands and argument types are listed below.	 Most
	  of the documentation in this section of the manual is available within
	  Geomview via the `?' and `??' commands.  The command `(?
	  COMMAND)' causes Geomview to print out a one-line summary of the
	  syntax of COMMAND, and `(?? COMMAND)' prints out an
	  explanation of what COMMAND does.  You can include the wild-card
	  character `*' in COMMAND to print information for a group of
	  commands matching a pattern.	For example, `(?? *emodule*)' will
	  print all information about all commands containing the string
	  `emodule'.  `(? *)' will print a short list of all commands.

	  Conventions Used In Describing Argument Types
	  =============================================

	  The following symbols are used to describe argument types
	  in the documentation for gcl functions.

	  `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

     Page 2					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       `focus'
		    camera where cursor is (or most recently was)

	       `allgeoms'
		    all geom objects

	       `allcams'
		    all cameras

	       ``default, defaultcam, prototype''
		    future cameras inherit default's settings

	       The following IDs are used to name coordinate systems,
	       e.g. in `pick' and `write' commands:

	       ``World, world, worldgeom, g0''
		    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 gcl id.  Numbers are reused after an
	       object is deleted. Both names are shown in the Object browser.

	  `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.

	  `WINDOW'
	       is an OOGL winddow specification.

     Page 3					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  Gcl Reference Guide
	  ===================

	  `! 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])'
	       Gives one-line usage summary for `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'.

	  `| is a synonym for `emodule-run'.'

	  `(all geometry)  returns a list of names of all geometry objects.'
	       Use e.g. `(echo (all geometry))' to print such a list.
	  `(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.'

	  `(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
	       between 0 and 1.

	  `(background-image CAM-ID [FILENAME])'
	       Use the given image as the background of camera CAM-ID (which must be a
	       real camera, not `default' or `allcams'). Centers the image on
	       the window area.	 Works only with GL and OpenGL graphics.
	       Use "" for filename to remove background.  With no filename argument,
	       returns name of that window's current background image, or "".
	       Any file type acceptable as a texture is allowed, e.g. .ppm.gz, .sgi, etc.

     Page 4					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(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.

	  `(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.

     Page 5					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(cursor-twitch     [INT])'
	       Sets the distance which the cursor must not move (in x or
	       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.
	       See also the appearance attribute `dice', which makes this command
	       obsolete.

	  `(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.

	  `(dither  CAM-ID {on|off|toggle})'
			Turn dithering on or off in that camera.

	  `(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 arguments).

     Page 6					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(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
	       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-keys {on|off})'
			Turn keyboard events on or off to enable/disable keyboard shortcuts.

	  `(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').

	  `(event-pick {on|off})'
	       Turn picking on or off.

     Page 7					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(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})'
	       Set the model used to display geometry in
	       this camera; see also `space'.

	  `(hsphere-draw   CAMID [yes|no])'
	       Say whether to draw a unit sphere: the sphere at infinity in
	       hyperbolic space, and a reference sphere in Euclidean and spherical
	       spaces.	If the second argument is omitted, `yes' is assumed.

	  `(if TEST EXPR1 [EXPR2])'
	       Evaluates TEST; if TEST returns a non-nil value, returns the

     Page 8					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       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.

	  `(input-translator  "#prefix_string"	"Bourne-shell-command")'
	       Defines an external translation program for special input types.
	       When asked to read a file which begins with the specified string,
	       geomview invokes that program with standard input coming from the given file.
	       The program is expected to emit OOGL geometric data to its standard output.
	       In this implementation, only prefixes beginning with # are recognized.
	       Useful as in
		      (input-translator "#VRML" "vrml2oogl")

	  `(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.

     Page 9					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(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
	       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

     Page 10					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       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
	       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.

	  `(ND-axes CAMID [CLUSTERNAME [Xindex Yindex Zindex]])'
	       In our model for N-D viewing (enabled by (dimension)), objects in
	       N-space are viewed by N-dimensional *camera clusters*.
	       Each real camera window belongs to some cluster, and shows &
	       manipulates a 3-D axis-aligned projected subspace of the N-space seen
	       by its cluster.	Moving one camera in a cluster affects its siblings.

	       The ND-axes command configures all this.	 It specifies a camera's
	       cluster membership, and the set of N-space axes which become the
	       3-D camera's X, Y, and Z axes.  Axes are specified by their indices,
	       from 0 to N-1 for an N-dimensional space.  Cluster CLUSTERNAME is
	       implicitly created if not previously known.

     Page 11					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       To read a camera's configuration, use `(echo (ND-axes CAMID))'.

	  `(ND-color CAMID'
		    [ (( [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 ...) ...)] )
	       Specifies a function, applied to each N-D vertex, which determines the
	       colors of N-dimensional objects as shown in camera CAMID.
	       Each coloring function is defined by a vector (in ID's coordinate system)
	       [x0 x1 ... xn] and by a sequence of value (v)/color(r g b a) tuples,
	       ordered by increasing v.	 The inner product v = P.[x] is linearly
	       interpolated in this table to give a color.
	       If ID is omitted, the (xi) vector is assumed in universe coordinates.
	       The ND-color command specifies a list of such functions; each vertex
	       is colored by their sum (so e.g. green intensity could indicate
	       projection along one axis while red indicated another.
	       An empty list, as in (ND-color CAMID ()), suppresses coloring.
	       With no second argument, (ND-color CAMID) returns that camera's
	       color-function list.
	       Even when coloring is enabled, objects tagged with the `keepcolor'
	       appearance attribute are shown in their natural colors.

	  `(ND-xform OBJID [ntransform { idim odim  ... }])'
	       Sets or returns the N-D transform of the given object.
	       In dimension N, this is an (N+1)x(N+1) matrix.
	       Note that all cameras in a camera-cluster have the same N-D transform.

	  `(ND-xform-get ID [from-ID])'
	       Returns the N-D transform of the given object in the coordinate system
	       of from-ID (default `universe'), in the sense
		 <point-in-ID-coords> * Transform = <point-in-from-ID-coords>

	  `(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.

     Page 12					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(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))

	  `(NeXT)'
	       Returns t if running on a NeXT, nil if not

	  `(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
		    (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.

     Page 13					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       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.

	  `(pick-invisible [yes|no])'
	       Selects whether picks should be sensitive to objects whose appearance
	       makes them invisible; default yes.
	       With no arguments, returns current status.

	  `(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.

	  `(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.

     Page 14					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(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])'

     Page 15					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       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
	       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.
	       The special directory name `+' is replaced by the existing path,
	       so e.g. (set-emodule-path (mydir +)) prepends mydir to the path.

	  `(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.
	       The special directory name `+' is replaced by the existing path,
	       so e.g. (set-load-path (mydir +)) prepends mydir to the path.

	  `(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

     Page 16					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

		       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.
	       A synonym is `!'.

	  `(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)'
	       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 [FORMAT [XSIZE [YSIZE]]])'
	       Save a snapshot of CAM-ID in the FILENAME (a string).  The
	       FORMAT argument is optional; it may be `ppmscreen',
	       `sgi', `ps', or `ppm'.  A `ppmscreen' snapshot is created by reading
	       the image directly from the given window; the window is popped above
	       other windows and redrawn first, then its contents are written as a
	       PPM format image.  With `ps', dumps a Postscript picture representing
	       the view from that window; hidden-surface removal might be incorrect.
	       With `ppm', dumps a PPM-format image produced by geomview's internal
	       software renderer; this may be of arbitrary size.  If the FILENAME
	       argument begins with the vertical bar `|', it's interpreted as a
	       /bin/sh command to which the PPM or PS data should be piped.
	       Optional XSIZE and YSIZE values are relevant only for `ppm' format,
	       and render to a window of that size (or scaled to that size,
	       with aspect fixed, if only XSIZE is given)

	  `(soft-shader	 CAM-ID	 {on|off|toggle})'
	       Select whether to use software or hardware shading in that camera.

     Page 17					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	  `(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|scale] x y z [dt] [`smooth'])'
	       Apply a motion (rotation, translation, scaling) 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
	       `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.  The optional `dt' field allows a simple form of
	       animation; if present, the object moves by just that amount during
	       approximately `dt' seconds, then stops.	If present and followed by
	       the `smooth' keyword, the motion is animated with a 3t^2-2t^3

     Page 18					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       function, so as to start and stop smoothly.  If absent, the motion is
	       applied immediately.

	  `(transform-incr  objectID centerID frameID [rotate|translate|translate-scaled|scale] 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  6.28318 0 0  10.0)
	       rotates the World about its X axis at 1 turn (2pi radians) per 10 seconds.

	  `(transform-set objectID centerID frameID [rotate|translate|translate-scaled|scale] 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-freeze [on|off])'
		       Toggle updating user interface panels. Off by default.

	  `(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])'

     Page 19					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

		       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])'
	       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-comments FILENAME GEOMID PICKPATH)'

     Page 20					    (printed 12/22/98)

     Geomview(5Geometry Center (Thu Dec 12 02:41:23 CST 199Geomview(5)

	       write OOGL COMMENT objects in the GEOMID hierarchy at the
		    level of the pick path to FILENAME. Specifically, COMMENTS
		    at level (a b c ... f g) will match pick paths of the form
		    (a b c ... f *) where * includes any value of g, and also
		    any values of possible further indices h,i,j, etc. The pick
		    path (returned in the `pick' command) is a list of
		    integer counters specifying a subpart of a hierarchical
		    OOGL object. Descent into a complex object (LIST or INST)
		    adds a new integer to the path. Traversal of simple objects
		    increments the counter at the current level.
		    Individual COMMENTS are enclosed by curly braces, and the
		    entire string of zero, one, or more COMMENTS (written in
		    the order in which they are encountered during hierarchy
		    traversal) is enclosed by parentheses.

		       Note that arbitrary data can only be passed through the OOGL
		    libraries as full-fledged OOGL COMMENT objects, which can be
		    attached to other OOGL objects via the LIST type as described
		    above. Ordinary comments in OOGL files (i.e. everything after
		    '#' on a line) are ignored at when the file is loaded and
		    cannot be returned.

	  `(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.

	  Info file: geomview,	  -*-Text-*-
	  produced by texinfo-format-buffer
	  from file: geomview.tex

     Page 21					    (printed 12/22/98)

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net