Package Documentation

Object: POINT (The :GEOM-BASE Package)
Mixins: SPHERE

Description

Visual representation of a point as a small view-independent crosshair. This means the crosshair will always appear in a ``top'' view regardless of the current view transform. The crosshair will not scale along with any zoom state unless the scale? optional input-slot is non-NIL. The default color for the crosshairs is a light grey (:grey-light-very in the *color-table*).


Input Slots (optional)

CROSSHAIR-LENGTH number

Distance from center to end of crosshairs used to show the point. Default value is 3.


END-ANGLE [from ARCOID-MIXIN] angle in radians

End angle of the arc. Defaults to twice pi.


END-HORIZONTAL-ARC [from SPHERE] angle in radians

Ending horizontal angle for a partial sphere. Default is twice pi.


END-VERTICAL-ARC [from SPHERE] angle in radians

Ending vertical angle for a partial sphere. Default is pi/2.


HIDDEN? [from VANILLA-MIXIN*] boolean

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


IMAGE-FILE [from 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


INNER-RADIUS [from SPHERE] number

Radius of inner hollow for a hollow sphere. Default is NIL, for a non-hollow sphere.


LOCAL-BOX [from 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.


NUMBER-OF-HORIZONTAL-SECTIONS [from SPHERE] number

How many lines of latitude to show on the sphere in some renderings. Default value is 4.


NUMBER-OF-VERTICAL-SECTIONS [from SPHERE] number

How many lines of longitude to show on the sphere in some renderings. Default value is 4.


OBLIQUENESS [from BASE-OBJECT] 3x3 orthonormal matrix of double-float numbers

This is synonymous with the orientation.


ONCLICK-FUNCTION [from BASE-OBJECT] 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 support this functionality, e.g. SVG/Raphael and X3DOM.


RADIUS [from SPHERE] number

Distance from center to any point on the sphere.


ROOT [from VANILLA-MIXIN*] gdl instance

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


SAFE-CHILDREN [from 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


SCALED? boolean

Indicates whether the crosshairs drawn to represent the point are scaled along with any zoom factor applied to the display, or are fixed with respect to drawing space. The default is NIL, meaning the crosshairs will remain the same size regardless of zoom state.


START-ANGLE [from ARCOID-MIXIN] angle in radians

Start angle of the arc. Defaults to zero.


START-HORIZONTAL-ARC [from SPHERE] angle in radians

Starting horizontal angle for a partial sphere. Default is 0.


START-VERTICAL-ARC [from SPHERE] angle in radians

Starting vertical angle for a partial sphere. Default is -pi/2.


STRINGS-FOR-DISPLAY [from 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.


VISIBLE-CHILDREN [from 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.



Input Slots (optional, defaulting)

CENTER [from BASE-OBJECT] 3d point

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


DISPLAY-CONTROLS [from 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.


ORIENTATION [from BASE-OBJECT] 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).



Computed Slots

BOUNDING-BOX [from 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.


Examples


 (in-package :gdl-user)

 (define-object point-sample (base-object)
   
   :objects
   ((bezier :type 'bezier-curve
            :control-points (list (make-point 0 0 0)
                                  (make-point 1 1 0)
                                  (make-point 2 1 0)
                                  (make-point 3 0 0)))
    (points-to-show :type 'point
                    :sequence (:size (length (the bezier control-points)))
                    :center (nth (the-child :index) 
                                 (the bezier control-points))
                    :radius 0.08
                    :display-controls (list :color :blue))))

 (generate-sample-drawing :object-roots (make-object 'point-sample))

Package Documentation