(index ("start-viewer" 0) ("current-radius" 324) ("rotate-view" 488) ("current-refresh-delay" 631) ("resize-window" 807) ("current-table" 924) ("message" 1245) ("add-effect" 1345) ("remove-effect" 1781) ("remove-all-effects" 1893) ("animation" 2001) ("make-keymap" 2215) ("default-keymap" 3337) ("join-keymaps" 3823) ("keymap-ref" 4010) ("keymap-set!" 4211) ("current-keymap" 4347) ("add-object" 4459) ("remove-object" 5153) ("object-property" 5261) ("object-highlighted?" 5504) ("all-objects" 5670) ("number-of-objects" 5784) ("remove-all-objects" 5899) ("update-object" 6006) ("update-all-objects" 6155) ("current-world-transformation" 6264) ("current-view-transformation" 6423))
(def (sig (procedure "(start-viewer #!key w h title init)" (id start-viewer))) (p "Starts the viewer by opening a window with the given size and title. If given, then " (tt "init") " keyword parameter should hold a thunk that will be executed after the viewer has been initialized. " (tt "start-viewer") " never returns."))
(def (sig (parameter "current-radius" (id current-radius))) (p "Gets or sets the radius of the camera-position, centered around the " (tt "0/0/0") " coordinate."))
(def (sig (procedure "(rotate-view xd yd)" (id rotate-view))) (p "Rotates the camera by xd/yd degres around the X and Y axis, respectively."))
(def (sig (parameter "current-refresh-delay" (id current-refresh-delay))) (p "The time the current thread will sleep when the display is \"idle\". Defaults to 0.01 seconds."))
(def (sig (procedure "(resize-window W H)" (id resize-window))) (p "Resizes the display window to the given size."))
(def (sig (parameter "current-table" (id current-table))) (p "Holds a list of table entries, where each table entry is either " (tt "#f") " (which means an empty line) or a pair containing a title and a value to be shown in the respective line of the table. Setting this parameter to " (tt "#f") " disables the table."))
(def (sig (procedure "(message text)" (id message))) (p "Shows a message centered on the screen."))
(def (sig (procedure "(add-effect thunk #!optional name)" (id add-effect))) (p (tt "thunk") " will be executed repeatedly and should return a boolean indicating true if the effect should remain active or false if the effect should be removed. " (tt "name") " gives the effect a name for later retrieval. If " (tt "name") " is given and an effect is already registered under this name, then the previously existing effect is removed."))
(def (sig (procedure "(remove-effect name)" (id remove-effect))) (p "Removes the effect with the given name."))
(def (sig (procedure "(remove-all-effects)" (id remove-all-effects))) (p "Disables all existing effects."))
(def (sig (parameter "animation" (id animation))) (p "The default animation of the view. By default no animation is active. Suitable values are " (tt "#f") " (off) or " (tt "'spin") " (spin view around Y axis)."))
(def (sig (procedure "(make-keymap [KEY1 PROC1 ... [DEFAULTHANDLER]])" (id make-keymap))) (p "Creates and returns a keymap and fills it with the given key/keyhandler items. A key should be a character, a symbol indicating a special key or a list of the form " (tt "([alt] [control] [shift] CHAR)]]") ". A key-handler is a procedure that takes the key as its sole argument.") (p "If " (tt "DEFAULTHANDLER") " is given, it should be a procedure of one argument (the key value) that is invoked for all key-presses for which no item exists in the keymap. If the default-handler returns false, then any joined keymap (see below) will be tried.") (p "Special keys are mapped to symbols like this:") (table (tr (td "F1 - F12") (td (tt "f1") " - " (tt "f12"))) "\n" (tr (td "left") (td (tt "left"))) "\n" (tr (td "up") (td (tt "up"))) "\n" (tr (td "right") (td (tt "right"))) "\n" (tr (td "down") (td (tt "down"))) "\n" (tr (td "Page up") (td (tt "page-up"))) "\n" (tr (td "Page down") (td (tt "page-down"))) "\n" (tr (td "Home") (td (tt "home"))) "\n" (tr (td "End") (td (tt "end"))) "\n" (tr (td "Insert") (td (tt "insert")))))
(def (sig (constant "default-keymap" (id default-keymap))) (p "The default keymap, which defines some basic viewer operations:") (dl (dt (tt "#\\esc")) (dd "terminate process") (dt (tt "#\\t")) (dd "toggle table") (dt (tt "up")) (dd "rotate upwards") (dt (tt "down")) (dd "rotate downwards") (dt (tt "left")) (dd "rotate left") (dt (tt "right")) (dd "rotate right") (dt (tt "page-up")) (dd "zoom in") (dt (tt "page-down")) (dd "zoom out") (dt (tt "#\\space")) (dd "toggle animation")))
(def (sig (procedure "(join-keymaps KEYMAP1 ...)" (id join-keymaps))) (p "Combines several keymaps and returns a new keymap that passes unhandled input to the next keymap in the list."))
(def (sig (procedure "(keymap-ref KEYMAP KEY)" (id keymap-ref))) (p "Returns the key-handler procedure for " (tt "KEY") " in " (tt "KEYMAP") " or " (tt "#f") " if no entry exists for the given key."))
(def (sig (procedure "(keymap-set! KEYMAP KEY HANDLER)" (id keymap-set!))) (p "Assigns a new or existing key-handler to a given key."))
(def (sig (parameter "current-keymap" (id current-keymap))) (p "Sets or returns the currently active keymap."))
(def (sig (procedure "(add-object RENDER #!key name select animate)" (id add-object))) (p "Creates a new object and returns its ID. " (tt "name") " is an optional name for ther object. " (tt "RENDER") " is a procedure taking an object ID and performs the necessary graphical operations to render the object into the OpenGL buffer. " (tt "select") " is a procedure taking an object ID and is invoked when the user clicks on the rendered object in the viewer window. " (tt "animate") " is a procedure taking an object ID and defines an animation to be executed on each \"tick\" (redraw or when the system is idle). If the animation procedure returns true, then the object will be re-rendered."))
(def (sig (procedure "(remove-object id)" (id remove-object))) (p "Removes the object with the given ID."))
(def (sig (procedure "(object-property ID PROPERTY)" (id object-property))) (p "Returns the named property of the given object. You can use") (pre " (set! (object-property ID PROPERTY) VALUE)") (p "to assign a value to a n object-property."))
(def (sig (procedure "(object-highlighted? ID)" (id object-highlighted?))) (p "Returns true, if the object with the given ID is currently under the mouse pointer."))
(def (sig (procedure "(all-objects)" (id all-objects))) (p "Returns a list of the IDs of all existing objects."))
(def (sig (procedure "(number-of-objects)" (id number-of-objects))) (p "Returns the number of existing objects."))
(def (sig (procedure "(remove-all-objects)" (id remove-all-objects))) (p "Removes all existing objects."))
(def (sig (procedure "(update-object id)" (id update-object))) (p "Marks the object with the given ID as \"dirty\" and as requiring re-rendering."))
(def (sig (procedure "(update-all-objects)" (id update-all-objects))) (p "Marks all objects as \"dirty\"."))
(def (sig (parameter "current-world-transformation" (id current-world-transformation))) (p "Should hold a thunk that sets the current world-transformation."))
(def (sig (parameter "current-view-transformation" (id current-view-transformation))) (p "A 16-element " (tt "f64vector") " that specifies the view-transformation as a 4x4 matrix in column major order."))
