Gendl Documentationstatic

node-mixin

objectgwl
mixins: gwl::layout-mixinvanilla-mixin

Generates a default GWL user interface with a model-inputs area, user-navigable tree with child applications, graphics view with controls, and rule display.

Child objects should be of type node-mixin or application-mixin. Child hidden-objects may be of any type.

The ui-display-list-objects is appended up automatically from those of the children.

Sample geometry

Messages (152 documented, 291 total)

after-present!optional-input-slotfrom base-html-sheet

Void. This is an empty function by default, but can be overridden in the respondent of a form, to do some processing after the respondent's write-html-sheet function runs to present the object.

after-set!optional-input-slotfrom base-html-sheet

Void. This is an empty function by default, but can be overridden in the requestor of a form, to do some processing after the requestor's form values are set into the specified bashee.

aggregatecomputed-slotfrom vanilla-mixin*

GDL Instance. In an element of a sequence, this is the container object which holds all elements.

all-mixinscomputed-slotfrom vanilla-mixin*

List of Symbols. Lists all the superclasses of the type of this object.

available-image-formatsoptional-input-slotfrom layout-mixin

List of keyword symbols. Determines which formats are available in the Preferences. Defaults to :png, :jpeg, and :vrml.

axis-vectorfunctionfrom base-object

3D Vector. Returns the vector pointing in the positive direction of the specified axis of this object's reference box. :arguments (axis "Keyword. One of the standard axis keywords: :lateral, :longitudinal, :vertical.")

background-colorfunctionfrom base-html-graphics-sheet

Keyword symbol, string, list, or vector. Default background for the graphics viewport. Can be specified as a name (keyword or string) in *color-table*, an html-style hex string (starting with #), or a decimal RGB triplet in a list or vector. The default comes from the :background entry in *colors-default*.

basheeoptional-input-slotfrom skeleton-ui-element

GDL Object. Object to have its settable computed-slots and/or query-plist set from the fields on the form upon submission. Defaults to self.

before-present!optional-input-slotfrom base-html-sheet

Void. This is an empty function by default, but can be overridden in the respondent of a form, to do some processing before the respondent's write-html-sheet function runs to present the object. This can be useful especially for objects which are subclasses of higher-level mixins such as application-mixin and node-mixin, where you do not have direct access to the write-html-sheet function and typically only define the model-inputs function. It is not always reliable to do processing in the model-inputs function, since some slots which depend on your intended modifications may already have been evaluated by the time the model-inputs function runs.

before-response!optional-input-slotfrom base-html-sheet

Void. This is an empty function by default, but can be overridden in a user specialization of base-html-sheet, to do some processing before the header-plist is evaluated and before the HTTP response is actually initiated.

before-set!optional-input-slotfrom base-html-sheet

Void. This is an empty function by default, but can be overridden in the requestor of a form, to do some processing before the requestor's form values are set into the specified bashee.

body-bgcoloroptional-input-slotfrom layout-mixin

Keyword symbol. Color keyword from color-table for the body background. Defaults to :blue-sky.

bounding-bboxhidden-objectfrom base-object

GDL object of type Box. A box representing the bounding-box.

bounding-boxoptional-input-slotfrom base-object

List of two 3D points. The left front bottom and right rear top corners, in global coordinates, of the rectangular volume bounding the tree of geometric objects rooted at this object.

centeroptional-input-slotfrom skeleton-ui-element

3D Point. Indicates in global coordinates where the center of the reference box of this object should be located.

check-sanityfunctionfrom base-html-sheet

NIL or error object. This function checks the "sanity" of this object. By default, it checks that following the object's root-path from the root resolves to this object. If the act of following the root-path throws an error, this error will be returned. Otherwise, if the result of following the root-path does not match the identity of this object, an error is thrown indicating this. Otherwise, NIL is returned and no error is thrown. You can override this function to do what you wish. It should return NIL if the object is found to be "sane" and an throw an error otherwise.

If check-sanity? is set to T in this object, this function will be invoked automatically within an ignore-errors by the function handling the GWL "/answer" form action URI when this object is a respondent, before the main-sheet is presented.

check-sanity?optional-input-slotfrom base-html-sheet

Boolean. Determines whether a a sanity check is done (with the check-sanity function) before presenting the response page if this page is a respondent. Default is NIL.

childrencomputed-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :objects specification, including elements of sequences as flat lists.

children-uncacheduncached-computed-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :objects specification, including elements of sequences as flat lists.

color-decimalcomputed-slotfrom base-object

Vector of three real numbers. The RBG color of this object specified in :display-controls. Defaults to the foreground color specified in *colors-default*. This message should not normally be overridden in user application code.

default-tree-depthoptional-input-slot

Integer. Determines how many descendant levels to show in the tree initially. Default is 1.

digitation-modesettable-optional-input-slotfrom base-html-graphics-sheet

Keyword symbol, one of :zoom-and-center, :report-point, or :measure-distance.

  • If :zoom-and-center, sets the user-center and user-scale accordingly when graphics area is clicked.

  • If :report-point, the slot digitized-point is set with the x y value.

  • If measure-distance, the slot :digitized-distance is set with the resultant distance.

Default is :zoom-and-center

direct-mixinscomputed-slotfrom vanilla-mixin*

List of Symbols. Lists the direct superclasses of the type of this object.

display-controlsdefaulted-input-slotfrom base-object

Plist. May contain keywords and values indicating display characteristics for this object. The following keywords are recognized currently:

:color

color keyword from the color-table parameter, or an HTML-style hexidecimal RGB string value, e.g. "#FFFFFF" for pure white. Defaults to :black.

:line-thickness

an integer, defaulting to 1, indicating relative line thickness for wireframe representations of this object.

:dash-pattern

(currently PDF/PNG/JPEG only). This is a list of two or three numbers which indicate the length, in pixels, of the dashes and blank spaces in a dashed line. The optional third number indicates how far into the line or curve to start the dash pattern.

display-rules?defaulted-input-slotfrom layout-mixin

Boolean. Indicates whether the Rules panel should be displayed. Defaults to T.

display-tree?defaulted-input-slotfrom layout-mixin

Boolean. Indicates whether the Tree area should be displayed. Defaults to T.

documentationfunctionfrom vanilla-mixin*

Plist. Returns the :documentation plist which has been specified the specific part type of this instance.

dom-idoptional-input-slotfrom skeleton-ui-element

String. This is the auto-computed dom-id which should be used for rendering this section. If you use the main-div HTML string for rendering this object as a page section, then you do not have to generate the :div tag yourself - the main-div will be a string of HTML which is wrapped in the correct :div tag already.

edge-centerfunctionfrom base-object

3D Point. Returns the center of the requested edge of this object's reference box. :arguments (direction-1 "Keyword. One of the standard direction keywords: :right, :left, :rear, :front, :top, :bottom." direction-2 "Keyword. A standard direction keyword orthogonal to direction-1.")

face-centerfunctionfrom base-object

3D Point. Returns the center of the requested face (the requested face with respect to the wrt argument if present, or self if wrt is nil) of this object's reference box. :arguments (direction "Keyword. One of the standard direction keywords: :right, :left, :rear, :front, :top, :bottom.")

(wrt "GDL object instance. Reference object for axes")

face-normal-vectorfunctionfrom base-object

3D Vector. Returns the vector pointing from this object's reference box center to its requested face-center. :arguments (direction "Keyword. One of the standard direction keywords: :right, :left, :rear, :front, :top, :bottom.")

face-verticesfunctionfrom base-object

List of four 3D points. Returns the vertices of the indicated face.

:arguments (direction "Direction keyword, e.g. :top, :bottom etc. Indicates for which face to return the vertices.")

failed-form-controlscomputed-slotfrom skeleton-ui-element

List of GDL objects. All the form-controls which do not pass validation.

first?computed-slotfrom vanilla-mixin*

Boolean. For elements of sequences, T iff there is no previous element.

follow-root-pathfunctionfrom vanilla-mixin*

GDL Instance. Using this instance as the root, follow the reference chain represented by the given path. :arguments (path "List of Symbols or Pairs of Symbol and Integer")

force-validation-foroptional-input-slotfrom skeleton-ui-element

List of GDL objects of type form-control. The validation-function will be forced on these objects when a form is submitted, even if the object's html form-control does not happen to be included in the values submitted with the form. Defaults to nil.

foreground-colorfunctionfrom base-html-graphics-sheet

Keyword symbol, string, list, or vector. Default foreground for the graphics viewport. Can be specified as a name (keyword or string) in *color-table*, an html-style hex string (starting with #), or a decimal RGB triplet in a list or vector. The default comes from the :foreground entry in *colors-default*.

form-controlscomputed-slotfrom skeleton-ui-element

List of GDL objects. All the children or hidden-children of type base-form-control.

fragment-divfunctionfrom skeleton-ui-element

String of HTML. The value of the computed-slot named by KEY (a keyword) wrapped in a div carrying the fragment's auto dom-id, so a gdlAjax call can replace its innerHTML without the content living in a base-html-div child section. List KEY in html-fragments to participate in ajax responses. [gornskew 2026-07-20]

gdl-ajax-callfunctionfrom skeleton-ui-element

String.

This function returns a string of Javascript, appropriate to use for events such as :onclick, :onchange, etc, which will invoke an Ajax request to the server, which will respond by replacing the innerHTML of affected :div's, and running the Javascript interpreter to evaluate (the js-to-eval), if any.

:examples "

 FLAG -- Fill in!!!

"

:&key ((bashee (the bashee)) "GDL Object. This object will have the function-key called on it, if any." (respondent (the respondent)) "GDL Object. This must be the object which represents the actual web page being used." (function-key nil) "Keyword symbol. This keyword symbol must name a GDL function or method which is to be invoked with the Ajax call." (arguments nil) "List of values. This is the argument list on which the function named by function-key will be applied." (form-controls nil) "List of GDL objects of type base-form-control. Each of the objects in this list will have its current value (as entered by the user) scraped from the web page and its value in the model "bashed" to reflect what has been entered on the page.")

global-to-localfunctionfrom base-object

3D-point. This function returns the point given in global coordinates, into relative local coordinates, based on the orientation and center of the object to which the global-to-local message is sent.

:arguments (point "3D-point. The point to be converted to local coordinates")

:examples Please see the examples area.

graphics-heightdefaulted-input-slotfrom layout-mixin

Integer. Height (top to bottom on screen) in pixels of the graphics area. Defaults to 500.

graphics-widthdefaulted-input-slotfrom layout-mixin

Integer. Height (left to right on screen) in pixels of the graphics area. Defaults to 500.

header-plistcomputed-slotfrom base-html-sheet

Plist. Extra http headers to be published with the URI for this page.

heightoptional-input-slotfrom layout-mixin

Number. Z-axis dimension of the reference box. Defaults to zero.

hidden-childrencomputed-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :hidden-objects specification, including elements of sequences as flat lists.

hidden?optional-input-slotfrom vanilla-mixin*

Boolean. Indicates whether the object should effectively be a hidden-object even if specified in :objects. Default is nil.

html-fragmentsoptional-input-slotfrom skeleton-ui-element

List of keyword symbols, naming computed-slots of this sheet whose values are HTML strings rendered at toplevel via fragment-div. Usually UNNECESSARY: fragment-div self-registers each key it renders (monotonically, outside the KB), so this list is only for extra keys not (yet) rendered through fragment-div on this sheet. Any listed fragment whose slot-status is :invalidated at gdlAjax response time gets recomputed and its innerHTML replaced in the browser -- no base-html-div child section required. [gornskew 2026-07-20]

html-sectionsoptional-input-slotfrom skeleton-ui-element

List of HTML sections to be scanned and possibly replaced in response to GDL Ajax calls. Override this slot at your own risk. The default is all sections who are most recently laid out on the respondent sheet, and this is set programmatically every time the sheet section's main-div is demanded.

html-sections-validoptional-input-slotfrom skeleton-ui-element

List of valid HTML sections to be scanned and possibly replaced in response to GDL Ajax calls. Override this slot at your own risk. The default is all sections who are most recently laid out on the respondent sheet, and this is set programmatically every time the sheet section's main-div is demanded.

image-fileoptional-input-slotfrom base-object

Pathname or string. Points to a pre-existing image file to be displayed instead of actual geometry for this object. Defaults to nil

image-formatoptional-input-slotfrom layout-mixin

Keyword symbol. Determines the default image format. Defaults to :png

in-face?functionfrom base-object

Boolean. Returns non-nil if the given point is in halfspace defined by the plane given a point and direction.

:arguments (point "3D point. a point in the plane" direction "3D vector. The normal of the plane")

indexcomputed-slotfrom vanilla-mixin*

Integer. Sequential index number for elements of a sequence, NIL for singular objects.

inner-htmloptional-input-slotfrom skeleton-ui-element

String. This can be used with (str ...) [in cl-who] or (:princ ...) [in htmlGen] to output this section of the page, without the wrapping :div tag [so if you use this, your code would be responsible for wrapping the :div tag with :id (the dom-id).]

inputs-bgcoloroptional-input-slotfrom layout-mixin

Keyword symbol. Color keyword from color-table for the model-inputs area background. Defaults to :aquamarine.

inputs-titleoptional-input-slotfrom layout-mixin

String. Title for the model-inputs section. Defaults to "Model Inputs".

js-to-evaloptional-input-slotfrom skeleton-ui-element

String of valid Javascript. This Javascript will be send with the Ajax response, and evaluated after the innerHTML for this section has been replaced.

last?computed-slotfrom vanilla-mixin*

Boolean. For elements of sequences, T iff there is no next element.

leaf?computed-slotfrom vanilla-mixin*

Boolean. T if this object has no children, NIL otherwise.

leavescomputed-slotfrom vanilla-mixin*

List of GDL Objects. A Collection of the leaf nodes of the given object.

leaves-uncacheduncached-computed-slotfrom vanilla-mixin*

List of GDL Objects. A Collection of the leaf nodes of the given object.

lengthoptional-input-slotfrom layout-mixin

Number. Length ("height" of screen window) of the graphics viewport. Default is 300.

line-intersection-pointsfunctionfrom base-object

List of 3D points. Returns the points of intersection between given line and the reference box of this object.

:arguments (p-line "3D point. A point in the line" u-line "3D vector. The direction vector of the line")

local-bboxhidden-objectfrom base-object

GDL object of type Box. A box representing the local-box.

local-boxoptional-input-slotfrom base-object

List of two 3D points. The left front bottom and right rear top corners, in global coordinates, of the rectangular volume bounding this geometric object.

local-centercomputed-slotfrom base-object

3D Point. The center of this object, from the perspective of the parent. Starting from the parent's center and using the parent's orientation, this is the relative center of this object.

local-center*computed-slotfrom base-object

3D Point. The center of this object, from the perspective of the parent. Starting from the parent's center and using the parent's orientation, this is the relative center of this object.

local-orientationcomputed-slotfrom base-object

3x3 Matrix of Double-Float Numbers. Indicates the local Rotation Matrix used to create the coordinate system of this object. This is the "local" orientation with respect to the parent. Multiplying the parent's orientation with this matrix will always result in the absolute orientation for this part.

:note An orientation of NIL indicates the 3x3 identity matrix.

local-to-globalfunctionfrom base-object

3D-point. This function returns the point given in relative local coordinates, converted into global coordinates, based on the orientation and center of the object to which the local-to-global message is sent.

:arguments (point "3D-point. The local point to be converted to global coordinates")

:examples Please see the examples area.

main-div%computed-slotfrom skeleton-ui-element

String. This should be used with (str ...) [in cl-who] or (:princ ...) [in htmlGen] to output this section of the page, including the wrapping :div tag.

message-documentationfunctionfrom vanilla-mixin*

String. This is synonymous with slot-documentation

message-listfunctionfrom vanilla-mixin*

List of Keyword Symbols. Returns the messages (slots, objects, and functions) of this object, according to the filtering criteria as specified by the arguments. :&key ((category :all) "Keyword. Either :all or the individual category of messages to be returned. This can be one of:

  • :computed-slots

  • :settable-computed-slots

  • :required-input-slots

  • :optional-input-slots

  • :defaulted-input-slots

  • :query-slots

  • :functions

  • :objects

  • :quantified-objects

  • :hidden-objects

  • :quantified-hidden-objects

" (message-type :global) "Keyword Symbol, :local or :global. Indicates whether to return messages only from the local specific part type, or from all superclasses (mixins) as well." (return-category? nil) "Boolean. Indicates whether or not the category of each message should be returned before each message in the returned list." (base-part-type nil) "Symbol naming a GDL Part Type. Indicates a "base" part from which no messages should be returned, nor should messages be returned from superclasses (mixins) of this base part. If NIL (the default), messages are considered from all superclasses." (sort-order :unsorted) "Keyword Symbol. One of: :unsorted, :by-category, or :by-name." (filter :normal) "Function Object of two arguments or :normal. If a function object, applies this function to each returned category and message keyword, and filters out all pairs for which the function returns NIL. If :normal (the default), then no filtering is done.")

mixinsfunctionfrom vanilla-mixin*

List of Symbols. Returns the names of the immediate superclasses of this object.

:&key ((local? t) "Boolean. Indicates whether to give only direct mixins or all mixins from the entire inheritance hierarchy.")

multipart-form?optional-input-slotfrom layout-mixin

Boolean. Determines whether the embedded form will support multipart MIME parts. Defaults to NIL.

name-for-displaycomputed-slotfrom vanilla-mixin*

Keyword symbol. The part's simple name, derived from its object specification in the parent or from the type name if this is the root instance.

nextcomputed-slotfrom vanilla-mixin*

GDL Instance. For elements of sequences, returns the next part in the sequence.

node-ui-display-list-objectsoptional-input-slot

GDL object list. Appends additional objects to the automatically-appended ui-display-list-objects from the children.

obliquenessoptional-input-slotfrom base-object

3x3 Orthonormal Matrix of Double-Float Numbers. This is synonymous with the orientation.

onclick-functionoptional-input-slotfrom geometry-view-mixin

Lambda function of zero arguments, or nil. If non-nil, this function gets invoked when the user clicks the object in graphics front-ends which may or may not support this functionality (see viewport-html-div).

ordered-form-controlsoptional-input-slotfrom skeleton-ui-element

List of GDL objects, which should be of type 'base-form-control.

[Note -- this slot is not really necessary for protecting out-of-bounds sequence references anymore, the form-control processor protects against this by itself now].

These objects are validated and bashed first, in the order given. If the cardinality of one form-control depends on another as in the example below, then you should list those dependent objects first. Default is nil.

:examples

 
...
  
  :computed-slots ((number-of-nozzles (the number-of-nozzles-form value))
        (ordered-form-controls 
         (append (list-elements (the inner-flange-form))
             (list (the number-of-nozzles-form)))))
  
  :objects
  ((inner-flange-form
    :type 'menu-form-control 
    :choice-plist (list :hey "hey" :now "now")
    :default :hey
    :sequence (:size (the number-of-nozzles)))

   (number-of-nozzles-form
    :type 'text-form-control 
    :prompt "Number of Shell Nozzles Required: "
    :domain :number     
    :default 0)
orientationoptional-input-slotfrom skeleton-ui-element

3x3 Matrix of Double-Float Numbers. Indicates the absolute Rotation Matrix used to create the coordinate system of this object. This matrix is given in absolute terms (i.e. with respect to the root's orientation), and is generally created with the alignment function. It should be an *orthonormal* matrix, meaning each row is a vector with a magnitude of one (1.0).

other-rulesoptional-input-slotfrom layout-mixin

List of GDL objects of type base-rule-object or (preferably) gwl-base-rule-object. Links to these will be displayed in the other-rules section. Default to the collection of all objects of type base-rule-object from this node in the tree down to the leaves, whose violated? message evaluates to NIL.

other-rules-bgcoloroptional-input-slotfrom layout-mixin

Keyword symbol. Color keyword from color-table for the other-rules area background. Defaults to :aquamarine.

other-rules-titleoptional-input-slotfrom layout-mixin

String. Title for the other-rules section. Defaults to "Other Rules".

page-titleoptional-input-slotfrom layout-mixin

String. The title to display on the page and in the tree. Defaults to (the strings-for-display).

parentcomputed-slotfrom vanilla-mixin*

GDL Instance. The parent of this object, or NIL if this is the root object.

possible-nilsoptional-input-slotfrom skeleton-ui-element

List of keyword symbols. Messages corresponding to form fields which could be missing from form submission (e.g. checkbox fields). Defaults to the names of any children or hidden-children of type menu-form-control or checkbox-form-control.

preset-all?optional-input-slotfrom skeleton-ui-element

Boolean. This switch determines whether all form-controls should be preset before the final setting, in order to allow any interdependencies to be detected for validation or detecting changed values. If this is specified as a non-nil value, then any nil values of (the preset?) on individual form controls will be ignored. If this is specified as nil, then (the preset?) of individual form-controls (default of these is also nil) will be respected. Default is nil.

previouscomputed-slotfrom vanilla-mixin*

GDL Instance. For elements of sequences, returns the previous part in the sequence.

process-cookies!optional-input-slotfrom base-html-sheet

Void. This is an empty function by default, but can be overridden in a user specialization of base-html-sheet, to do some processing before the header-plist is evaluated and before the HTTP response is actually initiated, but after the cookies-received have been set.

query-plistsettable-computed-slotfrom base-html-sheet

Plist. Contains submitted form field names and values for which no corresponding settable computed-slots exist. Where corresponding settable computed-slots exist, their values are set from the submitted form fields automatically.

read-saved-slotsfunctionfrom layout-mixin

Void. Reads the slots data from filename, restores the corresponding slots in this object and matching descendant objects, and calls the restore! function on each object.

:&key ((filename "/tmp/<object type>") "String or pathname. Name of file to be read.")

report-pointfunctionfrom base-html-graphics-sheet

Void. Process the points selected by digitizing in the graphics. You can override this function to do your own processing. By default, it prints the information to the console.

:arguments (x "Number. The X Coordinate of the digitized point." y "Number. The Y Coordinate of the digitized point.")

respondentdefaulted-input-slotfrom base-html-sheet

GDL Object. Object to respond to the form submission. Defaults to self.

restore-all-defaults!functionfrom vanilla-mixin*

Void. Restores all settable-slots in this instance to their default values.

restore-form-controls!functionfrom base-html-sheet

Void. Calls restore-defaults! on all the form-controls in this sheet.

restore-root!functionfrom vanilla-mixin*

Multiple Values: Total root-paths affected and total slots affected. Reverts any "remembered" bashed slots, starting from the root, to their default values. Note that any call to set-slot! or set-slots! or any use of web form-controls will result in "remembered values". Note that there is a :remember? keyword argument to set-slot! which defaults to t but if you specify it as nil, you can bash values without having them "remembered" and such slots would not be affected by this function.

restore-slot-default!functionfrom vanilla-mixin*

NIL. Restores the value of the given slot to its default, thus "undoing" any forcibly set value in the slot. Any dependent slots in the tree will respond accordingly when they are next demanded. Note that the slot must be specified as a keyword symbol (i.e. prepended with a colon (":")), otherwise it will be evaluated as a variable according to normal Lisp functional evaluation rules. :arguments (slot "Keyword Symbol") :key (force? "Boolean. Specify as t if you want to force non-settable slots to recompute (e.g. reading from databases or external files). Defaults to nil.")

restore-slot-defaults!functionfrom vanilla-mixin*

nil. Restores the value of the given slots to their defaults, thus "undoing" any forcibly set values in the slots. Any dependent slots in the tree will respond accordingly when they are next demanded. Note that the slots must be specified as keyword symbols (i.e. prepended with colons (":")), otherwise they will be evaluated as variables according to normal Lisp functional evaluation rules.

:arguments (slots "List of Keyword Symbols")

:&key ((force? force-restore-slot-default?) "Boolean. Indicates whether the slot values should be unbound, regardless of whether it had actually been bashed previously.")

restore-tree!functionfrom vanilla-mixin*

Void. Restores all settable-slots in this instance, and recursively in all descendant instances, to their default values.

return-objectoptional-input-slotfrom base-html-sheet

GDL object. Default object to which control will return with the write-back-link method

rootoptional-input-slotfrom vanilla-mixin*

GDL Instance. The root-level node in this object's "tree" (instance hierarchy).

root-pathcomputed-slotfrom vanilla-mixin*

List of Symbols or of Pairs of Symbol and Integer. Indicates the path through the instance hierarchy from the root to this object. Can be used in conjunction with the follow-root-path GDL function to return the actual instance.

root-path-localcomputed-slotfrom vanilla-mixin*

List of Symbols or of Pairs of Symbol and Integer. Indicates the path through the instance hierarchy from the local root to this object. Can be used in conjunction with the follow-root-path GDL function to return the actual instance.

root?computed-slotfrom vanilla-mixin*

Boolean. T iff this part has NIL as its parent and therefore is the root node.

safe-childrenoptional-input-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :objects specification, including elements of sequences as flat lists. Any children which throw errors come back as a plist with error information

safe-hidden-childrencomputed-slotfrom vanilla-mixin*

List of GDL Instances. All objects from the :hidden-objects specification, including elements of sequences as flat lists. Any children which throw errors come back as a plist with error information

sanity-errorfunctionfrom base-html-sheet

Void. Emits a page explaining the sanity error. This will be invoked instead of the write-main-sheet if check-sanity? is set to T and the check-sanity throws an error. You may override this function to do what you wish. By default a minimal error message is displayed and a link to the root object is presented.

:arguments (error "an error object, presumably from the check-sanity function.")

saved-slotscomputed-slotfrom layout-mixin

List of keyword symbols or lists.

The first of this list should be the unique name for this tree node for the purposes of saving slots. The rest of this list is made up of either keyword symbols or lists. A keyword symbol indicates the name of a slot to be saved in the current object. These slot names should correspond to :settable slots of this object. A list indicates slots to be saved in a child object, specified as follows: the first of the list is the name of the child part, and the rest is made up of keywords naming the slots in the child part to be saved. These should correspond to :settable slots in the child object.

The default value is the standard-saved-slots if the use-standard-saved-slots? is non-NIL, NIL otherwise.

select-choicesfunctionfrom base-html-sheet

Void. Writes an HTML Select field with Options. :&key ((size 1) "Integer. determines size of selection list. Default of 1 is a pulldown menu." name "Keyword symbol or string. Determines the name of the field, which should probably match a settable computed-slot." keys "List of strings, numbers, or symbols. Values, the selected one of which will be returned as the value of the field." (values keys) "List of strings. Keys to display in the selection-list." tabindex "Integer. If given, this will generate the tabindex tag for this HTML input field.")

set-slot!functionfrom vanilla-mixin*

NIL. Forcibly sets the value of the given slot to the given value. The slot must be defined as :settable for this to work properly. Any dependent slots in the tree will respond accordingly when they are next demanded. Note that the slot must be specified as a keyword symbol (i.e. prepended with a colon (":")), otherwise it will be evaluated as a variable according to normal Lisp functional evaluation rules.

Note also that this must not be called (either directly or indirectly) from within the body of a Gendl computed-slot. The caching and dependency tracking mechanism in Gendl will not work properly if this is called from the body of a computed-slot, and furthermore a runtime error will be generated.

:arguments (slot "Keyword Symbol" value "Lisp Object. (e.g. Number, String, List, etc.)")

:&key ((remember? t) "Boolean. Determines whether to save in current version-tree." (warn-on-non-toplevel? t) "Boolean. Determines whether to warn if this is called from the body of a cached slot." )

set-slots!functionfrom vanilla-mixin*

NIL. Forcibly sets the value of the given slots to the given values. The slots must be defined as :settable for this to work properly. Any dependent slots in the tree will respond accordingly when they are next demanded. Note that the slots must be specified as a keyword symbols (i.e. prepended with a colon (":")), otherwise they will be evaluated as variables according to normal Lisp functional evaluation rules. :arguments (slots-and-values "Plist. Contains alternating slots and values to which they are to be set." warn-on-non-toplevel? "Boolean. Indicates whether a warning should be issued for calling from inside the body of a cached slot. Default is t.")

show-title?optional-input-slotfrom layout-mixin

Boolean. Indicates whether to display the title at the top of the page. Defaults to T.

slot-documentationfunctionfrom vanilla-mixin*

Plist of Symbols and Strings. Returns the part types and slot documentation which has been specified for the given slot, from most specific to least specific in the CLOS inheritance order. Note that the slot must be specified as a keyword symbol (i.e. prepended with a colon (":")), otherwise it will be evaluated as a variable according to normal Lisp functional evaluation rules. :arguments (slot "Keyword Symbol. Names the slot for which documentation is being requested.")

slot-sourcefunctionfrom vanilla-mixin*

Body of GDL code, in list form.

:arguments (slot "Keyword Symbol. Names the slot for which documentation is being requested.")

slot-statusfunctionfrom vanilla-mixin*

Keyword symbol. Describes the current status of the requested slot:

  • :unbound: it has never been demanded.

  • :invalidated: it was demanded at some point, but something it depends on has been modified since; it is currently unbound and will be re-evaluated on next demand.

  • :evaluated: it has been demanded and it is currently bound to the default value based on the code.

  • :set: (for :settable slots only, which includes all required :input-slots) it has been modified and is currently bound to the value to which it was explicitly set.

  • :toplevel: (for root-level object only) its value was passed into the root-level object as a toplevel input at the time of object instantiation.

standard-saved-slotscomputed-slotfrom layout-mixin

List of keyword symbols. The first of this list is the name-for-display of this object. The rest of the list are all the keyword symbols representing the settable computed-slots and input-slots which have a default value. Required input-slots (i.e. input-slots without a default value) are not included in this list. If you wish to include required inputs with the saved-slots, you should explicitly append them to this list when specifying the saved-slots.

standard-viewsoptional-input-slotfrom base-html-graphics-sheet

Plist of keywords and 3D vectors. Indicates the views to show in the graphics controls.

strings-for-displayoptional-input-slotfrom vanilla-mixin*

String or List of Strings. Determines how the name of objects of this type will be printed in most places. This defaults to the name-for-display (generally the part's name as specified in its parent), followed by an index number if the part is an element of a sequence.

targetoptional-input-slotfrom base-html-sheet

String. Name of a browser frame or window to display this page. Default of NIL indicates to use the same window.

toggle-slot!functionfrom vanilla-mixin*

Void. Sets giving slot to its boolean opposite. &args (slot "Keyword symbol. Name of the slot as a keyword symbol.")

transitory-slotsoptional-input-slotfrom base-html-sheet

List of keyword symbols. Messages corresponding to form fields which should not be retained against Updates to the model (e.g. calls to the update! function or hitting the Update button or link in the browser in development mode). Defaults to NIL (the empty list).

tree-bgcoloroptional-input-slotfrom layout-mixin

Keyword symbol. Color keyword from color-table for the tree area background. Defaults to :aquamarine.

tree-titleoptional-input-slotfrom layout-mixin

String. Title for the Tree section. Defaults to "Assembly Tree" if the tree-root is only a subclass of application-mixin, and "Assembly Tree" if the tree-root is an actual node with child applications.

typecomputed-slotfrom vanilla-mixin*

Symbol. The GDL Type of this object.

ui-display-list-leavescomputed-slot

List of GDL objects. This should be overridden with a list of objects of your choice. These objects (not their leaves, but these actual nodes) will be scaled to fit and displayed in the graphics area. Defaults to NIL.

ui-display-list-objectscomputed-slot

List of GDL object roots. The leaves of these objects will be displayed in the graphics. Defaults to the appended result of children's ui-display-list-objects.

update!functionfrom vanilla-mixin*

Void. Uncaches all cached data in slots and objects throughout the instance tree from this node, forcing all code to run again the next time values are demanded. This is useful for updating an existing model or part of an existing model after making changes and recompiling/reloading the code of the underlying definitions. Any set (modified) slot values will, however, be preserved by the update.

urlcomputed-slotfrom base-html-sheet

String. The canonical web address in the current session which points at this page. Also see full-url. Published on demand.

use-bsplines?optional-input-slotfrom base-html-graphics-sheet

Boolean. Determines whether to use native bspline data in the vrml

use-standard-saved-slots?defaulted-input-slotfrom layout-mixin

Boolean. Determines whether the standard-saved-slots are automatically used by default for the saved-slots. This is a trickle-down slot so its value will be passed to descendent objects automatically. The default value is NIL.

vertexfunctionfrom base-object

3D Point. Returns the center of the requested vertex (corner) of this object's reference box. :arguments (direction-1 "Keyword. One of the standard direction keywords: :right, :left, :rear, :front, :top, :bottom." direction-2 "Keyword. A standard direction keyword orthogonal to direction-1." direction-3 "Keyword. A standard direction keyword orthogonal to direction-1 and direction-2.")

viewsettable-optional-input-slotfrom base-html-graphics-sheet

Keyword symbol. Determines the default view from the standard-views. Defaults to :trimetric.

view-objecthidden-objectfrom layout-mixin

GDL web-drawing object. This must be overridden in the specialized class.

violated-rulesoptional-input-slotfrom layout-mixin

List of GDL objects of type base-rule-object or (preferably) gwl-base-rule-object. Links to these will be displayed in the other-rules section. Default to the collection of all objects of type base-rule-object from this node in the tree down to the leaves, whose violated? message evaluates to non-NIL.

violated-rules-bgcoloroptional-input-slotfrom layout-mixin

Keyword symbol. Color keyword from color-table for the violated-rules area background. Defaults to :aquamarine.

violated-rules-titleoptional-input-slotfrom layout-mixin

String. Title for the violated-rules section. Defaults to "Violated Rules".

visible-childrenoptional-input-slotfrom vanilla-mixin*

List of GDL Instances. Additional objects to display in Tatu tree. Typically this would be a subset of hidden-children. Defaults to NIL.

widthoptional-input-slotfrom layout-mixin

Number. Width of the graphics viewport. Default is 300.

write-child-linksfunctionfrom base-html-sheet

Void. Creates a default unordered list with links to each child part of self. The text of the links will come from each child's strings-for-display.

write-development-linksfunctionfrom base-html-sheet

Void. Writes links for access to the standard developer views of the object, currently consisting of an update (Refresh!) link, a Break link, and a ta2 link.

write-embedded-vrml-worldfunctionfrom base-html-graphics-sheet

Void. Writes an EMBED tag and publishes a VRML world for the view-object child of this object. The view-object child should exist and be of type web-drawing.

write-embedded-x3d-worldfunctionfrom base-html-graphics-sheet

Void. Writes an OBJECT tag and publishes an X3D world for the view-object child of this object. The view-object child should exist and be of type web-drawing.

write-geometryfunctionfrom base-html-graphics-sheet

Void. Writes an image tag and publishes an image for the view-object child of this object. The view-object child should exist and be of type web-drawing.

For objects of type gwl:application-mixin or gwl:node-mixin, this is done automatically.

For the time being, we recommend that you use gwl:application-mixin or gwl:node-mixin if you want to display geometric parts in a GWL application.

:&key ((include-view-controls? t) "Boolean. Determines whether the standard view controls are displayed below the image.")

write-html-sheetfunctionfrom layout-mixin

Void. This GDL function should be redefined to generate the HTML page corresponding to this object. It can be specified here, or as the main-sheet output-function in an html-format lens for this object's type. This write-html-sheet function, if defined, will override any main-sheet function defined in the lens. Typically a write-html-sheet function would look as follows:

:example

 (write-html-sheet
  ()
  (html (:html (:head (:title (:princ (the :page-title))))
               (:body ;;; fill in your body here

               ))))
write-saved-slotsfunctionfrom layout-mixin

Void. Writes the unique application name names and values of all saved-slots in this and all descendants which are of type node-mixin or application-mixin.

:&key ((filename-or-stream "/tmp/<object type>") "String, pathname, or stream. Name or stream for file to be written")

write-self-linkfunctionfrom base-html-sheet

Void. Emits a hyperlink pointing to self. Note that if you need extra customization on the display-string (e.g. to include an image tag or other arbitrary markup), use with-output-to-string in conjunction with the html-stream macro.

:&key ((display-string (the :strings-for-display)) "String. String to be displayed." (display-color nil) "Keyword symbol or HTML color string. Determines the color of the displayed link text. Default of NIL indicates web browser default (usually blue)." (target (the :target)) "String. Names a frame or window to open the link when clicked." (class nil) "String. Names a stylesheet class." (id nil) "String. Names a stylesheet id." (on-mouse-over nil) "String. Javascript code to run on mouse over." (on-mouse-out nil) "String. Javascript code to run on mouse out.")

write-snapshotfunctionfrom vanilla-mixin*

Void. Writes a file containing the toplevel inputs and modified settable-slots starting from the root of the current instance. Typically this file can be read back into the system using the read-snapshot function.

:&key ((filename "/tmp/snap.gdl") "String or pathname. The target file to be written." (root-paths-to-ignore nil) "List of root-paths or nil. Any objects with matching root-path will be ignored for the snapshot write." )

write-standard-footerfunctionfrom base-html-sheet

Void. Writes some standard footer information. Defaults to writing Genworks and Franz copyright and product links. Note that VAR agreements often require that you include a "powered by" link to the vendor on public web pages.

zoom-factorsettable-optional-input-slotfrom base-html-graphics-sheet

Number. The factor used for zooming in or out.

zoom-modesettable-optional-input-slotfrom base-html-graphics-sheet

Keyword symbol, one of :in, :out, or :none, or nil. If :in, then clicks in the graphics area will increase the zoom factor by (the zoom-factor). If :out, then clicks will decrease the factor by that amount. If :none or nil, then clicks will have no effect.