geomview

Section: File Formats (5)
Updated: October 29, 1993
Index Return to Main Contents
 

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 programs. 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 commands from standard input.

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. 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
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
                                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
        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
        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
        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})
        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
        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
        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
           (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.
(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 
        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)
        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
        "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])
        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"



 

Index

NAME
DESCRIPTION

This document was created by man2html, using the manual pages.
Time: 01:29:17 GMT, December 05, 2024