Revision: 75974
          http://sourceforge.net/p/brlcad/code/75974
Author:   starseeker
Date:     2020-05-28 21:21:59 +0000 (Thu, 28 May 2020)
Log Message:
-----------
We have a Docbook version of this, and VCS has the .tr file if we need to refer 
back

Modified Paths:
--------------
    brlcad/trunk/doc/CMakeLists.txt

Removed Paths:
-------------
    brlcad/trunk/doc/ged.tr

Modified: brlcad/trunk/doc/CMakeLists.txt
===================================================================
--- brlcad/trunk/doc/CMakeLists.txt     2020-05-28 20:50:42 UTC (rev 75973)
+++ brlcad/trunk/doc/CMakeLists.txt     2020-05-28 21:21:59 UTC (rev 75974)
@@ -17,7 +17,6 @@
   archer_ack.txt
   checklist.txt
   description.txt
-  ged.tr
   notes/TODO.BREP
   notes/TODO.shaded_displays
   notes/brep.txt

Deleted: brlcad/trunk/doc/ged.tr
===================================================================
--- brlcad/trunk/doc/ged.tr     2020-05-28 20:50:42 UTC (rev 75973)
+++ brlcad/trunk/doc/ged.tr     2020-05-28 21:21:59 UTC (rev 75974)
@@ -1,1181 +0,0 @@
-.ce 3
-.TL
-.nf
-.sp 4
-GED: An Interactive Solid Modeling System
-For
-Vulnerability Assessments
-.sp
-.AU
-Michael J. Muuss
-Keith A. Applin
-J. Robert Suckling
-Gary S. Moss
-Earl P. Weaver
-Charles A. Stanley
-
-.AB
-
-For many years the production and modification of target descriptions,
-no matter what method used, has been a slow, labor-intensive
-procedure.  In an effort to improve the response time of target
-descriptions, the Ballistic Research Laboratory (BRL) has developed an
-interactive solid modeling system.  This system is called the Graphics
-Editor (GED) and is designed to replace the traditional manual method
-of production and modification of target descriptions.  GED presently
-applies to the combinatorial geometry (COMGEOM) solid modeling
-technique.  Using GED, the target descriptions are interactively
-viewed, modified, and constructed with immediate visual feedback at
-each step.  The GED system virtually eliminates explicit numerical
-input and opens a new dimension in the target description process.
-
-.AE
-.sp
-.PP
-.bp
-.ce
-I.  INTRODUCTION
-.nh
-.PP
-As the Army's lead laboratory for vulnerability technology, the
-Ballistic Research Laboratory (BRL) constantly performs vulnerability
-analyses for a wide variety of military systems.  Vital to these
-vulnerability studies are three dimensional computer models of the
-physical characteristics of these systems.  These computer models are
-generally called target descriptions.  Since the mid 1960's, BRL has
-used a solid modeling technique called combinatorial geometry
-(COMGEOM) to model targets.  The COMGEOM technique uses logic
-operations to combine basic geometric shapes or primitives to produce
-the three-dimensional target description.  The COMGEOM target
-descriptions are processed by the Geometric Information For Targets
-(GIFT)\u1,2\d
-.FS
-\u1\d Lawrence W. Bain, Mathew J. Reisinger, "The GIFT Code User Manual; Vol I,
-Introduction and Input Requirements," BRL Report No. 1802, July 1975. (AD# 
B0060371)
-.FE
-.FS
-\u2\d Gary G. Kuehl, Lawrence W. Bain, Mathew J. Reisinger, "The GIFT Code User
-Manual; Vol II, the Output Options," ARRADCOM Technical Report No. 
ARBRL-TR-02189,
-September 1979. (AD# A078364)
-.FE
-code for use in follow-on vulnerability assessment codes.
-.PP
-Target descriptions are basically large collections of numerical data
-which traditionally have been handled manually in a batch environment.
-Hence, the production and modification of target descriptions has been
-a slow, labor-intensive process.  In 1980, BRL initiated an effort to
-improve the response time of the target description process by
-applying interactive computer graphics techniques.  As a result of
-this work unit, BRL has developed the Graphics EDitor (GED), an
-interactive solid modeling system based on the COMGEOM technique.
-Using GED an analyst can view, build, and modify target descriptions
-interactively by manipulating the graphical representation, thus
-providing immediate visual feedback on a vector display device.  The
-GED system is designed to replace the manual method of production and
-modification of target descriptions.
-.PP
-This report is intended to serve as a user manual for the GED system.
-The process of viewing and editing a description using GED is covered
-in detail.  The internal data structure is also covered, as it is an
-important part in the overall design of the GED system.
-.sp 2
-.ce
-II.  COMGEOM BACKGROUND
-.PP
-Since the GED system is presently based on the COMGEOM solid modeling
-technique, a brief overview of the COMGEOM technique is required to
-effectively use GED.  For more detailed information on the COMGEOM
-technique see references 1 and 2.
-.PP
-The COMGEOM technique utilizes two basic entities - a solid and a
-region.  A solid is defined as one of fifteen basic geometric shapes
-or primitives.  Table I contains a list of these fifteen solids.  The
-individual parameters of each solid define the solid's location, size,
-and orientation.  A region is a combination of one or more solids and
-is defined as the volume occupied by the resulting combination of
-solids.  Solids are combined into regions using any of three logic
-operations: union(OR), intersection(+), or difference(-).  The union
-of two solids is defined as the volume in either of the solids.  The
-difference of two solids is defined as the volume of the first solid
-minus the volume of the second solid.  The intersection of two solids
-is defined as the volume common to both solids.  Figure 1 presents a
-graphical representation of these operations.  Any number of solids
-may be combined to produce a region.  As far as the COMGEOM technique
-is concerned, only a region can represent a component of the target.
-The solids are only building blocks to be combined into regions.
-Since regions represent the components of the target system, they are
-further identified by code numbers.  These code numbers either
-identify the region as a target component (nonzero item code) or as
-air (nonzero air code).  Any volume not defined as a region is assumed
-to be "universal air" and is given an air code of "01".  If it is
-necessary to distinguish between universal "01" air and any other kind
-of air, then that volume must be defined as a region and given an air
-code other than "01".  Normally, regions cannot occupy the same volume
-(overlap), but regions identified with air codes can overlap with any
-region identified as a component (i.e. one that has a nonzero item
-code).  Regions identified with different air codes however, can not
-overlap.
-.sp 2
-.ce
-III.   COMPUTER GRAPHICS
-.PP
-Computer graphics is one of the fastest growing fields in the computer
-industry.  Computer graphics has applications in many diverse areas,
-from electronic games to medicine, from cartoons to the space
-industry.  Just what is interactive computer graphics and why is it so
-versatile?  Human visual perception is quite keen and communications
-with a computer are generally faster and easier with images or
-displays rather than with numbers. Furthermore, by driving the display
-image with the computer, one can actually communicate with the
-computer through the display itself.  This technology is called
-interactive computer graphics.  The user converses with the computer
-through the display using devices such as light pens, data tablets,
-function switches, and control dials.  The response of the computer is
-immediately reflected on the display.  Thus a fast channel of
-communication is available between person and machine.
-.sp 2
-.ce
-IV.  APPROACH TO THE PROBLEM
-.PP
-To speed up the model description process, a faster more efficient
-method of manipulating the large masses of data involved in a target
-description is needed.  Interactive computer graphics seems to provide
-the capability of handling such data in an efficient, relatively fast
-manner.  The key to the whole situation is SOFTWARE - the missing link
-between the target description problem and a possible solution.
-.PP
-In view of this fact, existing software graphics packages were
-evaluated with respect to their utility in the target description
-process.  Quite an exhaustive search of commercially available systems
-was conducted and none were found which completely satisfied our
-requirements.  A study was then initiated to examine the feasibility
-of producing the required graphics software in-house.  The result of
-this study was a preliminary version of GED which, using existing
-hardware, quite convincingly demonstrated the feasibility of such an
-undertaking\u3\d.
-.FS
-
-\u3\d Michael John Muuss, Earl P. Weaver, "Interactive Construction of
-COMGEOM Targets - A Feasibility Study", report to be published.
-
-
-.FE
-It was then decided to develop GED into a full production code and to
-acquire the hardware necessary for full implementation of the system.
-The production level GED code has been used since January 1982 to
-build target descriptions interactively at BRL.
-.sp 2
-.ce
-V.  GED OVERVIEW
-.PP
-The main function of the GED system is to edit target descriptions
-with immediate visual feedback.  Hence, GED produces images both
-suitable for editing and capable of being displayed in real time.
-When an object is displayed, the solids combined to model the object
-are drawn.  No attempt is made to produce edge representations of
-regions or to remove hidden lines.  At the present, such an
-undertaking would take away from the "real time" displays now enjoyed.
-.PP
-The GED is a modular code written in the C programming language which
-presently runs under the BRL UNIX Networking System\u4\d.
-.FS
-\u4\d Michael John Muuss, "BRLNET - The Implementation of a
-Multi-processor UNIX System", a final report of work done under ARO
-Project Number 1127, August 27, 1980.
-
-.FE
-The workstations presently used are Vector General (VG) 3DI vector
-refresh systems driven by DEC PDP-11/34 or PDP-11/70 computers.
-Peripheral devices include a joystick, a pen and data tablet, function
-switches, and control dials.  These peripheral devices and functions
-of each are discussed in later sections.
-.PP
-Overall control of GED is maintained via the keyboard.  The keyboard
-commands perform general housekeeping functions and allow one to
-control what is displayed, create/modify combinations, list solid
-parameters, etc.  The keyboard commands are discussed in a later
-section.
-.sp 2
-.ce
-VI.  GED INTERNAL DATA STRUCTURE
-.PP
-One of the critical aspects of a graphics software package is its
-internal data structure.  Since the target description problem deals
-with such large volumes of data, the importance of the data structure
-here is emphasized.  Thus it is felt that an introduction to the
-internal data structure of GED is important for any potential user.
-.PP
-The GED internal data structure is hierarchical in nature with each
-node or position in the hierarchy being occupied by an OBJECT.  An
-OBJECT is the GED basic data unit and is defined as either a SOLID or
-a COMBINATION.  A SOLID is one of the generalized COMGEOM primitive
-types while a COMBINATION is a group of objects.  Each member object
-of a combination has a transformation associated with it.  Any object
-not at the top of an hierarchy is referenced by (is a member of) a
-higher combination and each such reference has an associated
-transformation.  The bottom object of every hierarchy path is a solid.
-This hierarchical data structure allows actual subsystems of a target
-to be grouped together and edited as a unit without worrying about
-individual parts.  To display any object, each path in the object's
-hierarchy is traveled to its bottom position where a solid is located.
-The transformations are accumulated for each path traversed and then
-applied to the solid at the bottom of the path.  The solid is then
-drawn.  The hierarchy is traversed recursively until all objects are
-drawn.  Let's use a high explosive projectile as an example.  Figure 2
-depicts the hierarchy involved.  If one were to display the
-combination "heround", six solids would be drawn on the screen.  Table
-II lists each solid name, the transformation applied to the solid's
-parameters, and the path used to reach the solid.
-.PP
-One very useful type of combination is the INSTANCE.  An instance is a
-referral to an object (solid or combination) without the object itself
-being duplicated.  To produce an instance of an object, a combination
-is created with the object being instanced as a member object.  As
-with any other combination, this member has an associated
-transformation, hence it can be edited as a unit.  The instance is
-most useful when an object appears many times in a description.  The
-desired number of instances are made and positioned in the
-description.  Any future changes in the object require that only the
-original (prototype) be changed.  The modifications of the prototype
-object will then be automatically reflected in all the instances of
-that object.
-.sp 2
-.ce
-VII.  KEYBOARD COMMANDS
-.PP
-To execute GED, one simply types "ged file", where "file" is the data
-file to be edited.  The GED keyboard commands are used to maintain
-overall control of the system and to perform general housekeeping
-functions.  Each command is invoked by entering a single character
-followed by other parameters (if necessary) separated by spaces.  In
-most cases, the response on the screen will be the word "done" once
-the command is completed.  This response is not printed for the
-commands where the results of the command are readily visible on the
-screen.
-.PP
-In the following pages, the GED keyboard commands will be presented
-and discussed.  Examples will be given in appropriate cases.  Table
-III, at the end of this section, presents a summary of the GED
-keyboard commands and the function of each.
-.bp
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-c oldsolid newsolid
-.sp 2
-This command is used to produce and display a copy of a solid.  In
-this case, the solid "oldsolid" will be copied into a solid called
-"newsolid".  A new identical solid record is added to the data file.
-The solid parameters are copied as they appear in the solid record.
-.sp 2
-Examples:     c arb8 hullbot.s
-              c arb8 turrettop.s
-              c tgc wheelrim.s
-              c tor tire1.s
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-n old new
-.sp 2
-This command is used to rename objects in the data file.  In this
-case, the object "old" will be renamed "new".  A note of caution: the
-name is changed only in the object record itself, not in any member
-records.  Thus if the object "old" appears as a member of any other
-object, the name will not be changed there.
-.sp 2
-Examples:     n test hull
-              n g00 air
-              n g1 turret
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-Z
-.sp 2
-This command clears (Zaps) the screen of all displayed objects.
-.sp 3
-.ce
-------------------------------------------------------------------------
-.bp
-.ce
------------------------------------------------------------------------
-.sp 3
-.ce
-g group obj1 obj2 ..... objn
-.sp 2
-This command creates or appends to a combination record and is used to
-group objects together either for editing or displaying purposes.  In
-this case, "obj1" through "objn" are added as members to the
-combination "group".  If "group" does not exist, it is created and
-"obj1" through "objn" are added as members.
-.sp 2
-Examples:   g shell hull turret
-            g tank wheels engine crew shell
-            g tank track
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-r region op1 sol1 op2 sol2 .... opn soln
-.sp 2
-This command is used to create regions or append to regions.  If
-"region" exists, then solids "sol1" through "soln" are added as
-members with "op1" through "opn" as the defining operations.  If
-"region" does not exist, then it is created and solids "sol1" through
-"soln" are added as members with "op1" through "opn" as the defining
-operations.  A region is merely a combination record with a flag set
-and is distinguished from other combinations (groups) since it has
-meaning to the COMGEOM solid modeling system.
-     When a region is created, the item and air codes are set equal to
-zero.  To change the item and air codes use the "I" command.  Note: In
-the past all members of a region had to be solids, but recently
-regions have been allowed as members of regions.  Hence, the names
-"soli" can also be regions now.
-.sp 2
-Examples:    r hulltop.r + hulltop.s - hullleft.s - hullright.s
-             r gun + gun.s - gunin.s
-             r gunair + gunin.s
-.sp 3
-.ce
-------------------------------------------------------------------------
-.bp
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-i object combname brname
-.sp 2
-This command is used to make an instance of an object.  An instance of
-an object is produced by creating a combination and making the object
-a member.  In this case, an instance of "object" is made by creating
-the combination record "combname" (if "combname" does not already
-exist) and adding "object" as a member.  This member also has a second
-name "brname" added to the member record, which can be thought of as
-the name of this branch in the hierarchical data structure.  If
-"combname" already exists, then "object" is added as the next member
-and "brname" is added as the branch name.
-
-An instance is used to refer to an object, without making actual
-copies of the object.  Instances are useful when one is adding a
-certain component to a target description many times.  Furthermore,
-any modifications to an object which has been instanced need only be
-done in the original (prototype) object.  These modifications will
-then be automatically reflected in all the instances of the object.
-.sp 2
-Examples:       i heround ammo he1
-                i heround ammo he2
-                i heat ammo heat1
-                i heat ammo heat2
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-f face distance
-.sp 2
-This command allows the user to project a face of an arb (arbitrary
-polyhedron) being edited a normal distance to create a new arb.  The
-value of "face" is 4 digits such as 1256. If the face is projected in
-the wrong direction use a negative "distance".  One use for this
-command is for producing armor plates of a desired thickness.
-.sp 2
-.nf
-Examples:     f 1234 20
-              f 2367 34.75
-              f 2367 -34.75
-.sp 3
-.fi
-.ce
-------------------------------------------------------------------------
-.bp
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-l object
-.sp 2
-This command is used to list information about objects in the data
-file.  The information listed depends on what type of record "object"
-is.  If "object" is a combination record, then the members are listed.
-If "object" is a solid record, then the GED general solid type and the
-parameters as presently in the data file are listed.  Note: only the
-solid parameters as they exist in the solid record are listed, no
-transformation matrix is applied.  Hence, if the solid was edited as a
-member of a combination, the "l" command will not reflect the editing
-in the listed parameters.
-.sp 2
-Examples:      l hull
-               l turret
-               l turtop.s
-               l arb8
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-mirror -[axis] oldsolid newsolid
-.sp 2
-This command is used to create and display a new solid record which is
-the mirror image of an existing solid.  The mirror image is about an
-axis and is created by changing the signs on the solid's parameters
-depending on which axis the solid is mirrored about.  In this case, a
-mirror image of the solid "oldsolid" will created about the axis
-indicated by "axis" and the new solid record will be called
-"newsolid".  The only acceptable values for the parameter "axis" are
-"x", "y", and "z".
-.sp
-Examples:     mirror -y tur.left.s tur.right.s
-              mirror -z tur.top.s tur.bot.s
-              mirror -x tur.front.s tur.back.s
-.sp 3
-.ce
-------------------------------------------------------------------------
-.bp
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-p dx [dy] [dz]
-.sp 2
-This command allows a user in the SOLID EDITING mode to input exact
-parameter modifications by the keyboard.  The meaning of the values
-typed after the p command varies depending on what solid editing
-feature is being used.  Examples of this command will be given in the
-discussion on solid editing.
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-D comb mem1 mem2 .... memn
-.sp 2
-This command allows one to delete members from a combination record.
-In this case, members "mem1" through "memn" will be deleted from the
-combination "comb".
-.sp
-Examples:     D tank hull wheels
-              D region1 solid8 solid112
-              D turtop.r tursidel.s tursider.s turback.s
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-I region item air
-.sp 2
-This command allows one to change the item or air code numbers of a
-region.  If the air code ("air") is not included, a zero is assumed.
-To change the air code, a zero item code should be used (see second
-example below).
-.sp 2
-Examples:
-            I region1 105
-            I region7 0 2
-            I region11 129 0
-.sp 3
-.ce
-------------------------------------------------------------------------
-.bp
-.ce
------------------------------------------------------------------------
-.sp 3
-.ce
-e object
-.sp 2
-This command is used to display (draw) objects on the screen.  In this
-case, "object" will be displayed on the screen.  Note that "object"
-must be found in the table of contents.
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-d object
-.sp 2
-This command is used to drop (delete) objects from the display.  In
-this case, "object" will be deleted from the screen display.  This
-command is opposite of the "e" command.
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-k object
-.sp 2
-This command is used to remove (kill) objects from the data file.  In
-this case, "object" will be removed from the data file.  Note the
-distinction between the "d" command which deletes objects from the
-display and the "k" command which removes objects from the data file.
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-t
-.sp 2
-This command produces a list of the table of contents of all objects
-in the data file.  The objects are listed a screenfull at a time.  A
-carriage return will produce the next screenfull.
-.sp 3
-.ce
-------------------------------------------------------------------------
-.bp
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-a arbname rot fb
-.sp 2
-This command is used to create and display a new arb8 solid record.
-This new arb8 has two square (5 units x 5 units) parallel faces which
-are 0.5 units apart.  These parallel faces are in planes whose
-orientations are defined by the two input angles - the rotation (rot)
-angle and the fallback (fb) angle.  The orientation of armor plates
-are frequently defined using rotation and fallback angles.  The vertex
-of this new arb8 is located in the center of the screen.
-
-.nf
-Examples:     a hullsec3.s 45 30
-              a tursec2.s 90 20
-              a topglacis.s 0 60
-.fi
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-x
-.sp 2
-This command is the display debug command.  It will produce a list of
-all objects that have been displayed , the paths traversed to draw the
-objects, and whether or not the objects are displayed in the present
-view.
-.sp 3
-.ce
-------------------------------------------------------------------------
-.sp 3
-.ce
-q
-.sp 2
-This command is used to quit the graphics editor code.  This is the
-normal halt.
-.bp
-.sp 2
-.ce
-VIII.  PERIPHERAL DEVICES
-.PP
-Before we discuss the features of GED, we will introduce the hardware
-devices used to implement them.  These devices are the "tools of the
-trade" for the GED user.  We will discuss only basic operational
-characteristics here.  Specific use of these devices will be covered
-in the later sections on the viewing and editing features of GED.
-.PP
-The JOYSTICK is a mechanical device used to do the rotations in GED.
-Any movement of the stick left or right rotates the display about the
-x-axis.  Any movement of the stick up or down rotates the display
-about the y-axis.  When the joystick is twisted in a clockwise or
-counterclockwise direction, the display rotates about the z-axis.  Any
-combination motion of the stick will produce a "combined" rotation
-about the appropriate axes.  All of these motions have a spring return
-to a null center position.
-.PP
-The FUNCTION SWITCH box contains thirty-two buttons.  When any of the
-buttons is pressed, an action occurs or condition is set.  Figure 3
-depicts the functions programmed for each button.  The buttons in the
-shaded area are used for editing while the rest are used for viewing
-the display.  The exact functions assigned to these buttons will be
-discussed in the sections on viewing the display and on editing.
-.PP
-The CONTROL DIALS (knobs) are used to send digital information to the
-computer.  As a knob is turned, a succession of numbers are available
-for use by the computer.  Figure 4 depicts the functions assigned to
-each of the ten knobs.  The exact functions of each of these knobs
-will be discussed in the angle distance cursor section and in the
-viewing features section.
-.PP
-The DATA TABLET is a graphics input device containing an X-Y
-coordinate grid which corresponds to the grid on the screen.
-Information is entered using a pen-like stylus.  The distance this pen
-is from the tablet is important.  If the pen tip is within one half
-inch of the tablet surface, the cursor location on the screen
-corresponds to the X,Y location of the pen on the tablet.  This
-condition is called the "near" position.  If the pen is more than one
-half inch from the tablet surface, the cursor remains located in the
-center of the screen.  When the pen is pressed against the tablet
-surface, the pressure switch is activated and a bit is set which is a
-signal used by GED.  The exact meaning of the pen near and pen press
-depends on what is being done and will be covered in the appropriate
-sections of this report.
-.sp 2
-.ce
-IX.  ANGLE DISTANCE CURSOR (ADC)
-.PP
-The angle distance cursor is a construction aid used to measure angles
-and distances. It should be noted that all measurements are made in
-the projected space of the screen, so one should measure only in a
-view normal to the surface where the measurement is to take place.
-The ADC is placed on (or removed from) the display by pushing the
-"ADC" function switch button (see Figure 3).  The ADC consists of
-three cursors which cover the entire screen.  Figure 5 depicts the ADC
-as it appears on the screen.  All the cursors are centered at the same
-point and can be moved to any location on the screen.  Two of these
-cursors rotate for angle measuring purposes. Angle cursor 1 is solid
-while angle cursor 2 is dashed.  Angle cursor 1 has movable tic marks
-for measuring distances on the screen.  The two angle cursors move
-with the horizontal and vertical lines of the main cursor.  The
-resulting effect is the moving of the center point horizontally or
-vertically.  The ADC is controlled by the bottom row of the control
-dial knobs (see Figure 4) :
-
-     Knob 6   moves the center in the horizontal direction
-     Knob 7   moves the center in the vertical direction
-     Knob 8   rotates angle cursor 1  (alpha)
-     Knob 9   rotates angle cursor 2  (beta)
-     Knob 10  moves the tic marks
-
-Whenever the ADC is on the screen, there is a readout at the bottom of
-the screen listing pertinent information about the ADC.  This
-information includes the angles that angle cursors 1 and 2 have been
-rotated (alpha and beta), the distance the tic marks are from the
-center of the ADC, and the location of the center of the ADC.  This
-information is continually updated on the screen.
-.sp 2
-.ce
-X.  VIEWING FUNCTIONS
-.PP
-The GED viewing features are designed to allow one to examine a target
-description in close detail.  Any of the viewing features can be
-invoked at any time.  It should be noted, that these functions do not
-change the actual data, only the way these data are displayed.
-.PP
-Six standard views (front, rear, top, bottom, left, and right) and one
-oblique view (azimuth 35, elevation 25) are each assigned to the
-function buttons (see Figure 3).  Hence, any of these views is
-immediately available at the press of the appropriate function button.
-The views available are not limited to these standard views however,
-as the display can be rotated to any view by using the joystick.  By
-pressing the function button labeled "save view" (see Figure 3), the
-present viewing aspect angle of the display is saved.  At any time,
-the saved view can be immediately returned to the screen by pressing
-the "restore view" function button (see Figure 3).  The "restore view"
-button will be lit whenever a view has been saved.  The function
-button labeled "reset" (see Figure 3), restores the display to the
-default view (front) when pressed.
-.PP
-The display can be panned or slewed on the screen in two ways - using
-the data tablet and pen or by using the control knobs.  When one is
-editing, the tablet and pen are not available for slewing, hence one
-must use the control knobs to slew the display.  If one is NOT
-editing, then whenever the pen is pressed, the display moves in the
-direction of an imaginary vector drawn from the center of the screen
-to the cursor location on the screen.  Recall that there is a
-one-to-one correspondence between the pen location and the cursor
-location.  The longer this vector, the faster the display will move.
-To slew the display using the control knobs, one uses the knobs
-labeled "slew x" or "slew y" (see Figure 4).  The null positions on
-these knobs is in the center or straight up.  If the "slew x" knob is
-turned clockwise of center, the display will move to the right. If it
-is turned counterclockwise, the display will move to the left.  For
-the "slew y" control knob, clockwise of the center moves the display
-up and counterclockwise moves the display down.  The further these
-knobs are turned from center, the faster the display moves.
-.PP
-One can zoom the display by using the control knob labeled "zoom" (see
-Figure 4).  Again the null position of this knob is center or straight
-up.  Turning this knob clockwise of center causes the display to
-increase in size producing a zoom-in effect.  Turning this knob
-counterclockwise of center causes the display to decrease in size or
-zoom-out.  Again, the further the "zoom" knob is turned from center,
-the faster the zooming will occur.
-.PP
-The viewing features of GED also include a slice mode.  To invoke the
-slice feature, one presses the "slice mode" function button (see
-Figure 3).  An imaginary slicing plane, parallel to the screen, can
-then be moved about by turning the first control knob (see Figure 4).
-Turning this knob clockwise moves the imaginary plane into the screen
-and counterclockwise moves the plane out of the screen.  All portions
-of the display in front of the plane are eliminated from the display.
-The result of moving this plane into the screen is a slicing effect
-with the parts of the display closest disappearing first.  To leave
-the slice mode, just press the "slice mode" button again.
-.sp 2
-.ce
-XI.  SELECTING OBJECTS FOR EDITING
-.PP
-Before we discuss the editing features of GED, we will discuss how one
-selects objects for editing.  To be edited, an object must be
-displayed on the screen.  Since the object to be edited may be only a
-small portion of the display, a procedure is needed to select an
-object from the many objects being displayed.  This procedure relies
-on the hierarchical structure of the GED data base.  As stated before,
-when objects are displayed, every path of every object is traversed
-and the bottom object, which is always a solid, is drawn.  Hence one
-can think of each solid drawn not as one solid, but as the unique path
-used to reach that solid.  As an example, the six paths (solids) for
-the sample object "heround" were presented in Table II.
-.PP
-To select an object for editing, one first must enter the illuminate
-mode by pressing the function button labeled "illuminate" (see Figure
-3).  The data tablet and pen are then used to select the object.  The
-surface of the data tablet is divided into imaginary horizontal
-strips.  Each of these strips corresponds to a path (solid) drawn on
-the screen.  For example, if the sample "heround" were displayed, the
-tablet surface would be divided into six horizontal strips.  The pen
-is used in the "near" mode (within one half inch of tablet surface) to
-illuminate the paths.  The path corresponding to the pen location is
-written in the upper right hand corner of the screen.  The solid at
-the bottom of this path is illuminated (drawn brighter) on the screen.
-In this manner one can "scan" the complete display by simply moving
-the pen up and down the tablet in the near mode.  Hence, the
-illuminate mode is also quite useful just to identify objects in a
-description.  However, the primary purpose of the illumination mode is
-to select objects for editing.
-.PP
-The actual selecting of an object for editing is a two-step process.
-First, one selects the path desired, then one selects the particular
-object of interest from that path.  One "selects" by pressing the pen
-on the tablet surface.  When a path is selected, the word PATH
-followed by the members of that path is written in the upper right of
-the screen.  At that point, one is ready to select a specific member
-(object) from that path for editing.  Again, the tablet is used for
-this selection.  The tablet surface is now divided into as many rows
-(zones) as there are members in the selected path.  When the pen, in
-the near mode, is in a path member's assigned zone on the tablet, that
-member's name will be illuminated in the path listing.  When the
-specific member to be edited is illuminated, it is selected by
-pressing the pen.  The word EDIT will now appear in the upper right of
-the screen ahead of the path listing.  One is now ready to edit this
-selected object.
-.PP
-The only way out of the EDIT mode is to accept or reject any editing
-performed.  This is done by pressing the function buttons labeled
-"accept" or "reject" (see Figure 3).  If at any time in the selection
-process an incorrect object is selected, just press the "reject"
-button and begin the selection process again.
-.sp 2
-.ce
-XII.  OBJECT EDITING
-.PP
-The heart of the GED system is its editing features.  The editing
-features are divided into two classes: object editing and solid
-editing.  Object editing is designed to allow one to change the
-location, size, and orientation of an object.  Recall that an object
-is defined as the basic data unit of the GED system and includes both
-combinations and solids.  In the case of a solid, one needs to change
-not only its location, size, and orientation, but also its "shape".
-Changing the shape of a solid means changing any of its individual
-parameters.  Hence, solid editing is handled separately.
-.PP
-Any object in the data file may be selected for object editing.  The
-object is picked using the object selection procedure discussed
-earlier.  Recall that in the GED data structure, all members of
-combinations have transformation matrices associated with them,
-allowing assemblies to be edited as units.  Object editing is the
-vehicle for performing such tasks.  All object editing is done using
-homogeneous transformation matrices.  When the editing is accepted,
-new transformation matrices are created in all appropriate member
-locations.  If the object happens to be a single-member path (solid)
-then the matrix is applied to the solid's parameters.  Otherwise, all
-object editing is stored in transformation matrices in the data base.
-.PP
-Once an object is selected for editing, the second row of function
-buttons (see Figure 3) is used to select the editing to be done.  Then
-either the data tablet and pen or the joystick are used to perform the
-actual editing.
-.PP
-To SCALE a selected object, one first presses the function button
-labeled "scale object".  The data tablet and pen are then used to
-scale the object.  The object is scaled about the target origin, thus
-unless the object is centered at the origin, some translation of the
-object will occur.  The location of the pen on the tablet when pressed
-determines the scale factor used.  If the pen is above the center of
-the screen, the scale factor will be greater than one.  The further
-the pen is located above the center, the larger the scale factor.
-Likewise, if the pen is located below the vertical center, the scale
-factor will be less than one and the further below the center, the
-smaller the scale factor.  As long as the pen is pressed, the object
-will continue to increase or decrease in size.
-.PP
-To ROTATE a selected object, one first presses the function button
-labeled "rotate object".  The joystick is then used to rotate the
-object.  The object is rotated about the center of the view (screen).
-If one wishes to rotate the object about another point of interest,
-the entire display can be slewed until the desired point is positioned
-at the center of the screen.
-.PP
-To TRANSLATE a selected object, one has three function buttons from
-which to select (see Figure 3).  The data tablet and pen are then used
-to translate the object.  The center of the object "follows" the pen
-(cursor) location whenever the pen is pressed.  The three function
-buttons define the direction allowed for movement of the object.  The
-button labeled with a horizontal arrow (<--->), allows the object to
-follow only the horizontal location of the pen.  The vertical location
-of the object does not change.  The function button labeled with a
-vertical arrow ( ), allows the object to follow only the vertical
-location of the pen.  The horizontal location of the object does not
-change.  The function labeled with crossed arrows (<--->) allows the
-object to follow the X,Y location of the pen.
-.PP
-The object editing features can be invoked in any order and at any
-time once an object has been selected for editing.  During object
-editing, any of the viewing features, such as changing views, zooming,
-and slewing, can be used and in fact are usually quite useful.  Again,
-the only way to exit the object editing mode is to accept or reject
-the editing.  If the "reject" button is pressed, the object will
-return to its pre-edit state.  If the "accept" button is pressed, the
-data base will be changed to reflect the object editing performed.
-.sp 2
-.ce
-XIII.  SOLID EDITING
-.PP
-The solid editing feature allows the user to interactively translate,
-rotate, scale, and modify individual parameters of a solid.  Whenever
-one is in the solid edit mode, the parameters of the solid being
-edited are listed and continually updated at the bottom of the screen.
-Certain parameters are also labeled on the solid being edited.  Solid
-editing is generally used to "build" objects by producing solids of
-the desired shape and size in the correct orientation and position.
-Once the object is built, object editing is used to scale, orient, and
-position the object in the description.  The general philosophy of
-solid editing is to first create a copy of a prototype solid with the
-desired name and then to edit this solid.  The prototype solids should
-not be edited.  As an example, suppose one were to build the sample
-object "heround" mentioned earlier.  To produce the base of the shell,
-one would need a cylindrical shaped solid.  The prototype solid is the
-TGC (see Table I), so one would type:
-.sp
-.ce
-c tgc shellcase.s
-.sp
-A new solid record called shellcase.s would be created and displayed
-on the screen.  This shellcase.s solid would then be edited using
-solid editing to produce the exact solid parameters desired.  The
-solid record tgc would be unchanged and available for copying the next
-time a cylindrical solid is needed.
-.PP
-The procedure for solid editing is quite similar to that for object
-editing.  First, the solid must be selected for editing.  A solid is
-selected for editing using the illuminate mode, just as in object
-editing, except a solid must be selected.  Recall that the bottom
-object in every hierarchy path is a solid.  Second, one must push the
-function button labeled "solid edit" (see Figure 3).  This button sets
-up the solid edit mode: the solid parameters are listed at the bottom
-of the screen, pertinent solid parameters are labeled on the display,
-the solid editing function buttons are activated, and a menu header
-depending on the solid type is written on the right side of the
-screen.  The meaning of the menu will be discussed shortly.  Third,
-one selects (by pressing the appropriate function buttons) and
-performs the editing desired.  Finally, one exits the solid editing
-mode by accepting or rejecting the editing performed, just as in
-object editing.
-.PP
-Recall, in the section on object editing it was mentioned that since a
-solid is indeed an object, a solid can be edited (translated, rotated,
-and scaled) as an object.  Hence, the solid editing mode is really
-only necessary to perform parameter modifications.  However, much of
-the object editing is done about the target or screen center, which
-can be annoying when editing a solid.  Also, precise parameter
-modifications are possible (using the "p" keyboard command) in solid
-editing.  Thus it was deemed desirable to include translation,
-rotation, and scaling in solid editing also.
-.PP
-Solid TRANSLATION allows the user to place the solid being edited
-anywhere in the description.  To invoke this option, one presses the
-function button labeled "solid trans" (see Figure 3).  To move the
-solid, use the data tablet and pen.  Whenever the pen is pressed, the
-VERTEX of the solid moves to that location on the screen.  One can
-read the actual coordinates of the vertex on the bottom of the screen,
-along with the other parameters.  If the actual desired coordinates of
-the vertex are known, one can place the solid exactly using the "p"
-keyboard command.  For example, to place a solid's vertex at the
-coordinates (x, y, z) one would type
-.sp
-.ce
-p x y z
-.sp
-The solid would then jump to this location.
-.PP
-The solid SCALE feature allows the user to scale the solid being
-edited to any desirable size.  The scaling is done about the vertex of
-the solid, hence NO translation of the solid occurs.  The scaling is
-performed using the data tablet and pen, just as in object scaling.
-One can input an exact scale factor using the "p" keyboard command.
-For example, typing
-.sp
-.ce
-p factor
-.sp
-will scale the solid by an amount equal to "factor".  The value of
-"factor" is absolute - the original solid is scaled.  The size of the
-original solid is defined when the "solid scale" function button is
-pressed.  By setting "factor" equal to one, the original size solid
-will be displayed on the screen.
-.PP
-Solid ROTATION allows the user to rotate the solid being edited to any
-desired orientation.  The rotation is performed about the vertex of
-the solid.  To select this option, one presses the function button
-labeled "solid rotate" (see Figure 3).  The actual rotation is done
-using the joystick.  One can input exact angles to rotate the solid by
-using the "p" keyboard command.  For example, typing
-.sp
-.ce
-p alpha beta gamma
-.sp
-will rotate the solid "alpha" degrees about the x-axis, "beta" degrees
-about the y-axis, and "gamma" degrees about the z-axis.  Alpha, beta,
-and gamma are measured from the original "zero" orientation of the
-solid, defined when the "solid edit" function button was pressed.
-Hence, typing
-.sp
-.ce
-p 0 0 0
-.sp
-will always return the solid to its original position (its position
-when the current solid editing session began).
-.PP
-The PARAMETER editing feature allows the user to modify any of the
-parameters which comprise the selected solid.  To invoke this feature,
-one presses the function button labeled "menu" (see Figure 3).  A menu
-(listing) of parameters to edit will then appear on the right side of
-the screen under the menu header.  The contents of this menu of course
-depend on the type of solid being edited.  To select an item
-(parameter) from this menu, one uses the data tablet and pen.  The
-immediate region (strip) surrounding each item of the menu "belongs"
-to that item.  Whenever the pen is in one of these regions, that menu
-item will get brighter in the menu listing on the screen.  A menu item
-is picked by pressing the pen when that item name is illuminated.  It
-should be noted that whenever the pen is in the "menu area", the code
-assumes the user is attempting to pick a menu item.  Hence, the menu
-area of the screen (the far right edge) can NOT be used by the pen for
-editing while the menu is on the screen.
-.PP
-For parameter editing, the solid type determines the menu items.  The
-GED code recognizes four general solid types for parameter editing.
-All the specific solid types which fall into one of these general
-classes are treated as the general type.  For example, all the
-cylindrical solid types are treated as the general type - the TGC.  In
-the following paragraphs, we will discuss parameter editing for each
-of these general types of solids.
-.sp 2
-.nf
-A.  ARB PARAMETER EDITING
-.fi
-.PP
-The GENERAL ARB class of solids represents all the convex polyhedrons
-(RPP, BOX, RAW, and ARBs).  The ARBs comprise five classes of
-polyhedrons each with a characteristic number of vertices.  These are
-the ARB8, ARB7, ARB6, ARB5, and ARB4, where the ARB8 has eight
-vertices, etc.  GED handles all these ARBs as ARB8s, but with some
-vertices equal.  All the eight vertices of the GENERAL ARB are labeled
-on the screen, although in certain cases (RAW,ARB7,ARB6,ARB5,ARB4)
-some vertices will be equal.  Figure 6 depicts typical ARBs as they
-would be displayed and labeled during solid editing.
-.PP
-To edit the ARB vertices, EDGES are moved.
-Hence, the GENERAL ARB menu is a list of edges to move:
-.sp
-.ce 13
-GENERAL ARB MENU
-  move edge 12
-  move edge 23
-  move edge 34
-  move edge 14
-  move edge 15
-  move edge 26
-  move edge 56
-  move edge 67
-  move edge 78
-  move edge 58
-  move edge 37
-  move edge 48
-.sp
-The edge to be moved is selected from this menu and is then moved
-using the data tablet and pen.  When the pen is pressed, the line
-containing the selected edge is moved so it goes through the pen
-location and is parallel to the original edge.  The endpoints of the
-new edge are then calculated to remain in the "bounding" planes of
-that edge.  In the case of the ARB8, for example, the bounding planes
-for edge 58 are planes 4378 and 1265 (see Figure 6).
-.PP
-The information printed on the bottom of the screen is the x, y, z
-coordinates of the eight vertices:
-.ce 5
- vertex         coordinates
-  1,2        x1 y1 z1  x2 y2 y3
-  3,4        x3 y3 z3  x4 y4 z4
-  5,6        x5 y5 z5  x6 y6 z6
-  7,8        x7 y7 z7  x8 y8 z8
-
-These values are continually updated during solid editing.
-.PP
-The user can force the line containing an edge through any point using
-the "p" keyboard command.  Hence typing
-.sp
-.ce
-p x y z
-.sp
-will force the line containing the edge being edited to pass through
-the point (x, y, z).  No check is made for concave ARBs or for ARBs
-with crossed edges.  Visual feedback from the display is considered
-adequate to detect these situations.
-.sp 2
-.nf
-B.  TGC PARAMETER EDITING
-.fi
-.PP
-The TGC general class of solids includes all the cylindrical COMGEOM
-solids.  The defining parameters of the TGC are two base vectors (A
-and B), a height vector (H), two top vectors (C and D), and the vertex
-(V).  Reference 1 contains more information on these parameters.  The
-top vectors C and D are directed the same as the base vectors A and B
-respectively, hence the top vectors are defined only by their lengths
-(c and d).  Figure 7 depicts these parameters on typical TGCs.  When a
-TGC is edited in the solid editing mode, only vectors A and B are
-labeled on the display.
-.PP
-All the vectors (A,B,C,D,H) of the TGC can be scaled during parameter
-editing.  In addition, the height vector (H) and the base (AxB) can be
-rotated.  These parameter editing options are reflected in the TGC
-menu:
-
-.ce 8
-TGC MENU
-scale H
-scale A
-scale B
-scale c
-scale d
-rotate H
-rotate AxB
-
-The scaling of the lengths of the vectors is done using the data
-tablet and pen in the same manner as object editing.  Exact vector
-lengths can be achieved easily using the "p" keyboard command.  If one
-is scaling a vector, then typing
-.sp
-.ce
-p x
-.sp
-will make the vector being scaled have a length equal to "x".
-.PP
-To rotate vector H or surface AxB, one uses the joystick.  Since
-vectors C and D have the same direction as vectors A and B
-respectively, the top and bottom surfaces of the TGC will remain
-parallel.  Hence rotating the base surface (AxB) will also rotate the
-top surface.  The "p" keyboard command is not used with the parameter
-rotation of the TGC.
-.PP
-During solid editing, the parameters of the TGC are constantly updated
-on the bottom of the screen:
-
-.ce 7
-V   x y z
-H   x y z |H| a b g rot fb
-A   x y z |A|
-B   x y z |B|
-c   |c|
-d   |d|
-AxB a b g rot fb
-
-where "a", "b", "g" are the direction cosines and "rot" and "fb" are
-the rotation and fallback angles of the listed vector.
-.sp 2
-.nf
-C.  ELLG PARAMETER EDITING
-.fi
-.PP
-The ELLG general class represents all the ellipsoidal solids,
-including spheres and ellipsoids of revolution.  The defining
-parameters of the ELLG are three mutually perpendicular vectors (A, B,
-and C) and the vertex (V).  Reference 1 contains a more complete
-definition of these parameters.  Figure 8 depicts typical ELLGs with
-these parameters labeled.  When an ELLG is being edited, only vectors
-A and B are labeled on the display.
-.PP
-The parameter editing of the ELLG consists of scaling the lengths of
-the vectors A, B, C.  These parameter editing options are listed in
-the menu:
-
-.ce 4
-ELLG MENU
- scale A
- scale B
- scale C
-
-The scaling of these vectors is done using the data tablet and pen in
-exactly the same manner as in object scaling.  The "p" keyboard
-command again can be used to produce a vector of desired length.
-.PP
-The parameters of the ELLG are continually updated on the bottom of
-the screen during solid editing:
-
-.ce 4
-V   x y z
-A   x y z |A| a b g rot fb
-B   x y z |B| a b g rot fb
-C   x y z |C| a b g rot fb
-
-where "a", "b", "g" are the direction cosines and "rot" and "fb" are
-the rotation and fallback angles of the listed vector.
-.sp 2
-.nf
-D.  TOR PARAMETER EDITING
-.fi
-.PP
-The TOR general class of solids contains only one type of torus, one
-with circular cross-sections.  The defining parameters of the TOR are
-two radii (r1 and r2), a normal vector (N), and the vertex (V).  The
-scalar r1 is the distance from the vertex to the midpoint of the
-circular cross section.  The scalar r2 is the radius of the circular
-cross-section.  The vector N is used to orient the torus.  Reference 1
-contains a more detailed definition of these parameters.  Figure 9
-depicts these parameters.  During solid editing, none of these
-parameters are labeled on the screen.
-.PP
-The parameter editing of the TOR consists of scaling the radii, hence
-the menu contains only two members:
-
-.ce 3
-  TORUS MENU
-scale radius 1
-scale radius 2
-
-As before, the scaling of these radii are done using the data tablet
-and pen and the "p" keyboard command can be used to produce a radius
-of any desired length.
-.PP
-The parameters of the TOR are continually updated on the bottom of the
-screen during solid editing:
-
-.ce 4
-V   x y z
-r1  |r1|
-r2  |r2|
-N   x y z a b g rot fb
-
-where "a", "b", "g" are the direction cosines and "rot" and "fb" are
-the rotation and fallback angles of the vector N.
-.PP
-Table IV presents a summary of parameter editing for each of the
-general solid classes.
-.sp 2
-.ce
-XIV.  CONCLUSION
-.PP
-BRL has developed the Army's first interactive solid modeling system,
-called GED.  GED performs two basic functions: viewing and editing.
-The standard viewing capabilities of zooming, slewing, slicing, and
-rotation are available.  Likewise, all the standard editing features
-are also available.  The user easily traverses the hierarchical data
-structure, applying the editing functions of rotation, translation,
-and scaling to any position in the hierarchy.  The hierarchical
-structure can be modified and regrouped and regions created and
-modified.  Specific parameter editing can also be applied to the
-solids to produce any shape solid desired.  GED has made great gains
-in reducing the bottleneck the target description process has been
-creating in the vulnerability process at BRL.

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to