"Fossies" - the Fresh Open Source Software Archive

Member "brlcad-7.32.4/doc/mged/d.tex" (29 Jul 2021, 29029 Bytes) of package /linux/misc/brlcad-7.32.4.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) TeX and LaTeX source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 \chapter{VIEWING FUNCTIONS}
    2 
    3 The MGED viewing features are designed to allow one to examine an object
    4 in close detail.  Any of the viewing features can be invoked at any time.
    5 It should be noted, that these functions do not change the actual data,
    6 only the way the data is displayed.
    7 
    8 \section{Preset Views}
    9 
   10 Six standard views (front, rear, top, bottom, left, and right) and one
   11 oblique view (azimuth 35, elevation 25 isometric) are each assigned to the
   12 function buttons, views 35 25 (isometric), top, right, front,
   13 45 45 are available from the screen editor menu.  Hence, any of these views
   14 is immediately available at the press of the appropriate function button or
   15 mouse selection.  The views available are not limited to these standard views
   16 however, as the display can be rotated to any view by using the dial box.  By
   17 pressing the function button labeled ``save view'' or entering
   18 the keyboard {\em saveview} command, the present view as displayed display is
   19 saved (used for raytracing,
   20 producing colored pictures, which will be discussed later).
   21 At any time, the saved view can be immediately returned to the
   22 screen by pressing the ``restore view'' function button.  The
   23 ``restore view'' button will be lit whenever a view has been saved.
   24 The function button labeled ``reset'',
   25 restores the display to the default view (front) when pressed.
   26 
   27 \section{View Translation}
   28 
   29 The displays can be panned or slewed on the screen in two ways -- using the
   30 mouse pointer or by using the dial box knobs.  When one is editing, the mouse
   31 functions are not available for slewing, hence one must use the dial box knobs
   32 to slew the display.
   33 
   34 To slew the display using the control knobs, one uses the knobs labeled
   35 ``slew x'' or ``slew y''.  The null positions on these knobs is in the
   36 center or straight up.  If the ``slew x'' knob is turned clockwise of center,
   37 the display will move to the right.  If it turned counterclockwise, the
   38 display will move to the left.  For the ``slew y'' central knob, clockwise
   39 of the center moves the display up and counterclockwise moves the display
   40 down.  The further these knobs are turned from center, the faster the display
   41 moves.
   42 
   43 \section{View Zooming}
   44 
   45 One can zoom the display by using the dial box knob labeled ``zoom''.
   46 Again the null position of this knob is center or straight
   47 up.  Turning this knob clockwise of center causes the display to increase in
   48 size producing a zoom-in effect.  Turning this knob counterclockwise of center
   49 causes the display to decrease in size or zoom-out.  Again, the further the
   50 ``zoom'' knob is turned from center, the faster the zooming will occur.
   51 
   52 \begin{figure}
   53 \centering \includegraphics{adc.ps}
   54 \caption{The Angle Distance Cursor.}
   55 \label{adc}
   56 \end{figure}
   57 
   58 \section{The Angle Distance Cursor (ADC)}
   59 
   60 The angle distance cursor is a construction aid used to measure
   61 angles and distances. It should be noted that all measurements are
   62 made in the projected space of the screen, so one should measure only
   63 in a view normal to the surface where the measurement is to take place.
   64 The ADC is placed on (or removed from) the display by pushing the ``ADC''
   65 button.
   66 The ADC consists of three cursors which cover the entire screen.
   67 Figure \ref{adc} depicts the ADC as it appears on the screen.
   68 All the cursors are centered at the same point and can be moved to any
   69 location on the screen.  Two of these cursors rotate for angle measuring
   70 purposes. Angle cursor 1 is solid while angle cursor 2 is dashed.  Angle
   71 cursor 1 has movable tic marks for measuring distances on the screen.
   72 The two angle cursors move with the horizontal and vertical
   73 lines of the main cursor.
   74 The resulting effect is the moving of the center point
   75 horizontally or vertically.
   76 The ADC is controlled by the bottom row
   77 of the (Megatek) knobs:
   78 
   79 \begin{tabular}{rl}
   80 Knob  & Function \\
   81  \\
   82 6     & moves the center in the horizontal direction \\
   83 7     & moves the center in the vertical direction \\
   84 8     & rotates angle cursor 1  (alpha) \\
   85 9     & rotates angle cursor 2  (beta) \\
   86 10    & moves the tic marks
   87 \end{tabular}
   88 
   89 Whenever the ADC is on the screen, there is a readout at the bottom of
   90 the screen listing pertinent information about the ADC.
   91 This information includes the angles that angle cursors 1 and 2
   92 have been rotated (alpha and beta), the distance the tic marks are
   93 from the center of the ADC, and the location of the center of the ADC.
   94 This information is continually updated on the screen.
   95 
   96 \chapter{MGED EDITING FEATURES}
   97 
   98 The heart of the MGED system is its editing features.
   99 The editing features are divided into two classes: object editing
  100 and solid editing.
  101 Object editing is designed to allow one to change the location,
  102 size, and orientation of an object.
  103 Recall that an object is defined as the basic data unit of the
  104 MGED system and includes both combinations and solids.
  105 In the case of a solid, one needs to change not only its location,
  106 size, and orientation, but also its ``shape''.
  107 Changing the shape of a solid means changing any of its individual parameters.
  108 Hence, solid editing is handled separately.
  109 
  110 \section{Combination Editing (OBJECT EDIT)}
  111 
  112 Before being able to enter the OBJECT EDIT state
  113 (i.e. edit non-terminal),
  114 it is necessary to pass through two intermediate states
  115 in which the full path of an object to be edited is specified,
  116 and the location of one arc along that path is designated for editing.
  117 It is possible to create a transformation matrix to be applied
  118 above the root of the tree, affecting everything in the path,
  119 or to apply the matrix between any pair of nodes.
  120 For example, if the full path /car/chassis/door is specified,
  121 the matrix could be applied above the node ``car'', between
  122 ``car/chassis'', or between ``chassis/door''.
  123 
  124 The transformation matrix to be applied at the
  125 designated location can be created by the concatenation of
  126 operations, each specified through several types of user direction.
  127 Trees can be rotated around the center of the viewing cube;
  128 this rotation can be specified in degrees via keyboard command, or can
  129 be controlled by the rotation of a set of control dials or motions on
  130 a three-axis joystick.
  131 Translation of trees can be specified in terms of a precise new location
  132 via keyboard command, or by adjusting a set of control dials.
  133 Tree translation can also be accomplished by pointing and
  134 clicking with the mouse or tablet.
  135 Uniform and single-axis (affine) scaling of a tree can be controlled
  136 by a numeric scale factor via keyboard command, or by way of repeated
  137 analog scaling by pointing and clicking with the mouse or tablet.
  138 Before we discuss the editing features of MGED, we will discuss
  139 how one selects objects for editing.
  140 
  141 \section{Selecting Objects For Editing}
  142 
  143 To select a displayed object for editing, press the object illuminate button
  144 or select ``Object illum'' from the ***BUTTON MENU***.
  145 The object selection is a two step process.
  146 
  147 Whenever an object is displayed (using the {\em e} command), all paths in the
  148 object's hierarchy are traversed recursively, accumulating the transformation
  149 matrices.  When the bottom of the path (a solid) is encountered, the
  150 accumulated
  151 transformations are applied to the solid's parameters and the solid is drawn.
  152 Thus every solid displayed is really a path ending with that solid.
  153 If the object has been displayed using the {\em E} command, the same procedure
  154 is followed, but only until a region is encountered.
  155 Then all members of the region have the accumulated transformations
  156 applied and the region is then ``evaluated'' and drawn.
  157 
  158 In the first step of the object selection process, the path is selected.
  159 Again, the data tablet is divided in as many horizontal sections as there are
  160 paths drawn.
  161 The path (solid or evaluated region) corresponding to the horizontal
  162 section the pen/mouse is located in will be illuminated (brighter on B/W
  163 displays and white on color displays).
  164 This complete path is also listed on the display.
  165 When the pen/mouse is pressed the illuminated path is selected.
  166 
  167 In the second step, a member of the selected path is chosen.
  168 All editing will then be applied to this member.
  169 The tablet is divided into as many horizontal sections as there are
  170 path members.
  171 The word ``[MATRIX]'' is used to illuminate path members and will appear
  172 above the member corresponding to the location of the pen/mouse.
  173 Pressing the pen/mouse when the desired path member is ``illuminated''
  174 will put MGED in the object edit state.
  175 The editing will be performed on the path member selected.
  176 
  177 If a solid is located at the bottom of this path, it becomes the key
  178 solid and its vertex becomes the key point.
  179 If an evaluated region is at the bottom of the path, the center of
  180 this region becomes the key point.
  181 All object editing is done with respect to this key point.
  182 
  183 The object editing features can be invoked in any order and at any time
  184 once an object has been selected for editing.  During object editing, any of
  185 the viewing features, such as changing views, zooming, and slewing, can be
  186 used, and in fact, are usually quite useful.  Again, the only way to exit the
  187 object editing mode is to ``accept'' or ``reject'' the editing.
  188 If the ``reject'' button is pressed (or selected from the edit menu), the
  189 object will return to its pre-edit state.  If the ``accept'' button is pressed
  190 (or selected from the edit menu), the data base will be changed to reflect the
  191 object editing performed.
  192 
  193 \section{Object Edit State}
  194 
  195 When MGED enters the object edit state, the following occurs:
  196 
  197 \begin{enumerate}
  198 \item all the solids/evaluated regions of the edited object
  199 become illuminated
  200 \item the key solid's parameters are labeled  OR \\
  201 the center of the key evaluated region is marked
  202 \item the key solid's parameters are listed and
  203 continually updated  OR \\
  204 the key evaluated region's center is listed and
  205 continually updated
  206 \item the ***OBJ EDIT*** menu is displayed
  207 \end{enumerate}
  208 
  209 \section{Translate An Object}
  210 
  211 There are three ways to translate an object:  translate in the screen
  212 X direction only (X move), translate in the screen Y direction only
  213 (Y move) or just straight translation (XY move).
  214 In all cases, the complete object is translated so that the ``key point''
  215 is positioned at the desired location.
  216 The {\em translate} command is used to enter a precise location (x,y,z) for
  217 the key point.
  218 Entering {\em translate x y z} will move the complete object so that the key
  219 point will be at coordinates (x,y,z).
  220 
  221 \section{Rotate An Object}
  222 
  223 Rotation of the object may be accomplished by selecting the ``Rotate''
  224 menu item, or pressing the ``Rotate'' button.
  225 Turning the knobs results in the object being rotated.
  226 The {\em rotobj x y z} command can be used here, to specify
  227 a precise rotation in degrees.
  228 While in this edit state, the only way to rotate view is to use
  229 the {\em vrot x y z} command.
  230 
  231 \section{Scale An Object}
  232 \subsection{Global Scale}
  233 
  234 To select global object scale, press the object scale button or select
  235 ``Scale'' from the ***OBJ EDIT*** menu.
  236 When the pen/mouse is pressed, the edited object is scaled about the key
  237 point by an amount
  238 proportional to the distance the pen/mouse is from the center of the screen.
  239 If the pen/mouse is above the center, the edited object will become larger.
  240 If it is below the center, the object will become smaller.
  241 The {\em scale} command can be used to enter precise scale factors.
  242 The value entered is applied to the object as it existed when object
  243 scale was entered.
  244 Hence entering {\em scale 1} will return the object to its size when the
  245 object scale session first started.
  246 
  247 \subsection{Local Scale}
  248 
  249 Local object scaling is allowed about any of the coordinate axes.
  250 To select local scaling, press one of the buttons (OBJ Scale X, OBJ Scale Y,
  251 or OBJ Scale Z) or select ``Scale X'', ``Scale Y'', or ``Scale Z'' from
  252 the ***OBJ EDIT*** menu.
  253 When the pen/mouse is pressed, the edited object is scaled in the selected
  254 coordinate axis only, about the key point.
  255 The amount of scaling is proportional to the distance the pen/mouse is
  256 from the center of the screen.
  257 If the pen/mouse is above the center, the edited object will become larger
  258 in the selected axis direction.
  259 If it is below the center, the object will become smaller in the selected
  260 axis direction.
  261 The {\em scale} command can be used to enter precise scale factors.
  262 The value entered is applied to the object as it existed when local object
  263 scale was entered.
  264 Hence entering {\em scale 1} will return the object (in the selected axis
  265 direction) to its size when the object scale session first started.
  266 
  267 \section{Solid Editing}
  268 
  269 There are two classes of editing operations that can be performed on
  270 leaf nodes, the primitive solids.
  271 The first class of operations are generic operations which can be applied to
  272 any type of solid, and the second class of operations are those operations
  273 which are specific to a particular type of solid.
  274 Generic operations which can be applied to all primitive solids are
  275 rotation, translation and scaling.
  276 Recall that primitives can be treated as any other object and ``object
  277 edited'' as detailed above.
  278 Each primitive solid also has a variety of editing operations available that
  279 are specific to the definition of that solid.  These operations are
  280 detailed below.
  281 
  282 The solid editing mode is necessary to
  283 perform to basic shapes of solids.
  284 Precise modifications
  285 of the shape are possible (using the {\em p} keyboard command) in the solid
  286 editing mode.
  287 
  288 The solid editing feature allows the user to interactively translate,
  289 rotate, scale, and modify individual parameters of a solid.  Whenever one is
  290 in the solid edit mode, the parameters of the solid being edited are listed
  291 and continually updated at the top of the screen.  Certain parameters are
  292 also labeled on the solid being edited.  Solid editing  is generally used to
  293 ``build'' objects by producing solids of the desired shape and size in the
  294 correct orientation and position.  Once the object is built, object editing
  295 is used to scale, orient, and position the object in the description.  The
  296 general philosophy of solid editing is to first create a solid with the
  297 desired name and then to edit this solid.  As an example, suppose one were
  298 to build an object called ``BRACKET''; to produce the base of the object the
  299 primitive solid type ARB8 (see Figure 1) would be used along with either the
  300 {\em in} command or {\em make} command, so one would type:
  301 \begin{verse}
  302      in btm box 0 0 0  0 -90 0  40 0 0  0 0 6 \\
  303      make block arb8
  304 \end{verse}
  305 A new solid called ``btm'' or ``block'' would be created and displayed on the
  306 screen.  These solids would then be edited using solid editing to produce the
  307 solid parameters for the shape desired.
  308 
  309 \section{Selecting Solids For Editing}
  310 
  311 The procedure for solid editing is quite similar to that for object editing.
  312 First, solid edit state must be entered, by pressing the
  313 ``solid illuminate'' button, or selecting the ``solid illum'' menu item.
  314 Second,
  315 A solid is selected for
  316 editing using the illuminate mode, just as in object editing,
  317 by moving the cursor up and down, and choosing the desired solid.
  318 The solid data is listed at the top of the screen and a
  319 header depending on the solid type is written above the solid editing data.
  320 Third, select the appropriate function button or edit menu operations,
  321 and perform the editing desired.  Finally, the solid
  322 editing mode is exited
  323 by either accepting or rejecting the editing performed.
  324 
  325 A solid must be displayed before it can be picked for editing.
  326 To pick a displayed solid for editing, press the ``solid illum'' button or
  327 select ``Solid Illum'' from the ***BUTTON MENU***.
  328 The data tablet and pen/mouse are then used to pick the solid.
  329 The surface of the data tablet is divided into as many horizontal sections
  330 as there are solids displayed.
  331 The displayed solid corresponding to the horizontal section the pen/mouse
  332 is located in will be ``illuminated'' (it will become brighter on black and
  333 white devices and white on color devices).
  334 The complete hierarchical path to reach the solid is also listed on the
  335 display.  When the pen/mouse is pressed, MGED enters the solid edit state
  336 with the illuminated solid as the solid to be edited.
  337 If the solid is not multiply referenced, entering {\em sed solidname} on
  338 the keyboard will immediately put MGED in the solid edit state with
  339 {\em solidname} as the edited solid.
  340 
  341 \section{Solid Edit State}
  342 
  343 When MGED enters the solid edit state, the following occurs:
  344 
  345 \begin{enumerate}
  346 \item the edited solid remains illuminated
  347 \item the edited solid's parameters are labeled
  348 \item the edited solid's parameters are listed
  349 \item  (and continually updated)
  350 \item the ***SOLID EDIT*** menu is displayed
  351 \item the parameter edit menu is initially displayed (default)
  352 \end{enumerate}
  353 
  354 \section{Rotate A Solid}
  355 
  356 Solid rotation allows the user to rotate the solid being edited to any
  357 desired orientation.  The rotation is performed about the vertex of the
  358 solid.  To select this option, one presses the function button labeled
  359 ``solid rotate'' or selects from the edit menu on screen.
  360 The rotation can be done using the dial box or one can input exact angles
  361 of rotation of the solid by using the {\em p} keyboard command.
  362 For example, typing:
  363 {\em \center
  364 p alpha beta gamma
  365 }
  366 will rotate the solid {\em alpha} degrees about the x-axis, {\em beta} degrees
  367 about the y-axis and {\em gamma} degrees about the z-axis.  Alpha, beta, and
  368 gamma are measured from the original ``zero'' orientation of the solid,
  369 defined when the ``solid edit'' function button was
  370 pressed.  Hence, typing
  371 {\em \center
  372 p 0 0 0
  373 }
  374 will always return the solid to its original position (its position when the
  375 current solid editing session began) before accepting edit.
  376 
  377 To select solid rotation, press the solid rotate button or select ``Rotate''
  378 from the ***SOLID EDIT*** menu.
  379 The joy stick or appropriate rotation knobs then will rotate the edited solid
  380 about the coordinate axes.
  381 The solid is rotated about its vertex.
  382 The parameter (p) command can be used to make precise rotation changes.
  383 The values entered after the p are absolute -- the rotations are applied
  384 to the solid as it existed when solid rotation was first selected.
  385 Thus entering {\em p 0 0 0} will ``undo'' any rotations performed since
  386 solid rotation was selected.
  387 The rotation about the z-axis is done first, then the y, then the x.
  388 
  389 \section{Translate A Solid}
  390 
  391 Solid translation allows the user to place the solid being edited anywhere
  392 in the description.  To invoke this option, one presses the function
  393 button labeled ``solid trans'' or selects from the screen edit
  394 menu.  To move the solid, use the mouse pointer to position the solid and
  395 click the center mouse button.  Whenever the mouse button is pressed, the
  396 VERTEX of the solid moves to that location on the screen.
  397 
  398 One can read the actual coordinates of the vertex on the top of the
  399 screen, along with other data.  If the actual desired coordinates of the
  400 vertex are known, one can place the solid exactly using the {\em p} keyboard
  401 command.  For example, to place a solid's vertex at the coordinates (x,y,z)
  402 one would type:
  403 {\em \center
  404 p40 20 10
  405 }
  406 The solid would then jump to this location.
  407 
  408 To select solid translation, press the solid translate button or
  409 select ``Translate'' from the ***SOLID EDIT*** menu.
  410 When the pen/mouse is pressed, the vertex of the edited solid will
  411 move to that location.
  412 The parameter (p) command can be used to translate the solid to
  413 a precise location.
  414 Entering {\em p x y z} will place the vertex of the edited solid at (x, y, z).
  415 
  416 \section{Scale A Solid}
  417 
  418 The solid SCALE feature allows the user to scale the solid being to any
  419 desirable size.  The scaling is done about the vertex of the solid, hence NO
  420 translation of the solid occurs.  The scaling is performed using the mouse
  421 pointer and clicking the center mouse button, just as in object scaling.  One
  422 can input an exact scale factor using the {\em p} keyboard command, in the form
  423 of.  For example, typing
  424 {\em \center
  425 p factor
  426 }
  427 will scale the solid by an amount equal to {\em factor}.   The value of
  428 {\em factor} is absolute -- the original solid is scaled.  By setting {\em factor}
  429 equal to one (1), the original size solid will be displayed on the screen
  430 before accepting your edit.
  431 
  432 To select solid scale, press the solid scale button or select ``Scale''
  433 from the ***SOLID EDIT*** menu.
  434 When the pen/mouse is pressed, the edited solid is scaled by an amount
  435 proportional to the distance the pen/mouse is from the center of the screen.
  436 If the pen/mouse is above the center, the edited solid will become larger.
  437 If it is below the center, the solid will become smaller.
  438 The parameter (p) command can be used to enter precise scale factors.
  439 The value entered is applied to the solid as it existed when solid
  440 scale was entered.
  441 Hence entering {\em p 1} will return the solid to its size when solid scale
  442 session first started.
  443 
  444 \section{Solid Parameter Editing}
  445 
  446 To modify individual solid parameters, press the menu button or select
  447 ``edit menu'' from the ***SOLID EDIT*** menu.
  448 A menu listing what parameter editing is available for that particular
  449 solid type will be displayed.
  450 Using the pen/mouse select the desired item(s) from this menu.
  451 For most of the parameter editing, the {\em p} command can be used to
  452 make precise changes.
  453 Parameter editing is the default edit mode entered when MGED first
  454 enters the solid edit state.
  455 In the following paragraphs, we will discuss parameter editing
  456 for each of the MGED general types of solids.
  457 
  458 \begin{figure}
  459 \centering \includegraphics{menu-arb-ctl.ps}
  460 \caption{ARB Control Menu.}
  461 \label{menu-arb-ctl}
  462 \end{figure}
  463 
  464 \subsection{ARB Parameter Editing}
  465 
  466 The GENERAL ARB class of solids represents all the convex polyhedrons
  467 (RPP, BOX, RAW, and ARBs).
  468 The ARBs comprise five classes of polyhedrons each with a characteristic
  469 number of vertices.
  470 These are the ARB8, ARB7, ARB6, ARB5, and ARB4, where the ARB8 has
  471 eight vertices, etc.
  472 During editing, all the vertices are labeled on the screen.
  473 
  474 An ARB is defined by a fixed number of vertices where all faces must
  475 be planar.  This fact means that during parameter editing, movement
  476 of individual vertices in faces containing four vertices is not allowed.
  477 There are three classes of parameter editing that can be done to ARBs:
  478 move edges,
  479 move faces, and rotate faces.  There is an ``ARB control menu''
  480 (see Figure \ref{menu-arb-ctl}) from
  481 which one selects the type of parameter editing to be done.
  482 A specific ARB edit menu will appear dependent on which parameter editing
  483 option was selected.  The ``return'' entry on each of these specific menus
  484 will return the ``ARB control'' menu to the screen.
  485 
  486 Note that there are several keyboard commands that apply only to ARB solids
  487 which are being edited in SOLID EDIT state.
  488 Once such command is {\em mirface}, which replaces a designated
  489 face of the ARB with a copy of an original face mirrored about
  490 the indicated axis.
  491 Another such command is {\em extrude}, which projects a designated face
  492 a given amount in the indicated direction.
  493 
  494 \begin{figure}
  495 \centering \includegraphics{menu-arb8-edge.ps}
  496 \caption{Move Edge Menu for ARB8.}
  497 \label{menu-arb8-edge}
  498 \end{figure}
  499 
  500 \begin{figure}
  501 \centering \includegraphics{menu-arb4-edge.ps}
  502 \caption{Move Edge Menu for ARB4.}
  503 \label{menu-arb4-edge}
  504 \end{figure}
  505 
  506 \begin{figure}
  507 \centering \includegraphics{menu-arb8-face.ps}
  508 \caption{Move Face Menu for ARB8.}
  509 \label{menu-arb8-face}
  510 \end{figure}
  511 
  512 \begin{figure}
  513 \centering \includegraphics{menu-arb4-face.ps}
  514 \caption{Move Face Menu for ARB4.}
  515 \label{menu-arb4-face}
  516 \end{figure}
  517 
  518 \subsection{Move ARB Edges}
  519 
  520 To move an ARB edge, select the desired edge from the ``move edge'' menu.
  521 For example, Figure \ref{menu-arb8-edge} shows the menu for
  522 moving an edge of an ARB8, and Figure \ref{menu-arb4-edge}
  523 shows the menu for moving an edge of an ARB4.
  524 A point is then ``input'' either through a pen press or through the {\em p}
  525 command.
  526 The line containing the selected edge is moved so that it goes through
  527 coordinate of the input point.
  528 Any affected faces are automatically adjusted to remain planar.
  529 
  530 \subsection{Move ARB Faces}
  531 
  532 To move an ARB face, select the desired face from the ``move face'' menu.
  533 A point is then ``input'' either through a pen press or through the {\em p}
  534 command.  The plane containing the edited face is then moved so that it
  535 contains the input point.  The new face is then calculated and the ARB
  536 is displayed.
  537 The move face menus for an ARB8 are shown
  538 in Figure \ref{menu-arb8-face}, and the move face menus for an ARB4
  539 are shown in Figure \ref{menu-arb4-face}.
  540 
  541 \begin{figure}
  542 \centering \includegraphics{menu-arb8-rot.ps}
  543 \caption{Rotate Face Menu for ARB8.}
  544 \label{menu-arb8-rot}
  545 \end{figure}
  546 
  547 \begin{figure}
  548 \centering \includegraphics{menu-arb4-rot.ps}
  549 \caption{Rotate Face Menu for ARB4.}
  550 \label{menu-arb4-rot}
  551 \end{figure}
  552 
  553 \subsection{Rotate ARB Faces}
  554 
  555 ARB faces may be rotated around any of the vertices comprising that face.
  556 First, select the desired face from the ``rotate face'' menu.  You will then
  557 be asked to select the vertex number around which to rotate the face.
  558 The face can be rotated about the three coordinate axes.  The knobs (Rotate X,
  559 Rotate Y, and Rotate Z) are used for this purpose.  For precise rotations,
  560 use the {\em p} command.  If three values are entered after the {\em p}, then
  561 they are interpreted as angles (absolute) of rotation about the X, Y, Z axes
  562 respectively.  If only two values are entered, then they are considered as
  563 rotation and fallback angles for the normal to that face.  The {\em eqn}
  564 command can also be used here to define the plane equation coefficients of
  565 the face being rotated.
  566 The rotate face menus for an ARB8 are shown
  567 in Figure \ref{menu-arb8-rot}, and the rotate face menus for an ARB4
  568 are shown in Figure \ref{menu-arb4-rot}.
  569 
  570 \begin{figure}
  571 \centering \includegraphics{ped-tgc.ps}
  572 \caption{Typical TGC During Parameter Editing.}
  573 \label{ped-tgc}
  574 \end{figure}
  575 
  576 \subsection{Truncated General Cone (TGC) Parameter Editing}
  577 
  578 The TGC general class of solids includes all the cylindrical COMGEOM solids.
  579 The defining parameters of the TGC are two base vectors (A and B), a height
  580 vector (H), two top vectors (C and D), and the vertex (V).
  581 The top vectors C and D are directed the same as the base vectors A and
  582 B respectively,
  583 hence the top vectors are defined only by their lengths (c and d).
  584 During solid editing, only vectors A and B are
  585 labeled on the display.
  586 Figure \ref{ped-tgc} depicts a typical TGC during parameter editing.
  587 
  588 It is possible to change the length of the H, A, B, C, or D
  589 vectors, resulting in a change in height or eccentricity of the
  590 end plates.  The overall size of the A,B or C,D end plates can
  591 be adjusted, or the size of both can be changed together, leaving
  592 only the H vector constant.
  593 The H vector or the base plate (AXB) can be rotated.
  594 Recall that vectors A \& C and vectors B \& D have like directions, hence
  595 rotating the base (AXC) will automatically rotate the top (BXD).
  596 Finally, one can move the end of the height vector H
  597 with the TGC becoming or remaining
  598 a right cylinder (move end H (rt)),
  599 or with the orientation of the base (and top)
  600 unchanged (move end H).
  601 Either the mouse/tablet or the {\em p} command can be used.
  602 These functions are selected from the menu which can be seen
  603 in Figure \ref{ped-tgc}.
  604 
  605 \begin{figure}
  606 \centering \includegraphics{ped-ell}
  607 \caption{Ellipsoid Parameter Editing Menu.}
  608 \label{ped-ell}
  609 \end{figure}
  610 
  611 \subsection{Ellipsoid Parameter Editing}
  612 
  613 The ELLG general class represents all the ellipsoidal solids, including
  614 spheres and ellipsoids of revolution.
  615 The defining parameters of the ELLG are three mutually perpendicular
  616 vectors (A, B, and C) and the vertex (V).
  617 When an ELLG is being edited, only vectors A and B are labeled on the display.
  618 Figure \ref{ped-ell} depicts a typical ELLG during parameter editing.
  619 
  620 The parameter editing of the ELLG consists of scaling the lengths of the
  621 individual vectors A, B, C.
  622 One may also scale all theses vectors together of equal length.
  623 
  624 The scaling of these vectors is done using the data tablet/mouse in
  625 exactly the same manner as in object scaling.
  626 The {\em p} keyboard command again can be used to produce a vector of
  627 desired length.
  628 
  629 \begin{figure}
  630 \centering \includegraphics{ped-tor}
  631 \caption{Torus Parameter Editing Menu.}
  632 \label{ped-tor}
  633 \end{figure}
  634 
  635 \subsection{Torus Parameter Editing}
  636 
  637 The TOR general class of solids contains only one type of torus, one with
  638 circular cross-sections.
  639 The defining parameters of the TOR are two radii (r1 and r2), a normal
  640 vector (N), and the vertex (V).
  641 The scalar r1 is the distance from the vertex to the midpoint of the
  642 circular cross section.
  643 The scalar r2 is the radius of the circular cross-section.
  644 The vector N is used to orient the torus.
  645 During solid editing, none of these parameters are labeled on the screen.
  646 Figure \ref{ped-tor} depicts a typical torus during parameter editing.
  647 
  648 The parameter editing of the TOR consists of scaling the radii, hence the
  649 menu contains only two members.