home *** CD-ROM | disk | FTP | other *** search
/ World of Graphics / WOGRAPH.BIN / 167.HYPGEO21.EXE / HYPERGEO.DOC < prev    next >
Text File  |  1993-01-31  |  278KB  |  5,861 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                                    HYPERGEO
  14.  
  15.                                   Version 2.1
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                    A program for investigating the geometrical
  22.                     properties of four-dimensional hyperspace
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.                     USER'S GUIDE AND PROGRAM REFERENCE MANUAL
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.                                   WareCraft
  47.  
  48.                                  P.O. Box 139
  49.                               Bedford, MA  01730
  50.                                      USA
  51.  
  52.  
  53.            HYPERGEO    Version 2.1                             Page ii
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.        COPYRIGHT NOTICE
  65.  
  66.  
  67.                HYPERGEO is Copyright (c) 1993 by WareCraft.
  68.  
  69.                This document is Copyright (c) 1993 by WareCraft.
  70.  
  71.                ALL RIGHTS RESERVED.
  72.  
  73.  
  74.  
  75.  
  76.            Contains licensed program materials of Metagraphics Software
  77.            Corporation.  Copyright (c) 1986-1989 Metagraphics Software
  78.            Corporation, Scotts Valley, CA 95066
  79.  
  80.  
  81.  
  82.        Self-extracting archives use LHA 2.13 Copyright (c) Yoshi, 1991.
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.        DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITIES
  92.  
  93.  
  94.            Due to the nature of computer programming it is impossible to
  95.            guarantee the performance of this product.  The author makes
  96.            no warranty, expressed or implied, in regard to this program
  97.            and its accompanying data files and documentation.  In no
  98.            event shall the author of this program be liable for
  99.            incidental or consequential damages relating to or arising
  100.            out of its use.
  101.  
  102.  
  103.            HYPERGEO    Version 2.1                             Page iii
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.        LICENSE
  113.  
  114.  
  115.            HYPERGEO is a copyrighted computer program.  It is not public
  116.            domain or free software.
  117.  
  118.            Copies of the program are made available on a trial basis to
  119.            prospective users according to the distribution system known
  120.            as "shareware".  Persons acquiring a shareware copy of
  121.            HYPERGEO are granted a limited license to use the program for
  122.            an evaluation period not to exceed 30 days.  At the end of
  123.            that time they must either become registered users of
  124.            HYPERGEO by paying the requisite registration fee or cease
  125.            using the program.  Recipients of the shareware copy of
  126.            HYPERGEO may make duplicate copies of the program material
  127.            for the express purpose of distribution to other prospective
  128.            users, provided that:
  129.  
  130.                *   Each copy contains all HYPERGEO program files, data
  131.                    files, and documentation files complete and
  132.                    unmodified;
  133.  
  134.                *   No payment is charged for the shareware copies beyond
  135.                    normal charges for the cost of the diskette and its
  136.                    shipment and handling.
  137.  
  138.  
  139.            Registered users of HYPERGEO are granted license to use the
  140.            software without time limit on a single computer.  A
  141.            registered copy of the HYPERGEO program material may not be
  142.            duplicated other than for back-up purposes.  A registered
  143.            copy of HYPERGEO may not be distributed to others.
  144.  
  145.  
  146.            HYPERGEO    Version 2.1                             Page iv
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.                              _______
  154.                         ____|__     |               (R)
  155.                      --|       |    |-------------------
  156.                        |   ____|__  |  Association of
  157.                        |  |       |_|  Shareware
  158.                        |__|   o   |    Professionals
  159.                      -----|   |   |---------------------
  160.                           |___|___|    MEMBER
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.        ASSOCIATION OF SHAREWARE PROFESSIONALS OMBUDSMAN POLICY
  169.  
  170.  
  171.            This program is produced by a member of the Association of
  172.            Shareware Professionals (ASP).  ASP wants to make sure that
  173.            the shareware principle works for you.  If you are unable to
  174.            resolve a shareware-related problem with an ASP member by
  175.            contacting the member directly, ASP may be able to help.  The
  176.            ASP Ombudsman can help you resolve a dispute or problem with
  177.            an ASP member, but does not provide technical support for
  178.            members' products.  Please write to the ASP Ombudsman at 545
  179.            Grover Road, Muskegon, MI 49442-9427 or send a CompuServe
  180.            message via CompuServe Mail to ASP Ombudsman 70007,3536.
  181.  
  182.  
  183.            HYPERGEO    Version 2.1                             Page v
  184.  
  185.  
  186.  
  187.  
  188.        Table of Contents
  189.  
  190.  
  191.  
  192.        Section 1.  Introduction....................................  1-1
  193.  
  194.        Section 2.  From Hyperspace to the Video Screen.............  2-1
  195.            2.1       From Four Dimensions to Three.................  2-1
  196.            2.1.1       Projection..................................  2-1
  197.            2.1.2       Intersection................................  2-2
  198.            2.2       Direct Three-Dimensional Geometry Definition..  2-2
  199.            2.3       From Three Dimensions to Two..................  2-3
  200.  
  201.        Section 3.  The HYPERGEO Program............................  3-1
  202.            3.1       General Structure.............................  3-2
  203.            3.2       The HYPERGEO Display Screen...................  3-4
  204.            3.2.1       Color.......................................  3-4
  205.            3.2.2       On-line Help................................  3-7
  206.            3.2.3       Dialog Boxes................................  3-8
  207.            3.2.3.1       Generic Text Dialog Boxes.................  3-9
  208.            3.2.3.2       File Selection Dialog Boxes...............  3-10
  209.            3.2.3.3       Color Selection Dialog Box................  3-12
  210.            3.2.3.4       List Selection Dialog Box.................  3-13
  211.            3.2.3.5       Action Approval Dialog Box................  3-13
  212.            3.3       Geometry Manipulations........................  3-14
  213.            3.3.1       Rotations...................................  3-14
  214.            3.3.1.1       Orthogonal Orientations...................  3-18
  215.            3.3.1.2       The Locate Function for Rotations.........  3-19
  216.            3.3.2       Translation of the Intersecting Hyperplane..  3-19
  217.            3.3.3       Moving the Viewpoint for 4-D Projections....  3-20
  218.            3.3.4       Translation of Individual Vertexes..........  3-22
  219.            3.3.4.1       4-D Image Considerations..................  3-22
  220.            3.3.4.2       The Two User Interface States.............  3-23
  221.            3.3.4.3       Vertex Translations without a Mouse.......  3-24
  222.            3.4       View Control..................................  3-25
  223.            3.4.1       The Five Display Modes......................  3-25
  224.            3.4.2       Key Display Parameters......................  3-26
  225.            3.4.3       Hyperface Highlighting......................  3-27
  226.            3.4.4       W-coordinate Spectrum Banding...............  3-28
  227.            3.5       Journalling...................................  3-29
  228.            3.5.1       Recording a Journal File....................  3-30
  229.            3.5.2       Replaying a Journal File....................  3-31
  230.            3.6       PCX File Output...............................  3-34
  231.  
  232.  
  233.            HYPERGEO    Version 2.1                             Page vi
  234.  
  235.  
  236.  
  237.  
  238.        Table of Contents (continued)
  239.  
  240.  
  241.  
  242.        Section 4.  Inner Workings..................................  4-1
  243.            4.1       Units.........................................  4-1
  244.            4.2       Verification of the Geometry Definition.......  4-1
  245.            4.3       Overlay Swapping..............................  4-2
  246.  
  247.        Section 5.  Restrictions and Limitations....................  5-1
  248.            5.1       Geometry Definition File......................  5-1
  249.            5.2       Mathematical Precision........................  5-2
  250.  
  251.        Section 6.  Supplied Geometry Definition Files..............  6-1
  252.  
  253.        Appendix A. Geometry Definition File........................  A-1
  254.            A.1       Text Format of the Geometry Definition File...  A-1
  255.            A.2       The GEO2BIN Utility Program...................  A-3
  256.  
  257.        Appendix B. Configuration File..............................  B-1
  258.  
  259.        Appendix C. Command Line Arguments..........................  C-1
  260.  
  261.        Appendix D. Interactive Commands............................  D-1
  262.            D.1       Keyboard Commands and the Modifier Keys.......  D-1
  263.            D.2       Mouse Selected Interactive Commands...........  D-2
  264.            D.3       Interactive Parameter Specification...........  D-5
  265.            D.4       HYPERGEO Interactive Keyboard Commands........  D-6
  266.  
  267.        Appendix E. Running HYPERGEO under Microsoft Windows........  E-1
  268.  
  269.        Appendix F. What's New in Version 2.........................  F-1
  270.  
  271.        Appendix G. Utility Programs for Geometry File Generation...  G-1
  272.  
  273.  
  274.            HYPERGEO    Version 2.1                             Page 1-1
  275.  
  276.  
  277.  
  278.  
  279.        Section 1.    Introduction
  280.  
  281.  
  282.            "I tried turning the hypercube around, moving it away,
  283.            bringing it up close, turning it around another way.
  284.            Suddenly I could feel it!  The hypercube had leaped into
  285.            palpable reality, as I learned how to manipulate it, feeling
  286.            in my fingertips the power to change what I saw and change it
  287.            back again.  The active control at the computer console
  288.            created a union of kinesthetics and visual thinking which
  289.            brought the hypercube up to the level of intuitive
  290.            understanding."
  291.  
  292.                                            "The Mathematical Experience"
  293.                                            Philip J. Davis & Reuben Hersh
  294.  
  295.  
  296.  
  297.        For reasons known only to the Great Cosmic Programmer, the
  298.        universe in which we dwell possesses three spatial dimensions.
  299.        Our senses of physical perception operate intuitively and
  300.        naturally in these three dimensions.  Indeed, it requires an act
  301.        of intellectual imagination to consider the nature of alternative
  302.        dimensional realities.  With some contrivance we can picture the
  303.        peculiar qualities of a world aware of only two dimensions.  This
  304.        is the substance of Edwin Abott Abott's famous fantasy "Flatland"
  305.        (written from the viewpoint of Abott's two-dimensional narrator
  306.        A. Square).  We can make the mental adjustment required to conceive
  307.        of a two-dimensional universe by imagining one of our three
  308.        dimensions to be somehow squeezed down to zero extent and thus
  309.        out of existence.  It is a simple matter to draw pictures of
  310.        two-dimensional objects; in fact, the nature of writing surfaces
  311.        and writing implements is such that all our drawings are already
  312.        limited to two dimensions (it is only the insistently
  313.        three-dimensional nature of our sense of sight that causes us to
  314.        "see" depth in our flat artwork).  Perceptions in two dimensions
  315.        are accessible because they already exist within our
  316.        three-dimensional space and because we have at hand ready
  317.        physical analogs in the form of flat surfaces of solid objects.
  318.  
  319.        In "Flatland", Abott makes his narrator aware of the existence of
  320.        three-dimensional "Spaceland" although A. Square is unable to
  321.        fully conceive of its nature.  He further contemplates the
  322.        analogous relationship between Spaceland and a still higher
  323.        universe possessing four dimensions.  In that scenario we, the
  324.        inhabitants of our familiar three-dimensional reality, become the
  325.        Flatlanders, constitutionally unable to perceive the totality of
  326.        the encompassing higher realm.
  327.  
  328.  
  329.            HYPERGEO    Version 2.1                             Page 1-2
  330.  
  331.  
  332.        When we try to imagine the shape and configuration of
  333.        "hyperobjects" - that is, objects constructed in four dimensions
  334.        - we are stopped short by the inability of our conceptual powers
  335.        to find a place for the fourth dimension.  For whatever reason,
  336.        there simply is no way to twist or rearrange four separate
  337.        orthogonal dimensions so they make spatial sense to us.
  338.  
  339.        Our best hope for grasping the essence of four-dimensional
  340.        reality lies in somehow reducing the full complexity of
  341.        hyperobjects to a simplified image that can be represented in
  342.        three dimensions.  Although the full four-dimensional "depth" of
  343.        the hyperobject's geometry cannot be totally conveyed this way in
  344.        a single image, it is possible by generating sequences of such
  345.        images - each corresponding to a different orientation of the
  346.        hyperobject in four-dimensional space - to begin to comprehend
  347.        the shape of the fourth dimension.  Naturally, computers and the
  348.        capabilities of computer graphics are ideally suited for use as
  349.        tools in generating such images, and it is well within the powers
  350.        of the typical personal computer equipped with a standard display
  351.        device to serve as a research platform for the investigation of
  352.        hyperspace.
  353.  
  354.  
  355.            HYPERGEO    Version 2.1                             Page 2-1
  356.  
  357.  
  358.  
  359.  
  360.        Section 2.    From Hyperspace to the Video Screen
  361.  
  362.  
  363.        When a computer is used to generate images derived from a
  364.        four-dimensional hyperobject, two separate stages of geometric
  365.        transformation must be performed.  First, the four-dimensional
  366.        object must be reduced to a particular three-dimensional image
  367.        based on the object's orientation and position in hyperspace.
  368.        Second, the resulting three-dimensional image must be represented
  369.        on the flat, two-dimensional surface of the computer's display
  370.        device.  Because each of these transformations entails the loss
  371.        of dimensional information, it is desirable to provide the
  372.        computer user with as much control as possible over the manner in
  373.        which the images are constructed and displayed.
  374.  
  375.  
  376.        2.1  From Four Dimensions to Three
  377.  
  378.        There are two basic approaches for generating a three-dimensional
  379.        image from a four-dimensional object: projection and
  380.        intersection.  Each is highly analogous to the same technique
  381.        applied to the reduction of a three-dimensional object to a flat,
  382.        two-dimensional representation.
  383.  
  384.  
  385.        2.1.1  Projection
  386.  
  387.        Projection is the mathematically simpler of the two.  It entails
  388.        the construction of an imaginary "viewscreen" in hyperspace and
  389.        the projection of each point in the hyperobject onto that
  390.        viewscreen.  The calculations are performed by considering the
  391.        straight lines that run between each point in the hyperobject and
  392.        a fixed four-dimensional viewpoint; the desired projection points
  393.        are the intersections of these lines with the viewscreen.  But
  394.        because this is four-dimensional hyperspace, the viewscreen is
  395.        itself a three-dimensional "hyperplane" (not just a simple
  396.        two-dimensional plane), and the projection points all possess
  397.        three dimensions.  The positions of the viewpoint and viewscreen
  398.        in hyperspace relative to the hyperobject determine the degree of
  399.        "perspective" in the resulting three-dimensional image.  (This
  400.        process is entirely analogous to the projection of a 3-D object
  401.        onto a flat 2-D viewscreen; in fact, just such a 3-D to 2-D
  402.        projection is used subsequently to generate the final graphical
  403.        output.)
  404.  
  405.        In a 4-D to 3-D projection, every point in the original
  406.        hyperobject is always visible as a corresponding projected point
  407.        in the 3-D image (although, of course, a point may from time to
  408.        time happen to be hidden behind other points or lines).  The
  409.  
  410.  
  411.            HYPERGEO    Version 2.1                             Page 2-2
  412.  
  413.        overall 3-D image that results is a network of connected lines
  414.        corresponding to the vertexes and edges of the 4-D hyperobject;
  415.        it is not itself a simple 3-D polyhedron.  The complexity of this
  416.        network relates directly to the four-dimensional structure of the
  417.        hyperobject.
  418.  
  419.  
  420.        2.1.2  Intersection
  421.  
  422.        The second approach for reducing a four-dimensional hyperobject
  423.        to a three-dimensional image involves calculating the
  424.        intersection of the hyperobject with a three-dimensional
  425.        hyperplane.  This can be thought of as cutting a "slice" through
  426.        the hyperobject and viewing the resulting cross-section.  But
  427.        again, since for such 4-D to 3-D intersections the cutting
  428.        instrument is a hyperplane, the object that is determined by the
  429.        cut is three-dimensional and forms a simple 3-D polyhedron -
  430.        assuming that the original 4-D hyperobject is itself simple and
  431.        is externally convex.  (The 3-D to 2-D analogy of this involves
  432.        making a planar cut through the 3-D geometry and viewing the flat
  433.        polygonal outline of the cross-section.)
  434.  
  435.        In a 4-D to 3-D intersection, the only portion of the hyperobject
  436.        that contributes to the 3-D image is that lying exactly on the
  437.        intersecting hyperplane; all the rest is lost and invisible.  For
  438.        this reason, an intersection can result in very minimal 3-D
  439.        polyhedra such as pyramids and box shapes, even from a complex
  440.        hyperobject.  In fact, if the intersecting hyperplane is
  441.        positioned (in hyperspace) entirely outside the extents of the
  442.        hyperobject, the resulting 3-D image will be empty.  It is
  443.        generally most revealing to examine the sequence of intersections
  444.        that result when the cutting hyperplane is gradually moved
  445.        through the hyperobject, starting at one face or edge and working
  446.        across to the opposite.  By taking a number of such sequences for
  447.        various orientations of the hyperobject in four-space, the user
  448.        can achieve a sense of its "extradimensional" structure.
  449.  
  450.  
  451.        2.2  Direct Three-Dimensional Geometry Definition
  452.  
  453.        The primary function of the HYPERGEO program is the display and
  454.        examination of the properties of four-dimensional geometrical
  455.        objects.  The program's input is normally expected to be a
  456.        geometry specification that provides four coordinate values for
  457.        each vertex point.  All of the preceding discussion has been in
  458.        terms of this basic scenario.
  459.  
  460.  
  461.            HYPERGEO    Version 2.1                             Page 2-3
  462.  
  463.  
  464.        However, the program will also accept geometry definitions of
  465.        three-dimensional objects and will display them with all features
  466.        available that relate to the 3-D level of processing.  When used
  467.        this way, the program bypasses the 4-D to 3-D image reduction
  468.        steps described above, and uses the input geometry directly as
  469.        the 3-D image definition.  When the input geometry is
  470.        three-dimensional, all of the program's commands that normally
  471.        perform operations in four dimensions are deactivated while those
  472.        commands and features that operate on the 3-D image and on its
  473.        resultant 2-D representation are fully functional.
  474.  
  475.  
  476.        2.3  From Three Dimensions to Two
  477.  
  478.        All the options available in the HYPERGEO program for converting
  479.        a three-dimensional image into a viewable two-dimensional picture
  480.        on the computer's display are variations of the projection
  481.        technique referred to above.  Each 3-D point is projected onto a
  482.        2-D viewscreen by calculating where the line that runs between
  483.        the 3-D point and a fixed 3-D viewpoint intersects the
  484.        viewscreen.  However, unlike the case for 4-D to 3-D projections,
  485.        for 3-D to 2-D projections the viewscreen and viewpoint don't
  486.        have to be invented; they correspond to the surface of the real
  487.        display device and the eye of the (presumably real) viewer.
  488.        Given this basic technique for projecting a 3-D image onto a flat
  489.        screen, a great deal can be done to enhance the meaningfulness of
  490.        the resulting 2-D picture.  The following alternatives are
  491.        available:
  492.  
  493.  
  494.            *  Perspective Projection
  495.  
  496.            A perspective projection is produced by performing a
  497.            straightforward linear projection of the 3-D model onto the
  498.            2-D viewscreen using a realistic value for the distance
  499.            between the viewpoint and the screen.  It generates a
  500.            wireframe representation that provides a measure of
  501.            perspective which gives some sense of 3-D depth.  This sense
  502.            of depth perception is augmented by allowing the user to
  503.            modify the apparent eye-to-screen distance, thus adjusting
  504.            the amount of perspective in the picture.
  505.  
  506.            A perspective projection is the most basic form of 2-D image;
  507.            all other imaging modes are enhanced variations of
  508.            perspective projections.
  509.  
  510.  
  511.            HYPERGEO    Version 2.1                             Page 2-4
  512.  
  513.  
  514.  
  515.            *  Stereoscopic Projection (Anaglyph)
  516.  
  517.            This uses the wireframe representation of a simple
  518.            perspective projection, but two separate images are generated
  519.            corresponding to the projections as perceived by the right
  520.            and left eye (the calculation of the projections takes into
  521.            account the distance between the eyes).  When the two images
  522.            are displayed in contrasting colors (typically red and blue
  523.            or red and green), they can be viewed through filtering "3D"
  524.            glasses which cause each eye to see only the single image
  525.            generated for its particular viewpoint.  The brain perceives
  526.            the image with full three-dimensional depth.  Although
  527.            wearing the colored glasses is somewhat cumbersome, this
  528.            method produces far and away the most vivid and revealing
  529.            impressions of the structure of the 3-D object.
  530.  
  531.            (The general technique of generating dual projections that
  532.            correspond to each eye's separate view is known as
  533.            "stereoscopic" projection.  The particular method of
  534.            stereoscopic viewing that uses different colors for the two
  535.            projections with matching colored filters for the eyes is
  536.            called an "anaglyph".)
  537.  
  538.  
  539.            *  Hidden-line Projection
  540.  
  541.            This approach begins with the wire-frame representation
  542.            generated by a normal perspective projection.  Additional
  543.            calculations are performed that prevent the display of any
  544.            edge lying behind a face of the 3-D object.  This causes the
  545.            object to appear opaque.
  546.  
  547.  
  548.            *  Surface Relief
  549.  
  550.            Surface relief display mode combines the features of a
  551.            hidden-line projection with a stereoscopic anaglyph.  Using
  552.            "3D" colored glasses, the viewer perceives the image with
  553.            full three-dimensional depth, but because of the hidden-line
  554.            processing, only those edges visible on the forward surface
  555.            of the object are displayed.  The wireframe representation
  556.            appears opaque, presenting a perceptually vivid sense of the
  557.            shape of its surface relief.
  558.  
  559.  
  560.            HYPERGEO    Version 2.1                             Page 2-5
  561.  
  562.  
  563.  
  564.            *  Solid Projection
  565.  
  566.            A solid projection performs all the processing required by a
  567.            hidden-line projection plus some additional calculations to
  568.            determine the orientation of each visible face of the 3-D
  569.            object.  Rather than drawing the edge outlines of the object,
  570.            the faces are filled in using either a density of fill
  571.            pattern or a particular shade of color that corresponds to
  572.            the obliqueness of the face as seen from a theoretical light
  573.            source; faces that are most directly illuminated are filled
  574.            the brightest.  The result is a fairly realistic rendering of
  575.            the 3-D object as solid.
  576.  
  577.            (Note: since hidden-line, surface relief, and solid
  578.            projections require the 3-D object to be a simple polyhedron,
  579.            they can only be used with 3-D images created by a 4-D
  580.            intersection, not those created by 4-D projections.)
  581.  
  582.  
  583.            HYPERGEO    Version 2.1                             Page 3-1
  584.  
  585.  
  586.  
  587.  
  588.        Section 3.    The HYPERGEO Program
  589.  
  590.  
  591.        HYPERGEO is a program written for the IBM-PC and compatible
  592.        computers running the PC-DOS or MS-DOS operating system.  It
  593.        requires about 320K bytes of free memory plus whatever is needed
  594.        for the data requirements of the particular geometry currently
  595.        active in the program.  For most ordinary objects (including the
  596.        basic hypercube) memory requirements are quite modest, but they
  597.        can increase considerably for very large and complex geometries.
  598.        The program does not use expanded or extended memory for database
  599.        allocations, so the 640K DOS barrier is the absolute limiting
  600.        factor on the size of geometries that can be handled.
  601.  
  602.        The program will generate graphical output for EGA, VGA, or
  603.        Hercules display devices.  It does not support CGA graphics.  For
  604.        Hercules (and optionally for the others) the graphics are
  605.        monochrome, and the stereoscopic anaglyph display modes are
  606.        unavailable.  The performance of HYPERGEO is identical on EGA and
  607.        VGA systems with the exception of one area in which the VGA's
  608.        higher performance is utilized: the enhanced VGA color
  609.        capabilities are used to provide superior solid surface
  610.        rendering.  No non-standard, so-called "super-VGA" display modes
  611.        are supported in this version.
  612.  
  613.        HYPERGEO performs some floating-point calculations, and the speed
  614.        of the program will be enhanced somewhat by the presence of a
  615.        math coprocessor chip such as an 80287 or 80387.  However, the
  616.        bulk of the program's mathematical operations are performed using
  617.        an integer based, fixed-point format of data representation, so a
  618.        system lacking a math coprocessor will perform almost as well.  A
  619.        coprocessor will be most useful on 80286 (or lower) PCs; systems
  620.        with an 80386 CPU can perform 32-bit integer arithmetic which
  621.        allows the program's special fixed-point calculations to be
  622.        executed about as fast as coprocessor-accelerated floating-point.
  623.        If the system has a math coprocessor, HYPERGEO will detect its
  624.        presence automatically and make use of it.  All features are
  625.        functional without a coprocessor, but performance may be a bit
  626.        slower (especially on 80286s).
  627.  
  628.        If a mouse pointing device is on the system, it can be used to
  629.        invoke the interactive rotation and translation commands and to
  630.        select other commands via the program's menu (see below).
  631.        However, a mouse is not required since all commands can be
  632.        executed through keyboard entry.  Only the left and right mouse
  633.        buttons are used, so a two-button mouse is as good as a
  634.        three-button mouse.
  635.  
  636.  
  637.            HYPERGEO    Version 2.1                             Page 3-2
  638.  
  639.  
  640.        The program will make use of a standard mouse driver if one has
  641.        been installed.  ("Drivers" are hardware device support programs
  642.        that are run in background by DOS at system start up.  They are
  643.        typically "installed" by being specified in a DEVICE statement in
  644.        the CONFIG.SYS file.)  Most mice are supplied by their
  645.        manufacturer with a standard mouse driver program, and the
  646.        mouse's documentation will include directions for installing the
  647.        driver.  Other general-purpose mouse drivers - such as the one
  648.        supplied with Microsoft Windows 3.x - are also standard and will
  649.        enable proper use of the mouse by HYPERGEO.
  650.  
  651.        HYPERGEO also contains its own mouse support programming which
  652.        permits the use of a Microsoft compatible mouse without any
  653.        device driver. (Your system may be configured this way if it has
  654.        a mouse which is used only by other applications which also
  655.        contain their own internal device driver programming.)  The mouse
  656.        may be connected to either serial port, COM1 or COM2.
  657.  
  658.  
  659.        3.1  General Structure
  660.  
  661.        The HYPERGEO program accepts a description of the topology of a
  662.        four-dimensional hyperobject.  This description is contained in a
  663.        "geometry definition file" which starts out as a plain text file
  664.        that can be edited by the user.  It contains coordinate
  665.        information for each vertex point of the hyperobject plus
  666.        connectivity information that indicates which vertexes are joined
  667.        by edges.  See Appendix A for a complete discussion of the format
  668.        of this file.
  669.  
  670.        The text version of the geometry definition file is preprocessed
  671.        into a more efficient binary form by the special utility program
  672.        GEO2BIN.  This program analyzes the topology and determines which
  673.        edges form external faces and, in turn, which faces form external
  674.        hyperfaces.  GEO2BIN then writes the binary version of the
  675.        geometry defintion into a new file which contains all the orginal
  676.        vertex point and connectivity information plus the newly derived
  677.        face and hyperface data.  This binary file (which is not
  678.        human-readable and cannot be edited) is what the main HYPERGEO
  679.        program accepts as its primary input.  See Appendix A for a
  680.        fuller description of how to use the GEO2BIN utility.
  681.  
  682.        The program also accepts various parameters that control the
  683.        manner in which the hyperobject is displayed.  There are two ways
  684.        in which these parameters are given to the program: through a
  685.        special configuration file or as command-line arguments.  (Note:
  686.        There is not a complete correspondence between all possible
  687.        configuration file parameters and all possible command-line
  688.        arguments.  Some parameters can be specified only in the
  689.        configuration file and some only as command-line arguments.)  See
  690.        Appendix B for a full description of the format of the
  691.  
  692.  
  693.            HYPERGEO    Version 2.1                             Page 3-3
  694.  
  695.  
  696.        configuration file and Appendix C for a description of the
  697.        available command-line arguments.
  698.  
  699.        A section of configuration parameters can also be appended to the
  700.        end of a geometry definition file following all topology
  701.        information; the format is the same as in the primary
  702.        configuration file.  In effect, this acts as a secondary
  703.        extension to the configuration file which will apply only to that
  704.        particular geometry file.
  705.  
  706.        The order of precedence for conflicting parameters is as follows.
  707.        Command-line arguments take the highest precedence and will
  708.        always override a corresponding parameter in the configuration
  709.        file or in the geometry definition file.  Also, configuration
  710.        parameters contained in a geometry definition file take
  711.        precedence over corresponding parameters in the primary
  712.        configuration file.  Finally, every parameter has a pre-defined
  713.        default value which will be used in the absence of any
  714.        specification via the configuration file or the command line.
  715.        The default values for all parameters are listed in the
  716.        appendixes.
  717.  
  718.        To summarize the order of precedence for the various avenues of
  719.        parameter specification, they are, from highest to lowest:
  720.  
  721.            *   Command line arguments
  722.  
  723.            *   Configuration parameters in current geometry definition
  724.                file
  725.  
  726.            *   Configuration parameters in primary configuration file
  727.  
  728.            *   Program's internal default values
  729.  
  730.        It should be noted that no configuration file or command-line
  731.        arguments are absolutely required.  The program will operate
  732.        without them using reasonable default values.
  733.  
  734.        Once all geometry and configuration information has been read in
  735.        and processed, the HYPERGEO program creates a display of the
  736.        image of the hyperobject.  At this point, the user has access to
  737.        a set of commands which facilitate the interactive manipulation
  738.        of the hyperobject's display.  These interactive commands are
  739.        described throughout subsequent sections of this document and are
  740.        summarized in Appendix D.
  741.  
  742.  
  743.            HYPERGEO    Version 2.1                             Page 3-4
  744.  
  745.  
  746.  
  747.        3.2  The HYPERGEO Display Screen
  748.  
  749.        The screen displayed by the HYPERGEO program consists of two
  750.        areas: the primary graphics area where the image of the
  751.        geometrical object being examined is displayed, and an optional
  752.        menu and mouse control pad area.  The user may select whether or
  753.        not to display the menu area.  If it is not displayed, the
  754.        primary graphics area is the entire screen.   When the menu area
  755.        is displayed, it occupies the right edge of the screen, and the
  756.        primary graphics area fills the entire remaining screen.
  757.  
  758.        The menu area lists a number of display parameters that may be
  759.        modified interactively by the user.  It also contains a panel of
  760.        command selection boxes that may be activated by the mouse to
  761.        perform various manipulations of the object being displayed.  A
  762.        mouse is not required for the HYPERGEO program; all mouse
  763.        functions may also be invoked through keyboard commands.
  764.        However, the mouse does provide a more naturally intuitive
  765.        feeling of control over the manipulation of the geometry being
  766.        studied.  The mouse functions are only available when the menu
  767.        area is displayed.  (All keyboard commands are always available
  768.        regardless of whether the menu area is displayed or not.)
  769.  
  770.        The HYPERGEO program automatically scales and centers the
  771.        geometry display within the primary graphics area.  The user may
  772.        subsequently modify the scale and position of the display as
  773.        desired.
  774.  
  775.  
  776.        3.2.1  Color
  777.  
  778.        For systems with color EGA or VGA displays, the user has control
  779.        over the colors used to draw the various components which
  780.        comprise the overall graphical output.  The colors are specified
  781.        using statements in the configuration file and may be set to any
  782.        one of the sixteen standard EGA colors (listed in Appendix B).
  783.        In addition, the color used to draw the actual edge lines of the
  784.        geometrical object itself can be modified interactively from
  785.        within the HYPERGEO program.  In the absence of any user
  786.        specification, HYPERGEO uses a set of default colors which are
  787.        believed to provide an attractive and comfortably viewable
  788.        appearance (although, of course, such matters are subject to the
  789.        contentiousness of individual tastes).
  790.  
  791.  
  792.            HYPERGEO    Version 2.1                             Page 3-5
  793.  
  794.  
  795.        There are eight separate components that together make up the
  796.        total HYPERGEO display, and each can be assigned a different
  797.        color:
  798.  
  799.            *   Primary background
  800.  
  801.                This is the background color which covers the entire
  802.                screen (including the optional menu area) before any
  803.                graphics are drawn.  It may be any color, but a dark
  804.                shade such as black or the default dark gray is
  805.                recommended for visibility.  This is especially so when
  806.                using the stereoscopic (anaglyph) display modes, which
  807.                require a dark background to produce a good 3-D effect.
  808.                (Black is probably the most vivid in this respect, but
  809.                dark gray is a bit easier on the eyes for extended
  810.                viewing.)
  811.  
  812.                Default: dark gray
  813.  
  814.                (Note: On many EGA displays the default "dark gray" tends
  815.                to appear somewhat blue and not very dark; in this
  816.                situation it is probably better to use black for the
  817.                primary background.  For VGA systems, HYPERGEO alters the
  818.                definition of "dark gray" to a shade that is reliably
  819.                both darker and grayer.)
  820.  
  821.  
  822.            *   Primary foreground
  823.  
  824.                This is the color used to draw the actual edge lines of
  825.                the geometrical object as it is projected onto the
  826.                computer's display screen.  This color is also used for
  827.                the transient data values displayed in the menu area and
  828.                for most text appearing in the various dialog boxes.
  829.                Naturally, the primary foreground color should give a
  830.                good contrast with the primary background color.
  831.  
  832.                Default: white
  833.  
  834.  
  835.            *   Menu
  836.  
  837.                This color is used for drawing the outlines and fixed
  838.                labels of the data items and the mouse control pad
  839.                section in the menu area of the HYPERGEO program.  It is
  840.                also used for the display of the name of the geometry
  841.                definition file which the user may select to have appear
  842.                in the upper, left corner of the primary graphics area,
  843.                and for the border color and background shading in dialog
  844.                boxes.
  845.  
  846.                Default: yellow
  847.  
  848.  
  849.            HYPERGEO    Version 2.1                             Page 3-6
  850.  
  851.  
  852.  
  853.            *   Geometry axis vectors
  854.  
  855.                As the user rotates the geometrical object in hyperspace,
  856.                the HYPERGEO program keeps track of the orientation of
  857.                each of the axes of the object's original coordinate
  858.                system.  A projection onto 3-space of the unit vector
  859.                drawn from the origin along each axis may optionally be
  860.                displayed as part of the primary geometry graphics.  This
  861.                assists in visualizing the displacement of the original
  862.                orientation of the object in all the dimensions of
  863.                hyperspace.
  864.  
  865.                Default: cyan
  866.  
  867.  
  868.            *   Message window background
  869.  
  870.                This is the background color for all prompting and
  871.                message dialog box windows.
  872.  
  873.                Default: brown
  874.  
  875.  
  876.            *   Help window background
  877.  
  878.                This is the background color used in the on-line help
  879.                windows.
  880.  
  881.                Default: light gray
  882.  
  883.  
  884.            *   Help window text
  885.  
  886.                This is the color used for the text in the on-line help
  887.                windows.
  888.  
  889.                Default: black
  890.  
  891.  
  892.            *   Hyperface highlighting
  893.  
  894.                For 4-D geometries the user may select to highlight the
  895.                portion of the visible graphics that belongs to one
  896.                particular hyperface in the original hyperobject.  This
  897.                is done by using a different color to display all edge
  898.                lines belonging to the highlighted hyperface.
  899.  
  900.                Default: light magenta
  901.  
  902.  
  903.            HYPERGEO    Version 2.1                             Page 3-7
  904.  
  905.  
  906.        Color is also used in the surface rendering of the solid display
  907.        mode, which may be used with images produced by 4-D
  908.        intersections, but its use and configurability are complicated by
  909.        the differing capabilities of EGA and VGA display devices.  For
  910.        EGA systems, the colors used for solid surface rendering are
  911.        fixed by the program and are not modifiable by the user; these
  912.        colors give an acceptable gradation of shades from light to dark
  913.        and are not colors available in the sixteen standard EGA colors.
  914.  
  915.        For VGA, the program takes full advantage of the enhanced color
  916.        capabilities of the display device, in particular its ability to
  917.        generate over 256,000 discrete shades.  HYPERGEO uses twelve
  918.        variations - ranging from very light to very dark - of a single
  919.        VGA color to produce the consistent shadings necessary for
  920.        realistic solid surface rendering.  (The program can also
  921.        optionally make use of color "dithering" techniques - the
  922.        pixel-by-pixel mixing of two different colors - to increase the
  923.        effective number of discrete shades available for solid surface
  924.        rendering to twenty-three.)  The user can specify the base color
  925.        (in terms of a VGA red/green/blue color definition) from which
  926.        HYPERGEO will generate the twelve graduated shadings.  For
  927.        systems with a mouse, this base shade may be interactively
  928.        modified using a color selection dialog box.
  929.  
  930.        For either EGA or VGA, the user may select not to use color for
  931.        solid surface rendering, but to instead use variable pattern
  932.        fill, which just uses the primary foreground color.  Variable
  933.        pattern fill is always used on monochrome systems.
  934.  
  935.        Several other HYPERGEO features make special use of color, but in
  936.        general these colors do not accept any modification from the
  937.        user.  The stereoscopic anaglyph display modes use two shades of
  938.        red and blue.  However, these colors are fixed by the
  939.        requirements of the "3D" viewing glasses and are not modifiable
  940.        by the user.  Also, the W-coordinate spectrum banding feature
  941.        uses a spectrum of ten colors to indicate the W-coordinate value
  942.        of edges displayed in 4-D projections and intersections.  Again,
  943.        however, these color values are determined by the program
  944.        requirements and may not be respecified.
  945.  
  946.  
  947.        3.2.2  On-line Help
  948.  
  949.        On-line help is available whenever the primary graphics are
  950.        visible and interactive editing is available within the HYPERGEO
  951.        program.  The help system is entered by typing F1.  All help
  952.        information exists in a set of screens or pages, each
  953.        corresponding to a group of related commands.  The commands are
  954.        listed according to the keystroke that executes them along with a
  955.        brief description of their function and usage.
  956.  
  957.  
  958.            HYPERGEO    Version 2.1                             Page 3-8
  959.  
  960.  
  961.        There is one main, top-level help page which gives an overview of
  962.        all HYPERGEO interactive commands and presents a menu listing the
  963.        separate lower-level help pages.  This main page is what first
  964.        appears when the help system is invoked via the F1 key.  The user
  965.        then selects a particular page by typing its number.  While in
  966.        the help system, typing F1 always returns to the main help menu,
  967.        and typing any valid help page number always brings up that
  968.        individual page.  To leave the help system and return to the
  969.        HYPERGEO display type <Esc>; this restores the screen to its
  970.        previous state.
  971.  
  972.  
  973.        3.2.3  Dialog Boxes
  974.  
  975.        Some of the interactive commands will prompt for additional user
  976.        input (such as a numeric value, a color name, or a file name).
  977.        This is done using an interactive window known as a "dialog box"
  978.        which pops up in the middle of the primary graphics area.  There
  979.        are several different types of dialog box used by HYPERGEO
  980.        depending on the context of the command.  They can be divided
  981.        into two major categories: those which request data to be entered
  982.        or selected by the user, and those which merely display an
  983.        informational message.
  984.  
  985.        All dialog boxes remain visible on the screen until they are
  986.        actively dismissed by the user; this can be done by using the
  987.        mouse to select the "Ok" button that appears at the bottom of the
  988.        dialog box.  For those types of dialog box that request user
  989.        input, selecting "Ok" tells the program to accept the input as
  990.        specified and to go ahead and execute the command.  Dialog boxes
  991.        that just display a message have only this single "Ok" button; it
  992.        should be selected once the user has read and understood the
  993.        box's contents.  Dialog boxes that request input have a "Cancel"
  994.        button in addition to the "Ok" button; selecting "Cancel" tells
  995.        the program to disregard any input the user may have entered in
  996.        the dialog box and to cancel the command and dismiss the dialog
  997.        box's window.
  998.  
  999.        Note: For all mouse selections within HYPERGEO dialog boxes
  1000.        either the left or the right mouse button can be used; they are
  1001.        equivalent.  Also, whenever a dialog box is active, the mouse
  1002.        cursor changes to a hand icon with a pointing finger.
  1003.  
  1004.        Typing <Enter> when a dialog box is active selects the "Ok"
  1005.        button, and typing <Esc> selects the "Cancel" button.  These
  1006.        keyboard equivalents can be used to perform dialog box functions
  1007.        on systems without a mouse.
  1008.  
  1009.  
  1010.            HYPERGEO    Version 2.1                             Page 3-9
  1011.  
  1012.  
  1013.        Dialog boxes that merely contain information are used whenever an
  1014.        error condition (such as invalid command input) must be reported.
  1015.        No user input is asked for; the window serves only to convey a
  1016.        message.  Once it has been read, the user may dismiss the window
  1017.        by selecting the "Ok" button with the mouse (or by pressing
  1018.        <Enter> or <Esc>).
  1019.  
  1020.        One special instance of a message dialog box is the HYPERGEO
  1021.        Information Window.  This window contains some basic data
  1022.        describing the geometry and topology of the currently active
  1023.        object, and it also contains the HYPERGEO copyright statement.
  1024.        By default, the Information Window is displayed automatically
  1025.        upon the initial start-up of the program and every time a new
  1026.        geometry definition is read in (although the program may be
  1027.        configured to bypass this).  An interactive command exists to
  1028.        display the Information Window at any time during normal
  1029.        operation of the HYPERGEO program.  The Information Window is a
  1030.        normal message dialog box and may be dismissed by selecting the
  1031.        "Ok" button with the mouse (or by pressing <Enter> or <Esc>).
  1032.  
  1033.        Dialog boxes that request user input are one of the following
  1034.        special types:
  1035.  
  1036.            *  Generic text
  1037.  
  1038.            *  File selection
  1039.  
  1040.            *  Color selection
  1041.  
  1042.            *  List selection
  1043.  
  1044.            *  Action approval (yes/no)
  1045.  
  1046.  
  1047.        3.2.3.1  Generic Text Dialog Boxes
  1048.  
  1049.        A number of HYPERGEO's interactive commands require the user to
  1050.        type in a string of text.  Typically, this type of entry is used
  1051.        to specify a numeric value (or possibly a sequence of two or more
  1052.        values) to be assigned to a display parameter.  The text dialog
  1053.        box contains a title bar identifying its function and, below it,
  1054.        an area in which appears the text entered by the user.  A special
  1055.        cursor symbol is visible in this type-in area indicating the
  1056.        point at which the next entered character will appear.  The arrow
  1057.        keys may be used to move the cursor, and the standard
  1058.        line-editing keys such as <Delete>, <Backspace>, <Home>, and
  1059.        <End> are also functional.  The special sequence Ctrl-U can be
  1060.        used to completely clear the contents of the type-in area and
  1061.        move the cursor to the first character position.
  1062.  
  1063.  
  1064.            HYPERGEO    Version 2.1                             Page 3-10
  1065.  
  1066.  
  1067.        The user should type in the appropriate value which will appear
  1068.        in the data input area, and should terminate the entry by
  1069.        selecting the "Ok" button with the mouse (or by pressing
  1070.        <Enter>); this indicates that the entry is complete and correct
  1071.        and initiates the particular command.  Selecting "Cancel" (or
  1072.        pressing <Esc>) at any time while a text dialog box is displayed
  1073.        will dismiss the dialog box and cancel the command.
  1074.  
  1075.  
  1076.        3.2.3.2  File Selection Dialog Boxes
  1077.  
  1078.        HYPERGEO command functions that require the specification of a
  1079.        file name make use of the special file selection dialog box.
  1080.        There are currently two such commands: the New Geometry
  1081.        Definition File command (keystroke 'F'), and the Journal File
  1082.        Replay command (keystroke 'J').
  1083.  
  1084.        The file selection dialog box has all of the features of a
  1085.        generic text dialog box plus a large sub-window in which a list
  1086.        of available file names is displayed, sorted in alphanumeric
  1087.        order.  The sub-window has a scroll-bar along its right edge
  1088.        which can be used to move the list of file names up and down in
  1089.        the sub-window if the list is too long to be visible all at once.
  1090.        The user chooses a particular file name from the list by
  1091.        selecting its name in the sub-window with the mouse.
  1092.  
  1093.        When a file selection dialog box first pops-up, the text area
  1094.        contains a wild-card specification based on the default extension
  1095.        for the type of file required by the particular command.  For
  1096.        example, for the Journal File Replay command, the wild-card *.JNL
  1097.        is used.  All files that satisfy the wild-card specification will
  1098.        be listed in the sub-window, with no individual file name
  1099.        highlighted as being selected.  Until a particular file is
  1100.        selected, the dialog box's "Ok" button is blanked out.  Once a
  1101.        file name is selected, its name will appear in the text type-in
  1102.        area which is just above the list sub-window.  The "Ok" button is
  1103.        then active and may be selected with the mouse thus confirming
  1104.        the name appearing in the text window as the file to be used by
  1105.        the command. (By double-clicking on a file name, the "Ok" button
  1106.        is immediately selected, confirming the file name and causing the
  1107.        HYPERGEO command to be performed on that file.)
  1108.  
  1109.        The text window in a file selection dialog box may also be used
  1110.        like a generic text input box, and a file name may be typed into
  1111.        it directly.  To do this, it is first necessary to activate the
  1112.        type-in cursor by positioning the mouse in the type-in area and
  1113.        clicking the left or right mouse button.
  1114.  
  1115.  
  1116.            HYPERGEO    Version 2.1                             Page 3-11
  1117.  
  1118.  
  1119.        It is also possible to enter a new wild-card specification by
  1120.        typing it into the text type-in area.  This feature can be used
  1121.        to change the directory in which the command looks for its file
  1122.        (the default is always the current directory in which HYPERGEO
  1123.        was executed).  For example, with the Journal File Replay
  1124.        command, the initial default wild-card is *.JNL; this will list
  1125.        all files with extension .JNL in the current directory.  By
  1126.        positioning the cursor to the left of the '*' character and
  1127.        typing in its full DOS path specification preceding the *.JNL
  1128.        wild-card, the user can access a list of all .JNL files in
  1129.        another alternative directory.
  1130.  
  1131.        Within a file selection dialog box the <Enter> and <Esc> keys
  1132.        have dual uses depending on whether or not there is an active
  1133.        type-in cursor.  When the type-in cursor is active and visible in
  1134.        the text area, the <Enter> key terminates the type-in and makes
  1135.        it the current selected item.  If it is a wild-card
  1136.        specification, the contents of the main list sub-window are
  1137.        changed to reflect its expansion.  When the type-in cursor is not
  1138.        active, the <Enter> key has its normal dialog box function of
  1139.        selecting the "Ok" button.  Similarly, for the <Esc> key, when
  1140.        there is no active type-in cursor, its function is the normal
  1141.        dialog box selection of the "Cancel" button.  When there is a
  1142.        type-in cursor visible in the text area, <Esc> causes all typed
  1143.        in changes to the text in that area to be discarded; the text
  1144.        area contents revert back to what they were before the type-in
  1145.        cursor was activated, and the cursor is deactivated.
  1146.  
  1147.        The scroll-bar has various active areas which can be selected
  1148.        with the mouse to adjust the position of the list of file names
  1149.        in the main sub-window.  Selecting the up (or down) button at the
  1150.        top (or bottom) of the scroll bar causes the list to move up (or
  1151.        down) one line.  Selecting the slider button and moving it up or
  1152.        down while keeping the mouse button pressed scrolls the list
  1153.        dynamically in step with the motion of the slider.  Pressing a
  1154.        mouse button while the mouse cursor is in the scroll-bar slide
  1155.        area above or below the slider button scrolls the list up or down
  1156.        by an amount equal to the number of lines visible in the list
  1157.        sub-window.
  1158.  
  1159.        Most of the file selection dialog box functions have keyboard
  1160.        equivalents, and this enables the use of the dialog box on
  1161.        systems without a mouse.  The type-in cursor can be activated in
  1162.        the text area by typing <Tab>.  The up and down arrow keys
  1163.        perform the single-line up and down scrolling functions, and Page
  1164.        Up and Page Down perform multi-line scrolling.  <Home> and <End>
  1165.        scroll the list all the way to the top or bottom respectively.
  1166.        Typing an alphanumeric character scrolls the file list so that
  1167.        those names beginning with the typed character appear at the top
  1168.        of the main sub-window.  To select a particular file, scroll the
  1169.        list of file names until the desired one is at the top of the
  1170.  
  1171.  
  1172.            HYPERGEO    Version 2.1                             Page 3-12
  1173.  
  1174.  
  1175.        list sub-window and type <Space>.  And as with all dialog boxes,
  1176.        <Enter> corresponds to the "Ok" button (assuming the type-in
  1177.        cursor is not active), and <Esc> selects "Cancel" (again,
  1178.        assuming no type-in cursor).
  1179.  
  1180.  
  1181.        3.2.3.3  Color Selection Dialog Box
  1182.  
  1183.        The color selection dialog box is used by the interactive color
  1184.        command when invoked to modify the shades used for solid surface
  1185.        rendering of an object.  It permits the precise specification of
  1186.        the base color to be used for generating the solid fill shades
  1187.        through the setting of its constituent red, green, and blue
  1188.        components.  Since only VGA displays have the capacity to display
  1189.        the full range of available colors, the color selection dialog
  1190.        box is only available on VGA-equipped systems.  In addition, a
  1191.        mouse must be present to use this type of dialog box (all of the
  1192.        other types of dialog box used in HYPERGEO may be operated with
  1193.        keyboard equivalents to the mouse).  If a system with VGA
  1194.        graphics has no mouse, a generic text dialog box will appear
  1195.        requesting the specification of the new color via the direct
  1196.        entry of three numeric values which are the respective
  1197.        intensities of the color's red, green, and blue components.
  1198.  
  1199.        The color selection dialog box has a main sub-window in which
  1200.        three "thermometer" controls appear, one for each of the three
  1201.        primary colors.  At the base of each control is an active button
  1202.        area which is divided into two halves, one marked '+' and the
  1203.        other '-'.  Selecting the '+' area with the mouse increases the
  1204.        intensity value of that control's color, and selecting '-'
  1205.        decreases it.  The indicator of each thermometer control moves to
  1206.        show the current value of its color as it is adjusted between
  1207.        zero and the maximum.
  1208.  
  1209.        Above the control sub-window is a color panel area which displays
  1210.        the actual color corresponding to the composite of the red, green
  1211.        and blue components.  As the controls are manipulated to change
  1212.        the intensities of the three primaries, the color visible in the
  1213.        panel continuously changes to show the resulting composite.
  1214.  
  1215.        Once the color has been adjusted to the desired shade, it may be
  1216.        confirmed by selecting the dialog box's "Ok" button (or typing
  1217.        <Enter>).  This executes the interactive color command and
  1218.        modifies the display palette used for solid surface rendering
  1219.        based on the calculated shades derived from the new base color.
  1220.        Alternatively, by selecting "Cancel" (or typing <Esc>), the user
  1221.        can choose not to modify the current palette of solid fill
  1222.        shades.
  1223.  
  1224.  
  1225.            HYPERGEO    Version 2.1                             Page 3-13
  1226.  
  1227.  
  1228.        3.2.3.4  List Selection Dialog Box
  1229.  
  1230.        In a number of interactive commands available in HYPERGEO the
  1231.        user needs to select one from a list of several possible
  1232.        alternatives.  For example, the interactive command to change the
  1233.        display mode can potentially choose any one of five
  1234.        possibilities: Perspective, Stereoscopic Anaglyph, Hidden-line,
  1235.        Surface Relief, and Solid Surface Rendering.  Commands such as
  1236.        this one that present a choice from a fixed set of options make
  1237.        use of the list selection dialog box.
  1238.  
  1239.        A list selection dialog box contains a "ballot" sub-window in
  1240.        which each of the selectable options appears on a single line.
  1241.        Each option is identified by a key word or two that appears next
  1242.        to an active selection button.  A particular option is chosen by
  1243.        selecting its button with the mouse.  When an option is selected,
  1244.        its button area is marked with an 'X'.  When the dialog box first
  1245.        pops up, the option corresponding to the current state of
  1246.        HYPERGEO is marked as selected.  Depending on the context of the
  1247.        particular command and possible interdependencies among elements
  1248.        of the HYPERGEO environment, not all options may be available at
  1249.        all times.  Those options that are invalid during a particular
  1250.        command invocation are grayed out in the ballot sub-window of the
  1251.        dialog box, and their buttons are inactive for mouse selection.
  1252.        (As an example of this, not all five of the display modes listed
  1253.        above are available on monochrome systems or when a
  1254.        four-dimensional hyperobject is being viewed using a 4-D to 3-D
  1255.        projection.)
  1256.  
  1257.        Once a desired option has been selected in the dialog box, it may
  1258.        be confirmed by selecting "Ok" with the mouse (or typing
  1259.        <Enter>).  Selecting "Cancel" (or typing <Esc>) leaves the
  1260.        HYPERGEO parameter or mode unchanged.
  1261.  
  1262.        Keyboard equivalents are available that enable the selection of
  1263.        list options without the use of a mouse.  The up and down arrow
  1264.        keys move the selection up or down one line in the ballot area.
  1265.        <Home> and <End> are used to select the option at either the top
  1266.        or the bottom of the list.
  1267.  
  1268.  
  1269.        3.2.3.5  Action Approval Dialog Box
  1270.  
  1271.        This type of dialog box doesn't really request any input from the
  1272.        user other than choosing between the "Ok" and the "Cancel"
  1273.        buttons.  There is no text type-in or other interactive
  1274.        sub-window area.  The title bar of the dialog box describes an
  1275.        action which the HYPERGEO program will tentatively take, and the
  1276.        user should select either the "Ok" button to accept the action or
  1277.        the "Cancel" button to cancel it.  The prime example of the
  1278.        application of this type of dialog box is the Quit command
  1279.        (keystroke 'Q') which does not actually quit HYPERGEO and go back
  1280.        to DOS unless the user confirms it.
  1281.  
  1282.  
  1283.            HYPERGEO    Version 2.1                             Page 3-14
  1284.  
  1285.  
  1286.        As always, typing <Enter> is equivalent to selecting "Ok", and
  1287.        typing <Esc> is equivalent to selecting "Cancel".
  1288.  
  1289.        3.3  Geometry Manipulations
  1290.  
  1291.        Central to the operation of the HYPERGEO program is the ability
  1292.        to interact with the geometry as it is being displayed and to
  1293.        have the picture on the screen respond to the user's directions.
  1294.        It is just this ability to manually manipulate the hyperobject in
  1295.        all four dimensions of hyperspace that creates a sense of
  1296.        "hands-on" control and establishes an intuitive feel for the
  1297.        extradimensional shape of the hyperobject.
  1298.  
  1299.        In light of the two-stage process required to capture an image of
  1300.        a four-dimensional geometrical object on a two-dimensional
  1301.        computer display screen (first, 4-D to 3-D reduction, and second,
  1302.        3-D to 2-D projection), HYPERGEO provides interactive functions
  1303.        to manipulate the geometry both in its original hyperspace
  1304.        configuration (in 4-space) and in its reduced three-dimensional
  1305.        representation (in 3-space).
  1306.  
  1307.        A word or two is needed here on the subject of coordinate
  1308.        systems.  The HYPERGEO program uses the letters X, Y, Z, and W to
  1309.        label the four coordinates in hyperspace.  Wherever ordering is
  1310.        significant (as, for example, in the specification of coordinates
  1311.        within a geometry definition file), the order is (X,Y,Z,W).  As
  1312.        is conventional with computer graphics, three-dimensional
  1313.        coordinate systems are "left-handed"; thus, the positive Z-axis
  1314.        points away from the viewer and into the screen.
  1315.  
  1316.  
  1317.        3.3.1  Rotations
  1318.  
  1319.        The primary method of examining an object is to turn it about to
  1320.        view it from many different angles.  In this manner, it becomes
  1321.        possible to discover the overall nature of something which - for
  1322.        whatever reason - is not immediately accessible in its entirety
  1323.        to our perceptions.  In the HYPERGEO program, rotations in all
  1324.        possible directions are available through interactive commands,
  1325.        and it is possible to position the geometry in whatever
  1326.        orientation is desired.
  1327.  
  1328.        Rotations can be performed either on the 4-D geometry before it
  1329.        is reduced to a 3-D image, or on the 3-D geometry of the reduced
  1330.        image itself.  The effect of the two classes of rotation is
  1331.        different, not only because of how they are handled by the
  1332.        HYPERGEO program, but also because of fundamental differences
  1333.        between the structure of 3-space and that of 4-space.
  1334.  
  1335.  
  1336.            HYPERGEO    Version 2.1                             Page 3-15
  1337.  
  1338.  
  1339.        In our familiar 3-space, rotations are performed about an "axis"
  1340.        which is a straight line in space.  The rotation leaves all
  1341.        points on the axis unchanged while all other points in 3-space
  1342.        move in circles that are centered on the axis and that lie in a
  1343.        plane perpendicular to the axis.  However, in 4-space, there are
  1344.        an infinite number of lines that pass through a given point on a
  1345.        plane and that are perpendicular to the plane.  Thus when a
  1346.        hyperobject is rotated so that the points in a particular plane
  1347.        move in circles about a fixed point on the plane, it is not
  1348.        correct to say that the rotation takes place around an axis.  It
  1349.        is most meaningful to our three-dimensional minds to think of 4-D
  1350.        rotations as being "on" or "of" a particular plane rather than
  1351.        being "around" anything.  (Actually, rotations in hyperspace take
  1352.        place around a plane in the sense that for any given direction of
  1353.        hyperspatial rotation there is a plane on which no points move,
  1354.        namely, the plane determined by any two distinct lines
  1355.        perpendicular to the rotating plane and passing through the
  1356.        rotational centerpoint on it.  This is virtually impossible to
  1357.        picture for our 3-D brains, so it is simpler to refer to such
  1358.        rotations in terms of the plane which is being rotated.)
  1359.  
  1360.        Any particular spatial orientation can be reached by performing
  1361.        an appropriate sequence of rotations of the planes determined by
  1362.        pair-wise combinations of the space's coordinate lines.  In our
  1363.        3-space there are three such planes: the XY-plane, the XZ-plane,
  1364.        and the YZ-plane.  In hyperspace, which has four orthogonal
  1365.        coordinate axes, there are six planes that form the basis for all
  1366.        rotations: XY, XZ, XW, YZ, YW, and ZW.  (In 3-space the rotations
  1367.        are normally referred to by the name of the axis around which the
  1368.        rotation occurs rather than the plane of the rotation.)  HYPERGEO
  1369.        has interactive commands for performing rotations of all nine
  1370.        planes.  For all HYPERGEO rotations, the coordinate system's
  1371.        origin is always the centerpoint; thus the origin is never moved
  1372.        by any rotation.  (Note: the configuration file accepts a
  1373.        parameter, ORIGIN, for repositioning the origin within the
  1374.        original geometry; this in turn has the effect of locating the
  1375.        center of all rotations at any desired point in hyperspace.)
  1376.  
  1377.        All rotations in HYPERGEO are in incremental steps of the current
  1378.        Turn Angle.  The value of the Turn Angle can be set by the user
  1379.        in the configuration file, and it can also be modified
  1380.        interactively at any time.  Its current setting in degrees is
  1381.        displayed in the menu area.  The Turn Angle can be set to a large
  1382.        number of degrees (say, 30 or 45) for rapid rotations of the
  1383.        object, and then reduced to a smaller value for fine positioning.
  1384.        Interactive commands exist for rotating the object one
  1385.        incremental step, through either a positive or negative Turn
  1386.        Angle, within any one of the three 3-D and six 4-D base
  1387.        rotational planes.  Also, there are commands for automating any
  1388.        one of the possible modes of rotation; in these automated modes
  1389.        HYPERGEO continues to perform incremental rotations in the
  1390.        specified direction as rapidly as the computer's processing speed
  1391.        will allow.
  1392.  
  1393.  
  1394.            HYPERGEO    Version 2.1                             Page 3-16
  1395.  
  1396.  
  1397.        The HYPERGEO program provides two features to assist the user in
  1398.        keeping track of the orientation of the active object in
  1399.        hyperspace as it undergoes various rotations.  First, there is
  1400.        the ability to display the projected image of all four unit
  1401.        vectors emanating from the origin along the four hyperspace
  1402.        coordinate axes.  This provides good visual feedback of how the
  1403.        object is turning in hyperspace.  Second, the menu area contains
  1404.        data fields that display the angular displacement of each
  1405.        coordinate axis from its initial, unrotated position.  These
  1406.        displacement angles can vary from 0 degrees (when the axis is
  1407.        coincident with its initial alignment) to 180 degrees (indicating
  1408.        that it has been rotated to point in the completely opposite
  1409.        direction).
  1410.  
  1411.        It is important to understand how four-dimensional rotations of
  1412.        the hyperobject in hyperspace differ from three-dimensional
  1413.        rotations of the reduced image in normal 3-space.  The critical
  1414.        point is that rotations in 4-space affect the shape and structure
  1415.        of the reduced 3-D image and do not necessarily produce directly
  1416.        equivalent rotations of that 3-D image.  Rotations in 3-space, on
  1417.        the other hand, are performed after the 4-D to 3-D reduction, and
  1418.        they always directly rotate the 3-D image; they never alter its
  1419.        shape.
  1420.  
  1421.        To clarify this, consider what is going on as the hyperobject is
  1422.        turned in hyperspace.  If the program is using 4-D to 3-D
  1423.        intersection mode, the slicing hyperplane will pass through
  1424.        varying cross-sections of the object, and these cross-sections
  1425.        will be three-dimensional polyhedra of varying topologies.  The
  1426.        3-D polyhedra themselves will not necessarily rotate.  For the
  1427.        projection mode of 4-D to 3-D reduction, rotations of the
  1428.        hyperobject will have the effect of altering the pattern of the
  1429.        network of connected edges that is projected into 3-space, but
  1430.        the motion of the network will not be any simple
  1431.        three-dimensional rotation.
  1432.  
  1433.        This distinction - that 4-D rotations alter the shape and
  1434.        structure of the reduced 3-D image, while 3-D rotations rotate
  1435.        the image - while generally true, is, alas, not the whole story.
  1436.        Four-dimensional rotations behave differently depending on
  1437.        whether or not the plane of the rotation contains the W-axis.
  1438.        This is due to the fact that in HYPERGEO the W-dimension is the
  1439.        one in which 4-D to 3-D image reductions take place: 4-D to 3-D
  1440.        intersections always occur along a hyperplane that is defined by
  1441.        a constant W value, and 4-D to 3-D projections always are
  1442.        performed onto a hyperplane that is similarly defined by a
  1443.        constant W value.  For this reason, rotations that occur on
  1444.        planes that do not contain the W-axis do not alter the shape of
  1445.        the resulting 3-D image (because they do not modify the
  1446.        W-coordinate of any points in the hyperobject).  Instead, they
  1447.        behave like 3-D rotations of the corresponding plane (for
  1448.        example, a 4-D rotation of the XY-plane has the same effect as a
  1449.  
  1450.  
  1451.            HYPERGEO    Version 2.1                             Page 3-17
  1452.  
  1453.        3-D rotation around the Z-axis).  The net outcome of all this is
  1454.        that the 4-D rotations of the XY, XZ, and YZ-planes look like
  1455.        simple 3-D rotations and have the same effect on the appearance
  1456.        of the object's display in HYPERGEO as 3-D rotations around the
  1457.        Z, Y, and X-axes, respectively.  The other three 4-D rotations
  1458.        (that is, of the XW, YW, and ZW-planes) do alter the 3-D image's
  1459.        shape and do not resemble any simple 3-D rotations.
  1460.  
  1461.        One final point is needed to complete this discussion of
  1462.        rotations.  Although 4-D rotations of the XY, XZ, and YZ-planes
  1463.        look the same as 3-D rotations around the Z, Y, and X-axes, they
  1464.        are not treated the same by the HYPERGEO program.  The 4-D
  1465.        rotations permanently alter the orientation of the hyperobject in
  1466.        4-space as that orientation is calculated and remembered by the
  1467.        program; they are cumulative in the sense that each subsequent
  1468.        4-D rotation takes as its initial starting point the orientation
  1469.        arrived at by the previous 4-D rotation.  3-D rotations, on the
  1470.        other hand, do not permanently modify the four-dimensional
  1471.        orientation of the hyperobject; rather, they serve as temporary
  1472.        repositionings of the current 3-D image in 3-space.  For this
  1473.        reason, 3-D rotations are most useful as a means of examining the
  1474.        shape of the current 3-D image expressly without altering the 4-D
  1475.        orientation of the hyperobject that produced that image.  A 4-D
  1476.        rotation performed following a sequence of 3-D rotations reverts
  1477.        back to the most recent 4-D orientation for its starting position
  1478.        since that is the permanent orientation remembered by HYPERGEO.
  1479.        The transient 3-D rotations of the reduced image are lost and
  1480.        forgotten.  (It is worth noting that although the 4-D rotations
  1481.        may look like 3-D rotations, they involve the additional
  1482.        computational effort of updating the permanent 4-D database and
  1483.        thus are noticeably slower.)
  1484.  
  1485.        This functional distinction between 4-D and 3-D rotations is
  1486.        reflected in the way HYPERGEO reports the hyperobject's
  1487.        orientation.  In particular, the axis displacement angles
  1488.        (displayed in the menu area) and the axis vectors (displayed in
  1489.        the primary graphics area) are only affected by 4-D rotations.
  1490.        During temporary, 3-D rotations, they remain unchanged and
  1491.        continue to indicate the permanent 4-D orientation from which the
  1492.        next 4-D rotation will proceed.
  1493.  
  1494.        (Note that the above comment does not apply when the input
  1495.        geometry definition is a three-dimensional object rather than a
  1496.        4-D hyperobject.  For three-dimensional geometries the program
  1497.        treats all 3-D rotations as permanent modifications to the
  1498.        object's database; the displayed axis angle displacements and the
  1499.        unit axis vectors are changed upon 3-D rotations.)
  1500.  
  1501.        In addition to the commands which perform incremental rotations
  1502.        in any of the possible directions, HYPERGEO also has two methods
  1503.        for placing the current geometry directly in a particular
  1504.        orientation.  These are discussed in the following two sections.
  1505.  
  1506.  
  1507.            HYPERGEO    Version 2.1                             Page 3-18
  1508.  
  1509.  
  1510.  
  1511.        3.3.1.1  Orthogonal Orientations
  1512.  
  1513.        An orthogonal orientation is one in which all of the coordinate
  1514.        axes have been rotated an integral multiple of 90 degrees from
  1515.        their original positions.  Such orientations permit viewing the
  1516.        object in a direction which is exactly perpendicular to one of
  1517.        the planes formed by a pair of coordinate axes.  The HYPERGEO
  1518.        program provides interactive commands for generating all of the
  1519.        unique orthogonal orientations that are possible for both 3-D and
  1520.        4-D geometries.
  1521.  
  1522.        In three-dimensional space there are three distinct orthogonal
  1523.        orientations; these correspond to viewing directions from the
  1524.        front, side, and top.  Each of the three orientations is directed
  1525.        perpendicularly to one of the three 3-D coordinate axis planes.
  1526.  
  1527.        In four-dimensional space things are, of course, more
  1528.        complicated.  Recall that for 4-D there are a total of six
  1529.        different pairs of coordinate axes that each form a distinct
  1530.        plane (these are the six planes about which the various
  1531.        incremental 4-D rotations are performed).  Thus, there are at
  1532.        least six different orthogonal orientations, each derived from a
  1533.        view that is perpendicular onto one of the six coordinate planes.
  1534.        However, this is not the entire story.  In four-space for each
  1535.        orientation perpendicular to a coordinate plane, the plane
  1536.        determined by the other two coordinate axes can rotate
  1537.        independently.  In fact, it can be rotated so that its two
  1538.        coordinate axes are themselves positioned orthogonally along the
  1539.        two remaining coordinate directions in two different ways.  This
  1540.        additional degree of freedom means that there are two different
  1541.        orientations based on each of the six possible base coordinate
  1542.        planes.  This gives a total of twelve distinct orthogonal
  1543.        orientations for four-dimensional geometries.
  1544.  
  1545.        For geometries that represent regular polyhedra that are
  1546.        symmetrical about all rotations, all orthogonal orientations will
  1547.        produce an identical view.  This is true for all of the regular
  1548.        3-D polyhedra and 4-D polytopes that are provided with HYPERGEO.
  1549.        However, for shapes that possess asymmetries, the ability to view
  1550.        the object from all of the possible orthogonal directions
  1551.        provides an excellent way to see how the structure is arranged
  1552.        throughout all dimensions.
  1553.  
  1554.        For 4-D geometries, it is particularly interesting to examine
  1555.        orientations which position each of the four axes in turn in the
  1556.        direction of the original W-coordinate axis.  Because the
  1557.        mechanisms for performing 4-D to 3-D image reductions operate
  1558.        along the W-axis, using the orthogonal orientations this way
  1559.        enables the resulting projections and intersections to reveal all
  1560.        of the hypergeometrical structure of the object.
  1561.  
  1562.  
  1563.            HYPERGEO    Version 2.1                             Page 3-19
  1564.  
  1565.  
  1566.  
  1567.        3.3.1.2  The Locate Function for Rotations
  1568.  
  1569.        An interactive command permits specifying the orientation of the
  1570.        current object in terms of the three (for 3-D) or four (for 4-D)
  1571.        axis angles.  These are the spatial angular displacements of each
  1572.        of the coordinate axes from their original unrotated positions.
  1573.        (The axis angles are displayed in the HYPERGEO menu area under
  1574.        the label AXIS ANG.)  This command effectively permits placing
  1575.        the object at any precise orientation that is physically
  1576.        possible.
  1577.  
  1578.        For three-dimensional geometries, the user can specify any three
  1579.        angles that form a possible 3-D orientation.  Each set of three
  1580.        axis angles determines a unique orientation in three-space.
  1581.  
  1582.        For four-dimensional objects the command operates in a similar
  1583.        manner, but there are some limitations.  First, at least one of
  1584.        the specified angles must be zero.  And second, most sets of axis
  1585.        angles do not correspond to a single orientation, but rather have
  1586.        multiple solutions. (This is due to the fact that the axis angles
  1587.        indicate only the magnitude of the displacement from the original
  1588.        axis and not its direction; thus the problem is mathematically
  1589.        underdetermined.)  When this is the case, the program arbitrarily
  1590.        selects one particular orientation from among all of the valid
  1591.        possibilities.
  1592.  
  1593.  
  1594.        3.3.2  Translation of the Intersecting Hyperplane
  1595.  
  1596.        For the intersection mode of 4-D to 3-D reductions, the program
  1597.        calculates the three-dimensional intersection of the hyperobject
  1598.        with a hyperplane that is defined by the equation, w = k, that
  1599.        is, having a constant W coordinate value.  (In four dimensions, a
  1600.        linear equation of the four coordinate variables, Ax + By + Cz +
  1601.        Dw = E, defines a hyperplane.  A hyperplane can perhaps best be
  1602.        envisioned as a normal three-dimensional space that is situated
  1603.        in hyperspace and has zero extent into the fourth dimension.  Our
  1604.        universe at any given instant can be considered a hyperplane in
  1605.        four-dimensional space-time.)  The shape of this intersection can
  1606.        be varied by rotating the hyperobject; this approach has been
  1607.        discussed in the above section on rotations.  However, the
  1608.        intersection can also be modified by moving the hyperplane
  1609.        through hyperspace, in particular, by moving it along the W-axis
  1610.        by altering the value for 'k' in the hyperplane's equation.  The
  1611.        HYPERGEO program provides interactive commands for performing
  1612.        such a translation of the intersecting hyperplane.  (It should be
  1613.        emphasized that the position of the intersecting hyperplane only
  1614.        has an effect in the intersection mode of 4-D geometry reduction;
  1615.        it is irrelevant when using projection mode.)
  1616.  
  1617.  
  1618.            HYPERGEO    Version 2.1                             Page 3-20
  1619.  
  1620.  
  1621.        Two parameters relate to the interactive translation of the
  1622.        intersecting hyperplane: the current W value of the hyperplane's
  1623.        equation, and the amount by which that value will be incremented
  1624.        (or decremented) for each translation of the hyperplane.  The
  1625.        first of these values is displayed in the HYPERGEO menu area as
  1626.        the W-INTER parameter, and the second is referred to as the
  1627.        delta-W value.  An interactive command exists that increments the
  1628.        W-INTER value by the delta-W value and updates the HYPERGEO
  1629.        display accordingly.  Another command serves to decrement the W
  1630.        value and thus move the intersecting hyperplane in the reverse
  1631.        direction.  In addition, both parameters may be explicitly set to
  1632.        any desired numeric value using other interactive functions.  The
  1633.        initial values of the W-INTER and delta-W parameters may also be
  1634.        set in the HYPERGEO configuration file.  If W-INTER is not
  1635.        specified by the user in the configuration file, its default
  1636.        value is calculated as the average of the minimum and maximum W
  1637.        values for the active geometrical object thus centering the
  1638.        intersecting hyperplane within the geometry.
  1639.  
  1640.        Translation of the intersecting hyperplane is most revealing when
  1641.        it proceeds from one edge or face of the hyperobject, through its
  1642.        entire body, and on to the opposite side.  A feature exists which
  1643.        automates just such a traversal of the hyperplane.  It
  1644.        continuously increments the W value until the body of the
  1645.        hyperobject is exited.  The direction of translation is then
  1646.        reversed and the W value is continuously decremented until the
  1647.        opposite side of the hyperobject is reached.  The direction of
  1648.        translation continues to be reversed at each extreme so that the
  1649.        hyperplane passes back and forth (in hyperspace) through the
  1650.        entire body of the hyperobject.  Performing such passes upon
  1651.        varying orientations of the hyperobject in hyperspace provides an
  1652.        excellent method for acquiring a sense of its four-dimensional
  1653.        shape.  (Note: the effective speed of the hyperplane's motion
  1654.        along the W-axis can be adjusted by setting the delta-W value
  1655.        appropriately.)
  1656.  
  1657.  
  1658.        3.3.3  Moving the Viewpoint for 4-D Projections
  1659.  
  1660.        As described in a previous section, for the second primary method
  1661.        of reducing a 4-D hyperobject to a 3-D image, namely, a 4-D to
  1662.        3-D projection, a theoretical viewscreen is set up
  1663.        (mathematically) in hyperspace and the hyperobject is projected
  1664.        onto it as seen from a theoretical viewpoint.  (Recall that
  1665.        because the "viewscreen" is actually a three-dimensional
  1666.        hyperplane, the resulting image is also three-dimensional.)  To
  1667.        provide enhanced control over this projection, an interactive
  1668.        command exists to modify the position of the theoretical
  1669.        viewpoint.  This allows the user to adjust through a wide range
  1670.        the level of perceived perspective evident in the resulting 3-D
  1671.        image.
  1672.  
  1673.  
  1674.            HYPERGEO    Version 2.1                             Page 3-21
  1675.  
  1676.  
  1677.        It should be noted that the position of the projection viewpoint
  1678.        only has meaning for images that are generated as 4-D to 3-D
  1679.        projections; it is irrelevant for 4-D to 3-D intersection images.
  1680.  
  1681.        The nature of the projection calculations restricts the viewpoint
  1682.        to the positive W-axis.  This is due to the way in which the
  1683.        hyperplane which is the theoretical viewscreen is located at a
  1684.        fixed position and orientation in hyperspace.  In particular, the
  1685.        viewscreen hyperplane is defined by the equation
  1686.  
  1687.                    w = 0.5R
  1688.  
  1689.        where 'R' is the "radius" of the hyperobject.  This places the
  1690.        viewscreen parallel to the XYZ-hyperplane and intersecting the
  1691.        positive W-axis at a distance 0.5R from the origin.
  1692.  
  1693.        The user can specify the projection viewpoint to be located
  1694.        anywhere along the positive W-axis within a large range of
  1695.        coordinate values.  The program does, however, automatically
  1696.        prevent the viewpoint distance from assuming a value that is
  1697.        either too small or too large.  This is done to prevent possible
  1698.        numeric errors in the calculation of the reduced image that uses
  1699.        the viewpoint coordinate.
  1700.  
  1701.        When the viewpoint is positioned towards the low end of its
  1702.        range, the degree of perspective in the calculated 3-D image is
  1703.        greatest.  The perspective becomes less as the viewpoint moves
  1704.        away from the hyperobject and from the viewscreen along the
  1705.        W-axis.  For the largest values of this distance, the apparent
  1706.        perspective is minimal, and the image closely approximates that
  1707.        of a pure orthographic projection.
  1708.  
  1709.        The position of the 4-D projection viewpoint is displayed as a
  1710.        parameter in the HYPERGEO menu area under the label W-PROJ.  It
  1711.        appears as a numeric value in the units of the geometry
  1712.        definition.  This value is the W-coordinate of the viewpoint.
  1713.  
  1714.        Interactive commands exist which allow incrementally increasing
  1715.        or decreasing the W-PROJ parameter by 10% of its current value.
  1716.        Additional commands set the W-PROJ parameter directly to either
  1717.        its maximum or minimum permissable value; this has the effect of
  1718.        selecting either orthographic or perspective projection.  The
  1719.        parameter can also be set interactively to any specific
  1720.        intermediate value within its range, and it may be assigned a new
  1721.        default value in the HYPERGEO configuration file.  (The program's
  1722.        own default value for W-PROJ is two times the radius of the
  1723.        hyperobject; this is close to the minimal permissable value and
  1724.        creates 4-D to 3-D projection images with a considerable degree
  1725.        of perspective.)
  1726.  
  1727.  
  1728.            HYPERGEO    Version 2.1                             Page 3-22
  1729.  
  1730.  
  1731.  
  1732.        3.3.4  Translation of Individual Vertexes
  1733.  
  1734.        As described above, rotating a hyperobject is the primary means
  1735.        of examining its structure in HYPERGEO, and the user interface
  1736.        presented upon entry to the program provides access to the
  1737.        various commands for performing such rotations.  However, an
  1738.        alternative state of the user interface is available which
  1739.        presents commands that can be invoked to perform the temporary
  1740.        translation of a selected vertex of the hyperobject and to
  1741.        observe how the translation of an object's vertex in hyperspace
  1742.        affects the shape and structure of the corresponding 3-D image.
  1743.        The selected vertex can be moved in either direction along any
  1744.        one of the four 4-D coordinates.
  1745.  
  1746.        An important point needs to be made concerning the non-permanent
  1747.        nature of vertex translations.  HYPERGEO maintains an internal
  1748.        database which contains information on the structure of the
  1749.        current hyperobject.  In particular, this database contains
  1750.        information recording all faces and hyperfaces of the hyperobject
  1751.        in terms of the vertex points and connecting edges that comprise
  1752.        them.  When a single vertex point is moved arbitrarily in
  1753.        hyperspace, it will in all likelihood no longer be located
  1754.        exactly on any face planes or hyperface hyperplanes to which it
  1755.        actually belongs, and this has the potential for distorting the
  1756.        mathematical correctness of any geometrical calculations carried
  1757.        out in generating the displayed image.  The upshot of all this is
  1758.        that the translation of a vertex is always treated as a small and
  1759.        temporary local perturbation of the overall geometry.  HYPERGEO
  1760.        remembers the original (true) position of the vertex, and this
  1761.        position is always automatically restored as soon as any command
  1762.        is invoked that may entail a permanent transformation of the
  1763.        database.
  1764.  
  1765.        The intent of the vertex translation feature is to provide the
  1766.        ability to temporarily "tweak" a particular vertex and view how
  1767.        that perturbation is reflected in the current image.  It does not
  1768.        allow the construction of a new, permanently modified geometry
  1769.        definition.
  1770.  
  1771.  
  1772.        3.3.4.1  4-D Image Considerations
  1773.  
  1774.        To be able to select and translate a particular vertex of the
  1775.        current hyperobject, the point corresponding to that vertex must
  1776.        be visible in the current display.  It should be recalled that in
  1777.        the case of images generated by performing an intersection of the
  1778.        hyperobject with a hyperplane, the points and edges seen in the
  1779.        final display do not correspond directly to points and edges in
  1780.        the hyperobject.  Such a correspondence is only certain to exist
  1781.        with images generated as projections of the hyperobject onto a
  1782.        3-D hyper-viewplane.  For this reason, the translation state of
  1783.  
  1784.  
  1785.            HYPERGEO    Version 2.1                             Page 3-23
  1786.  
  1787.  
  1788.        the user interface can only be entered when the display is of a
  1789.        4-D to 3-D projection image.  However, it should be noted that
  1790.        this includes the dual imaging mode in which both an intersection
  1791.        and a projection are shown simultaneously on the screen side by
  1792.        side.  With a dual image, the projection portion can be used to
  1793.        select a vertex with the mouse, and the results of translating
  1794.        the vertex appear as temporary perturbations of both images.  In
  1795.        fact, this probably makes the dual imaging mode the most
  1796.        interesting and useful one for performing vertex translations.
  1797.  
  1798.  
  1799.        3.3.4.2  The Two User Interface States: Rotation and Translation
  1800.  
  1801.        As mentioned in the preceding section, the normal HYPERGEO user
  1802.        interface provides commands to perform rotations of the current
  1803.        geometry.  An interactive command exists (keystroke 'U') to
  1804.        toggle the user interface between this default state and the
  1805.        alternative state in which an individual vertex point may be
  1806.        translated in hyperspace.  Which state the user interface is in
  1807.        is indicated by the commands available in the menu area and by
  1808.        the behavior of the mouse cursor.
  1809.  
  1810.        In the default rotation state of the user interface, the mouse
  1811.        cursor is an arrow icon, and the cursor is always restricted to
  1812.        the menu area (if displayed).  When the user interface is
  1813.        switched to the translation state, the cursor becomes a
  1814.        cross-hair icon, and it is repositioned to the main graphics
  1815.        area.  While the cursor is a cross-hair, the mouse can be used to
  1816.        select a vertex point which is to be translated.  Once a vertex
  1817.        has been selected with the mouse, it is marked in the display
  1818.        with a cross-hair symbol, and the mouse cursor reverts to the
  1819.        normal arrow icon and returns to the menu area.  The special
  1820.        translation state commands of the user interface can then be used
  1821.        to perform temporary movements of the selected vertex.
  1822.  
  1823.        The contents of the bottom portion of the menu area depend upon
  1824.        the user interface state.  In the normal rotation state, this
  1825.        part of the menu contains the mouse control pads for performing
  1826.        4-D planar rotations:
  1827.  
  1828.                             ____________________
  1829.                            |      |      |      |
  1830.                            |      |      |      |
  1831.                            |  YZ  |  XZ  |  XY  |
  1832.                            |      |      |      |
  1833.                            |______|______|______|
  1834.                            |      |      |      |
  1835.                            |      |      |      |
  1836.                            |  XW  |  YW  |  ZW  |
  1837.                            |      |      |      |
  1838.                            |______|______|______|
  1839.                            |                    |
  1840.                            |     4-D PLANE      |
  1841.                            |____________________|
  1842.  
  1843.  
  1844.            HYPERGEO    Version 2.1                             Page 3-24
  1845.  
  1846.  
  1847.        When the translation state of the user interface is in effect,
  1848.        4-D rotations are unavailable, and the bottom portion of the menu
  1849.        area is replaced with a control pad containing the vertex
  1850.        translation functions:
  1851.  
  1852.                             ____________________
  1853.                            |      |      |      |
  1854.                            |      |      |      |
  1855.                            |  Sel |   Y  |  Nxt |
  1856.                            |      |      |      |
  1857.                            |______|______|______|
  1858.                            |      |      |      |
  1859.                            |      |      |      |
  1860.                            |   Z  |   W  |   X  |
  1861.                            |      |      |      |
  1862.                            |______|______|______|
  1863.                            |                    |
  1864.                            |     MOVE VERTEX    |
  1865.                            |____________________|
  1866.  
  1867.  
  1868.  
  1869.        The pads labeled X, Y, Z, and W perform a translation of the
  1870.        vertex along the corresponding coordinate (the right mouse button
  1871.        increments the coordinate value, and the left mouse button
  1872.        decrements it).  Selecting the pad labeled "Sel" deselects the
  1873.        current vertex and sets the interface to select a new one; the
  1874.        mouse cursor changes to a cross-hair icon and moves to the main
  1875.        display area.  Selecting "Nxt" deselects the current vertex and
  1876.        automatically selects the next sequential one according to an
  1877.        (essentially arbitrary) ordering scheme used by the internal
  1878.        database.
  1879.  
  1880.        Whenever a vertex that has had temporary translations performed
  1881.        on it is deselected (either via the "Sel" or "Nxt" functions
  1882.        described above, or by toggling out of the translation state of
  1883.        the user interface entirely via the 'U' command), the permanent
  1884.        4-D coordinates of the vertex are restored.
  1885.  
  1886.  
  1887.        3.3.4.3  Vertex Translations without a Mouse
  1888.  
  1889.        Keyboard equivalents enable the performance of vertex
  1890.        translations even if no mouse is present on the system.  Only the
  1891.        function of selecting a particular vertex in the display cannot
  1892.        be performed directly (although the same effect can be achieved
  1893.        in a somewhat roundabout fashion).
  1894.  
  1895.  
  1896.            HYPERGEO    Version 2.1                             Page 3-25
  1897.  
  1898.  
  1899.        Without a mouse, when the program enters the translation state of
  1900.        the user interface (via the 'U' command), there is no visible and
  1901.        movable cursor for selecting a vertex.  However, the <Enter> key
  1902.        will select one vertex arbitrarily.  Once a vertex is selected,
  1903.        <Enter> is equivalent to the "Nxt" function pad in the menu area;
  1904.        it allows cycling through all vertexes in an arbitrary order.
  1905.        The <Esc> key is equivalent to the "Sel" function; it deselects
  1906.        the current vertex.
  1907.  
  1908.        The arrow keys can be used to perform the actual vertex
  1909.        translations.  Right-arrow translates the selected vertex along
  1910.        the X-coordinate, up-arrow along the Y-coordinate, left-arrow
  1911.        along the Z-coordinate, and down-arrow along the W-coordinate.
  1912.        Using the arrow keys without any modifer key causes translations
  1913.        in the positive direction along the particular axis.  Combining
  1914.        the arrow keys with the <Shift> key performs the translation in
  1915.        the negative direction.  (Because <Shift> does not work with the
  1916.        arrow keys correctly on some keyboards, <Ctrl> can also be used
  1917.        wth the arrow keys to perform translations in the negative
  1918.        direction.)
  1919.  
  1920.  
  1921.        3.4  View Control
  1922.  
  1923.        The final step in the processing chain that leads from the
  1924.        specification of the geometry of a four-dimensional hyperobject
  1925.        to the depiction of an image of that object on the computer
  1926.        screen is the generation of the two-dimensional graphical output.
  1927.        As described above in a previous section of this document, the
  1928.        program uses a number of variations of a basic 3-D to 2-D linear
  1929.        projection to perform this step.  The user has access to several
  1930.        interactive commands with which to adjust a number of parameters
  1931.        that affect the appearance of the final display.  Paramount among
  1932.        these is the output display mode.
  1933.  
  1934.  
  1935.        3.4.1  The Five Display Modes
  1936.  
  1937.        As outlined earlier, there are five possible projection modes in
  1938.        which the final graphical output can be presented: perspective,
  1939.        stereoscopic anaglyph, hidden-line, surface relief, and solid.
  1940.        The selection of a particular mode is one of the parameters which
  1941.        the user can modify; any one of the five modes can be invoked at
  1942.        any time (with some exceptions - see below).  A data field in the
  1943.        menu area shows which mode is in effect.  Whenever the display
  1944.        mode is changed, the program immediately redraws the
  1945.        representation of the current geometry using the method of the
  1946.        new mode.  The basic orientation of the hyperobject remains fixed
  1947.        across any such switch in display mode.
  1948.  
  1949.  
  1950.            HYPERGEO    Version 2.1                             Page 3-26
  1951.  
  1952.  
  1953.        The exceptions referred to in the preceding paragraph are as
  1954.        follows: first, the stereoscopic anaglyph and surface relief
  1955.        modes cannot be invoked on monochrome systems (since the anaglyph
  1956.        requires red and blue); and second, the hidden-line, surface
  1957.        relief, and sold display modes can only be selected if the 4-D to
  1958.        3-D reduction step is using 4-D intersection, not 4-D projection
  1959.        (since 4-D projections do not produce a 3-D geometry which is a
  1960.        solid 3-D polyhedron amenable to hidden-line analysis).
  1961.  
  1962.  
  1963.        3.4.2  Key Display Parameters
  1964.  
  1965.        Two numeric parameters are key in the calculations which generate
  1966.        the graphics seen on the screen.  First, the eye-to-screen
  1967.        distance is used to calculate all forms of 3-D to 2-D projection.
  1968.        The eye-to-screen distance is shown as a data item in the menu
  1969.        area.  It can be adjusted up or down interactively by the user.
  1970.        Decreasing the eye-to-screen distance has the effect of enhancing
  1971.        the perceived degree of perspective in the picture, and
  1972.        increasing the distance reduces the perspective.  The
  1973.        eye-to-screen distance can be adjusted in increments or
  1974.        decrements equal to 10% of its current value, or it can be set to
  1975.        an explicit numeric value.  The program automatically limits the
  1976.        maximum and minimum values to which the eye-to-screen distance
  1977.        can be set in order to prevent numeric errors from occurring in
  1978.        calculations that are performed when generating the perspective
  1979.        displays and which make use of the eye-to-screen value.
  1980.  
  1981.        The second key display parameter is the scale factor which is the
  1982.        ratio of screen inches to geometry units.  This value determines
  1983.        the apparent size of the object as finally drawn on the screen.
  1984.        The scale factor is displayed as a data field in the menu area.
  1985.        It can be adjusted up or down in increments of 10% of the current
  1986.        value, or it can be assigned an explicit numeric value.  When a
  1987.        new geometry file is read in, and if there is no overriding
  1988.        information in the configuration file, the program automatically
  1989.        sets the scale factor so the image of the object fits comfortably
  1990.        within the primary graphics area allowing plenty of room for
  1991.        rotations.
  1992.  
  1993.        Both the eye-to-screen distance and the display scale factor can
  1994.        be specified in the configuration file.
  1995.  
  1996.  
  1997.            HYPERGEO    Version 2.1                             Page 3-27
  1998.  
  1999.  
  2000.  
  2001.        3.4.3  Hyperface Highlighting
  2002.  
  2003.        The concept of a four-dimensional solid hyperobject's possessing
  2004.        three-dimensional hyperfaces (a higher-order geometrical analogy
  2005.        to the intuitively comprehensible fact that a three-dimensional
  2006.        polyhedron possesses two-dimensional faces) is naturally very
  2007.        difficult for us to grasp.  To aid in visualizing this, HYPERGEO
  2008.        has a feature which enables the user to highlight that portion of
  2009.        the displayed 3-D image (either projection or intersection) that
  2010.        belongs to a single hyperface.  A special highlight color
  2011.        (distinct from the primary graphics foreground color) is used to
  2012.        display all edges that are part of the hyperface that is
  2013.        currently highlighted.  This makes the shape and topological
  2014.        structure of the hyperface readily visible as the hyperobject in
  2015.        its entirety is manipulated in hyperspace.
  2016.  
  2017.        It should be noted that a different interpretation must be placed
  2018.        on the visible pattern of highlighted edges depending on whether
  2019.        the 3-D image is a projection or an intersection.  For a 4-D to
  2020.        3-D projection, the edges seen in the final displayed image all
  2021.        correspond exactly to actual edges that exist in the hyperobject.
  2022.        Since a hyperface must be a simple, convex polyhedron, the
  2023.        pattern of hightlighted edges will also always form a complete
  2024.        polyhedron (although its shape will appear variously twisted and
  2025.        distorted due to the effects of the 4-D to 3-D projection).
  2026.  
  2027.        For 4-D to 3-D intersections, the situation is different.  The
  2028.        edge lines that appear in the final display for an intersection
  2029.        correspond not to the original edges of the hyperobject but
  2030.        rather to the outlines of the polygons that are formed at the
  2031.        intersections of each of the hyperobject's hyperfaces with the
  2032.        intersecting hyperplane.  Thus, a highlighted hyperface in a 4-D
  2033.        to 3-D intersection image will appear as a single highlighted
  2034.        face of the three-dimensional polyhedron that is the overall
  2035.        intersection.  It is also possible that, as the hyperobject is
  2036.        rotated in 4-space and the intersecting hyperplane is moved, the
  2037.        highlighted hyperface may for a time fail completely to intersect
  2038.        the hyperplane.  When this happens, no highlighted edges will
  2039.        appear in the 3-D intersection image (since the 3-D polyhedron
  2040.        has at that moment no face derived from an intersection of that
  2041.        particular hyperface).  Indeed, it is generally most revealing to
  2042.        observe the changing (and occasionally vanishing) shape of the
  2043.        highlighted face that is the intersection of the hyperplane and
  2044.        the highlighted hyperface as the hyperobject is manipulated in
  2045.        4-space.
  2046.  
  2047.        The <Tab> key is used to toggle hyperface highlighting on and
  2048.        off.  When highlighting is on, the <Space> bar advances the
  2049.        highlighting to the next hyperface (according to an arbitrary
  2050.        internal ordering), and <Backspace> highlights the preceding
  2051.        hyperface (per the same arbitrary ordering).
  2052.  
  2053.  
  2054.            HYPERGEO    Version 2.1                             Page 3-28
  2055.  
  2056.  
  2057.        Ordinarily, highlighting uses the color which is specially
  2058.        designated for that purpose in the overall HYPERGEO palette (see
  2059.        the discussion on HYPERGEO's use of color in Section 3.2.1).
  2060.        However, in certain circumstances, a different color or technique
  2061.        is used.  On monochrome systems a thick line is used to indicate
  2062.        highlighting rather than a different color.  In the display modes
  2063.        that use red-blue anaglyphs (stereoscopic and surface relief), a
  2064.        brighter intensity of the requisite red and blue shades is used
  2065.        for the highlighted edges.  And when hyperface highlighting is
  2066.        used together with the W-coordinate spectrum banding feature (see
  2067.        below), the normal foreground color (default white) is the
  2068.        highlight color.
  2069.  
  2070.  
  2071.        3.4.4  W-coordinate Spectrum Banding
  2072.  
  2073.        It is inherent in the nature of 4-D to 3-D image reductions
  2074.        (especially projections) that the W-coordinate information of the
  2075.        original hyperobject is lost.  This follows inevitably from the
  2076.        fact that the projection takes place onto a hyperplane that has a
  2077.        constant W-coordinate value.  The resulting image has full 3-D
  2078.        structure; the X and Y dimensions are readily apparent, even
  2079.        after projection onto the 2-D viewscreen, and the Z dimension can
  2080.        be perceived to a greater or lesser extent (most greatly in the
  2081.        stereoscopic projection modes).  However, the W dimension gets
  2082.        lost in the reduction process and must be inferred indirectly
  2083.        from the changing appearance of the 3-D image as the hyperobject
  2084.        is manipulated.
  2085.  
  2086.        As an aid to perceiving the W-dimension information, HYPERGEO has
  2087.        a feature that causes all edges of the current image to be
  2088.        displayed in a color (or spectrum of colors) that is a function
  2089.        of the W-coordinate values of the corresponding edge of the
  2090.        original hyperobject.  This feature uses a spectrum of ten colors
  2091.        in place of the single primary foreground color.  The spectrum
  2092.        ranges from blue-violet for the minimum W-coordinate value,
  2093.        through blue, aqua, cyan, blue-green, green, olive-green, yellow,
  2094.        and orange, up to red for the maximum W-coordinate.
  2095.  
  2096.        The total range of possible W coordinates is divided into ten
  2097.        bands, and each band is assigned its corresponding spectrum
  2098.        color.  All edge lines are displayed divided into separate
  2099.        segments according to how the W-coordinate values of the original
  2100.        4-D edge range across the spectrum bands; each segment is
  2101.        displayed in the color that is correct for that segment's
  2102.        W-coordinate values.
  2103.  
  2104.  
  2105.            HYPERGEO    Version 2.1                             Page 3-29
  2106.  
  2107.  
  2108.        For an image that is a 4-D to 3-D intersection, it should be
  2109.        noted that, by definition, all visible lines in the image have a
  2110.        single W-coordinate value (i.e., the current W-value of the
  2111.        intersecting hyperplane).  Therefore, with W-coordinate spectrum
  2112.        banding in effect, an intersection image will be displayed
  2113.        entirely in whatever spectrum color corresponds to the W
  2114.        coordinate of the intersecting hyperplane.  This will not change
  2115.        if the hyperobject is rotated, but it will change when the
  2116.        intersecting hyperplane is translated along the W-axis.  In this
  2117.        latter case, the 3-D image will continue to be a single color,
  2118.        but that color will change through the spectrum shades as the
  2119.        hyperplane's W-coordinate ranges across the ten possible bands.
  2120.  
  2121.        The spectrum banding feature is toggled on and off with the 'B'
  2122.        key.
  2123.  
  2124.  
  2125.        3.5  Journalling
  2126.  
  2127.        The journalling feature in HYPERGEO permits the recording into a
  2128.        disk file of all display information that appears on the screen
  2129.        during a sequence of manipulations of the current geometry.  A
  2130.        recorded journal file can later be replayed, redisplaying the
  2131.        exact images that were visible during the original interactive
  2132.        session.
  2133.  
  2134.        This ability to record and replay a sequence of displayed images
  2135.        can be useful in several ways.  By saving the display to a
  2136.        journal, the user can be sure of being able to recreate a
  2137.        particularly interesting image that might happen to occur and
  2138.        would not otherwise be easily reproducible.  Also, the automated
  2139.        rotation commands (in particular, the commands that peform
  2140.        sequences of unpredictable - and unrepeatable - random rotations)
  2141.        can have their display sequences recorded in a journal file, thus
  2142.        ensuring that they can be redisplayed at will exactly as they
  2143.        originally appeared.  Finally, for very large geometrical models,
  2144.        where the computational time spent in updating the database
  2145.        between images is significant, the display can be recorded, and
  2146.        when the journal is replayed, the computational delays are
  2147.        eliminated; the recorded images can be displayed as fast as the
  2148.        computer's graphics system will allow.  This enables a relatively
  2149.        slow and long-running interactive sequence to be viewed at a
  2150.        speed that makes the behavior of the geometry far more
  2151.        intuitively comprehensible.
  2152.  
  2153.        A word of warning is in order here.  Although the data recorded
  2154.        in a journal file is reduced to the minimum amount necessary to
  2155.        recreate the display, the volume of data required can still be
  2156.        considerable, especially for large and complex geometries.  It is
  2157.        very possible that a journal file, if left recording over an
  2158.        extended period of time, will fill megabytes of disk space.  (The
  2159.        W-coordinate spectrum banding feature described above is
  2160.  
  2161.  
  2162.            HYPERGEO    Version 2.1                             Page 3-30
  2163.  
  2164.        especially costly in this regard since it multiplies the number
  2165.        of individual segment records, with their coordinate and color
  2166.        information, that must be written to the journal file.)
  2167.        Therefore, unless you have enormous ammounts of disk space at
  2168.        your disposable, it is wise to first create a brief trial journal
  2169.        of a particular geometry to get an approximate idea of how many
  2170.        bytes are needed for each separate recorded image.  You also
  2171.        should be aware of how much free disk space your system has
  2172.        available (the DOS command "DIR" will tell you this).
  2173.  
  2174.        Because the data contained in a journal file reflects only the
  2175.        actual display seen on the screen, it is specific to the current
  2176.        system configuration.  Journal files are, in general, not
  2177.        portable between systems.  For example, a journal recorded in
  2178.        monochrome will definitely not look right if replayed on a color
  2179.        system.  In addition, it is just possible that a journal file
  2180.        will not work correctly on the same system if the HYPERGEO
  2181.        configuration is changed significantly between the journal's
  2182.        recording and its replaying.
  2183.  
  2184.  
  2185.        3.5.1  Recording a Journal File
  2186.  
  2187.        Recording of a journal file may be started any time that a
  2188.        geometry is active in the HYPERGEO display.  The keystroke 'K' is
  2189.        used to start recording.  A text dialog box appears which
  2190.        requests input of the name of the journal file to be created.
  2191.        When the dialog box first comes up, the type-in area contains a
  2192.        default file name which is the name of the current geometry
  2193.        definition with an extension of .JNL.  The text editing features
  2194.        of the dialog box can be used to modify this file name if
  2195.        desired, including the prepending of a DOS path specification to
  2196.        place the file in a different directory.
  2197.  
  2198.        Once the journal file name has been confirmed, recording is in
  2199.        effect.  A message indicating that a journal file is being
  2200.        recorded appears at the bottom of the main display area.
  2201.  
  2202.        Every interactive operation that changes the display on the
  2203.        screen writes the new image to the journal file.  Within the
  2204.        journal each separate image is known as a "frame".  Only the
  2205.        primary graphics are written to the journal; the menu area is not
  2206.        journalled, nor are any message or interactive dialog boxes that
  2207.        might appear as various HYPERGEO commands are executed.
  2208.  
  2209.        The keystroke 'K' is also used to terminate the recording of a
  2210.        journal file.  It brings up a message dialog box that shows the
  2211.        name of the journal file, the date and time its recording was
  2212.        started, and the total number of frames it contains.
  2213.  
  2214.  
  2215.            HYPERGEO    Version 2.1                             Page 3-31
  2216.  
  2217.  
  2218.  
  2219.        3.5.2  Replaying a Journal File
  2220.  
  2221.        A previously recorded journal file can be replayed whenever
  2222.        HYPERGEO is accepting interactive commands.  For the replaying of
  2223.        a journal it does not matter what the current geometry is since
  2224.        the journal will override the current display while it is being
  2225.        replayed, and the current interactive display will be restored
  2226.        when the journal replay is finished.
  2227.  
  2228.        The keystroke 'J' invokes the journal replay command.  A file
  2229.        selection dialog box appears listing all files that have
  2230.        extension .JNL in the current directory.  The features of the
  2231.        dialog box can be used to select a journal file which is located
  2232.        in a different directory or which has a non-standard extension
  2233.        (i.e., other than .JNL).  Once a journal file name has been
  2234.        selected and confirmed, the program enters journal replay mode.
  2235.        The display of the current geometry is erased, and the first
  2236.        frame of the journal file is displayed.  The name of the geometry
  2237.        file which was recorded appears in the upper-left of the main
  2238.        display area along with a frame counter that shows the current
  2239.        journal frame number along with the total number of frames in the
  2240.        file.
  2241.  
  2242.        The journal replay command has options for displaying the
  2243.        contents of the journal that are modeled on the controls
  2244.        available on a video tape recorder (VCR).  They permit viewing
  2245.        the journal's frames in the normal forward direction and also in
  2246.        the reverse direction.  The journal may be moved forward or
  2247.        backward through the frames at high speed as in a VCR's fast
  2248.        forward and fast reverse (rewind) commands.  In addition, the
  2249.        display of the journal may be stopped on any frame, and the
  2250.        journal may be stepped forward or backward a single frame at a
  2251.        time.
  2252.  
  2253.        A menu line appears at the bottom of the screen during journal
  2254.        replay that lists the keystroke commands that perform these VCR
  2255.        functions:
  2256.  
  2257.  
  2258.            HYPERGEO    Version 2.1                             Page 3-32
  2259.  
  2260.  
  2261.            F   -  Fast forward     Advances the journal forward through
  2262.                                    the frames at high speed until the
  2263.                                    last frame is reached, then stops.
  2264.                                    The main display is blank during fast
  2265.                                    forwarding; only the frame counter is
  2266.                                    updated.
  2267.  
  2268.            P   -  Play             Displays the journal file's frames
  2269.                                    sequentially in forward order until
  2270.                                    the end of the journal is reached,
  2271.                                    then stops.
  2272.  
  2273.            A   -  Advance          Steps the journal forward one frame
  2274.                                    and stops.
  2275.  
  2276.            S   -  Stop             Stops the journal on the current
  2277.                                    frame; that frame's display will
  2278.                                    remain visible indefinitely until
  2279.                                    another replay command is executed.
  2280.  
  2281.            B   -  Back             Steps the journal backward one frame
  2282.                                    and stops.
  2283.  
  2284.            R   -  Reverse          Displays the journal file's frames
  2285.                                    sequentially in reverse order until
  2286.                                    the start of the journal is reached,
  2287.                                    then stops.
  2288.  
  2289.            W   -  Rewind           Advances the journal backward through
  2290.                                    the frames at high speed until the
  2291.                                    first frame is reached, then stops.
  2292.                                    The main display is blank during
  2293.                                    rewinding; only the frame counter is
  2294.                                    updated.
  2295.  
  2296.            E   -  Eject            Ends the journal replay.  The display
  2297.                                    of the current geometry is restored,
  2298.                                    and normal HYPERGEO interactive
  2299.                                    commands are in effect.
  2300.  
  2301.  
  2302.        The Play and Reverse commands display the journal file frames as
  2303.        rapidly as the system's graphics capabilities will allow.
  2304.        Normally, this is considerably faster than the speed of the
  2305.        interactive manipulations that were recorded in the journal.
  2306.  
  2307.  
  2308.            HYPERGEO    Version 2.1                             Page 3-33
  2309.  
  2310.  
  2311.        An alternative set of control keys is also enabled during the
  2312.        replay of a journal file that are designed to be used on
  2313.        keyboards which have a numeric keypad.  (Note: NumLock must be
  2314.        off to use these keypad commands.)  They are entirely equivalent
  2315.        to the command keys listed above:
  2316.  
  2317.            Fast forward    -   End
  2318.            Play            -   Right-arrow
  2319.            Advance         -   Down-arrow
  2320.            Stop            -   '5' on the keypad
  2321.            Back            -   Up-arrow
  2322.            Reverse         -   Left-arrow
  2323.            Rewind          -   Home
  2324.            Eject           -   Escape
  2325.  
  2326.  
  2327.        A diagram of the keypad gives a better sense of the logic behind
  2328.        this arrangement:
  2329.  
  2330.                         ________________________________
  2331.                        |          |          |          |
  2332.                        |          |          |          |
  2333.                        |  Rewind  |   Back   |          |
  2334.                        |          |          |          |
  2335.                        |__________|__________|__________|
  2336.                        |          |          |          |
  2337.                        |          |          |          |
  2338.                        |  Reverse |   Stop   |   Play   |
  2339.                        |          |          |          |
  2340.                        |__________|__________|__________|
  2341.                        |          |          |          |
  2342.                        |          |          |          |
  2343.                        | Fast Fwd |  Advance |          |
  2344.                        |          |          |          |
  2345.                        |__________|__________|__________|
  2346.  
  2347.  
  2348.  
  2349.        As an additional convenience, the <Space> bar also executes the
  2350.        Stop command.
  2351.  
  2352.  
  2353.            HYPERGEO    Version 2.1                             Page 3-34
  2354.  
  2355.  
  2356.  
  2357.        3.6  PCX File Output
  2358.  
  2359.        The display currently visible on the screen may be saved in a PCX
  2360.        file at any time during interactive editing.  PCX is a standard
  2361.        graphics file format that can be read by many commercial
  2362.        word-processing, desktop publishing, and presentation artwork
  2363.        programs.  This provides a means for copying HYPERGEO images into
  2364.        documents and for producing printed output.
  2365.  
  2366.        The 'O' key executes the PCX File Output command.  It brings up a
  2367.        text dialog box which requests the name of the file to be
  2368.        created.  The dialog box's type-in area is pre-filled with a
  2369.        default name which is the name of the current geometry file with
  2370.        .PCX as its extension.  The dialog box features may be used to
  2371.        change this name if desired, including prepending a DOS path
  2372.        specification to place the output file in a different directory.
  2373.  
  2374.        Once the file name is confirmed, the PCX file is created.  A
  2375.        message window appears indicating the successful completion of
  2376.        the command.
  2377.  
  2378.  
  2379.            HYPERGEO    Version 2.1                             Page 4-1
  2380.  
  2381.  
  2382.  
  2383.        Section 4.    Inner Workings
  2384.  
  2385.  
  2386.  
  2387.        4.1  Units
  2388.  
  2389.        The coordinates of the geometry definition are considered to be
  2390.        in so-called "geometry units" which are not assumed to have any
  2391.        particular relation to any real physical unit.  Regardless of the
  2392.        size of the coordinate values, HYPERGEO will scale the display to
  2393.        fit within the visible screen area.  Some of the parameters that
  2394.        can be specified by the user are expressed in geometry units and
  2395.        must be entered that way.  Other parameters, in particular, those
  2396.        relating to the projection of the final 2-D image on the computer
  2397.        screen, are expressed in real-world units.  The program uses
  2398.        inches for all real-world dimensions, and the display scale is
  2399.        expressed as a ratio of inches to geometry units (the inches here
  2400.        refer to distances on the face of the screen).
  2401.  
  2402.        In the detailed reference material contained in the appendixes to
  2403.        this document and in all program prompts and messages the units
  2404.        to use for a particular data value are always indicated.
  2405.  
  2406.  
  2407.        4.2  Verification of the Geometry Definition
  2408.  
  2409.        A geometry definition file is created by the user as an ordinary
  2410.        text file (see Appendix A for a full discussion of this file's
  2411.        format).  It is then processed into a more efficient binary
  2412.        (i.e., non-text) form which can in turn be read by the HYPERGEO
  2413.        program.  This text-to-binary processing step is performed by the
  2414.        GEO2BIN utility program.  In addition to converting the geometry
  2415.        definition to binary format, the GEO2BIN program also performs
  2416.        some error checking on the correctness of the geometrical model.
  2417.        It analyzes the definition of the described object which contains
  2418.        direct information on the number of vertexes and edges.  The
  2419.        number of faces and (for 4-D) hyperfaces is calculated, and
  2420.        various aspects of the input file and its derived topology are
  2421.        checked for validity:
  2422.  
  2423.            *  The number of dimensions must be either 3 or 4.
  2424.  
  2425.            *  Every vertex must have at least as many edges connected to
  2426.               it as the number of dimensions.
  2427.  
  2428.            *  All edge connections must be consistently specified
  2429.               between both connected vertexes, that is, if vertex #1 is
  2430.               in the connection list of vertex #2, vertex #2 must be in
  2431.               vertex #1's list, also.
  2432.  
  2433.            *  The numbers of vertexes, edges, faces, and (for 4-D)
  2434.               hyperfaces must agree with the theoretical values as given
  2435.               by Euler's Formula or its hypergeometric version.
  2436.  
  2437.  
  2438.            HYPERGEO    Version 2.1                             Page 4-2
  2439.  
  2440.  
  2441.        If any of these checks fails, an error message is displayed, and
  2442.        the binary geometry definition file is not created.
  2443.  
  2444.  
  2445.        4.3  Overlay Swapping
  2446.  
  2447.        HYPERGEO was developed using Borland C++ Version 3.1, and it
  2448.        makes use of the Borland overlay manager (called VROOMM for
  2449.        Virtual Run-time Object-Oriented Memory Manager).  Various
  2450.        portions of HYPERGEO's executable code are swapped in and out of
  2451.        memory dynamically as they are needed while the program is
  2452.        running.  This technique is known as overlaying and is a standard
  2453.        approach for minimizing a program's run-time memory requirements.
  2454.        It reduces the amount of system memory required by the program at
  2455.        any one time.
  2456.  
  2457.        However, overlaying has the drawback that it may entail repeated
  2458.        disk reads of the program's executable file (whenever a new
  2459.        portion of the code must be loaded for execution).  This can
  2460.        cause a noticeable slow-down in the program's performance.  A way
  2461.        to avoid this problem is to use system memory outside the
  2462.        standard 640K DOS area to store those portions of the program
  2463.        that are temporarily swapped out.  When they are needed again for
  2464.        execution, they can be retrieved from memory much faster than if
  2465.        they must be reread from disk.
  2466.  
  2467.        The Borland overlay manager allows using either expanded memory
  2468.        (EMS) or extended memory as the overlay storage area.  A full
  2469.        discussion of what expanded and extended memory are and how they
  2470.        are implemented on a PC is beyond the scope of this document.
  2471.        Those topics are covered in some detail in the DOS reference
  2472.        manual.  Suffice it to say for now that if your computer has any
  2473.        memory beyond the 640K main DOS area, it is probably set up to be
  2474.        available as one or the other of expanded or extended.
  2475.  
  2476.        If your system has extra memory but you're not sure how it is set
  2477.        up, you can simple try running HYPERGEO with each of the two
  2478.        overlay swapping options (-e for EMS expanded, -x for extended)
  2479.        and see which one works.  If you choose the wrong one, HYPERGEO
  2480.        will issue a message saying it can't find the specified type of
  2481.        memory and will not start up.
  2482.  
  2483.        Note: If your system has a disk caching utility installed (for
  2484.        example, Microsoft's SMARTDRV, which is provided with MS-DOS and
  2485.        Windows 3.x), you should not enable HYPERGEO's overlay swapping.
  2486.        The disk caching performs a similar function, and HYPERGEO's
  2487.        overlay swapping would be redundant.
  2488.  
  2489.  
  2490.            HYPERGEO    Version 2.1                             Page 5-1
  2491.  
  2492.  
  2493.  
  2494.  
  2495.        Section 5.    Restrictions and Limitations
  2496.  
  2497.  
  2498.        5.1  Geometry Definition File
  2499.  
  2500.        The database maintained by the HYPERGEO program is dynamically
  2501.        allocated and expands to fit the size of the geometry being
  2502.        handled so there are no precise and absolute capacity limits on
  2503.        how big and complicated an object may be.  The ultimate barrier
  2504.        is the 640K limit of available memory under DOS.  Although I have
  2505.        not done the actual experiment, my guess is that the two largest
  2506.        regular four-dimensional polytopes, with 120 and 600 hyperfaces
  2507.        respectively (and as many as 1200 edges and faces), would far
  2508.        overwhelm HYPERGEO and DOS with their memory allocation
  2509.        requirements.  If some intrepid researcher would care to
  2510.        undertake the creation of geometry definition files for these two
  2511.        very large hyperobjects, I would be most interested in hearing
  2512.        about the results.
  2513.  
  2514.        For more reasonably sized geometries, the most important
  2515.        restriction is that all 4-D hyperobjects must be "simple" and
  2516.        externally convex. (Simple means the object must be solid without
  2517.        any holes passing through it.)  For 3-D geometries, the
  2518.        requirement that the object be externally convex is removed, but
  2519.        it must still be a simple polyhedron, and all its faces must be
  2520.        simple polygons without internal edges.  Note that this last
  2521.        condition implies more severe limitations than is at first
  2522.        evident since it means that no face can have isolated projections
  2523.        or depressions in it (as that would mean there would be a ring of
  2524.        edges internal to the face and disconnected from the rest of the
  2525.        topology).
  2526.  
  2527.        As mentioned above, GEO2BIN performs some checking on the
  2528.        topological correctness of the input geometry.  However, to be
  2529.        truthful, this checking is not totally comprehensive; it can
  2530.        certainly fail to detect some errors in the input, and when it
  2531.        does find errors, the messages issued are not always as helpful
  2532.        as could be wished in pinpointing the problem.  I am sure that it
  2533.        would be possible to get the program to misbehave quite
  2534.        seriously, including hanging or crashing, by feeding it
  2535.        pernicious input data.  Therefore, until a future version of the
  2536.        program possesses improvements in this regard, the user must take
  2537.        some pains to insure that all new geometry definition files are
  2538.        created carefully and accurately.  If the program crashes upon
  2539.        startup, consider that to be a very loud, broadband error
  2540.        message, and check the geometry file closely. (However, HYPERGEO
  2541.        and the utility GEO2BIN are not totally deficient in this regard,
  2542.        and they will issue error messages when certain problems are
  2543.        detected.  A geometry definition file with only a handful of
  2544.        conventional errors will be handled adequately.)
  2545.  
  2546.  
  2547.            HYPERGEO    Version 2.1                             Page 5-2
  2548.  
  2549.  
  2550.  
  2551.        5.2  Mathematical Precision
  2552.  
  2553.        Most calculations in HYPERGEO are performed using a special
  2554.        fixed-point format that uses 32-bit data fields.  Within this
  2555.        field, 24 bits are used for the fractional portion of the value,
  2556.        and this gives about seven decimal digits of accuracy.  This is
  2557.        sufficient to produce graphics that are accurate and correct to a
  2558.        degree well beyond the limiting resolution of PC display devices.
  2559.  
  2560.        It is possible that small discrepancies may appear in some of the
  2561.        parameter values displayed by HYPERGEO as a result of restricting
  2562.        the precision of numerical calculations to 24 bits.  For example,
  2563.        you may notice that if you perform a single rotation of the
  2564.        geometry away from its starting orientation (where all axis
  2565.        angles are exactly zero) and then immediately perform a single
  2566.        identical rotation in the reverse direction, the axis angles may
  2567.        not all be restored to precisely zero.  This particular
  2568.        phenomenon is an especially sensitive indicator of very slight
  2569.        imprecisions in the fixed-point calculations; it arises because
  2570.        the axis angles are calculated as inverse cosines of orientation
  2571.        matrix coefficients, and the cosine function has the property
  2572.        that its value is very close to 1.0 for a fairly wide range of
  2573.        small angle values.  (For example, the inverse cosine of 0.999999
  2574.        is approximately 1/10 degree.)  Despite such apparent
  2575.        inaccuracies, the calculations are accurate to a degree of
  2576.        precision more than sufficient to produce exactly correct
  2577.        graphics.
  2578.  
  2579.        All numbers that are accepted as user input to the program (such
  2580.        as values appearing in configuration file parameter
  2581.        specifications) are handled as double precision floating-point
  2582.        quantities.  The double precision word length is 64 bits which
  2583.        provides about fifteen decimal digits of accuracy.  Any
  2584.        floating-point values given to the program (such as coordinates
  2585.        in the geometry definition file or scale factor in the
  2586.        configuration file) may contain up to fifteen digits although the
  2587.        usefulness of such extreme precision is questionable.
  2588.  
  2589.  
  2590.            HYPERGEO    Version 2.1                             Page 6-1
  2591.  
  2592.  
  2593.  
  2594.  
  2595.        Section 6.    Supplied Geometry Definition Files
  2596.  
  2597.  
  2598.        The HYPERGEO program comes with several "ready-to-run" geometry
  2599.        definition files, including both 4-D and 3-D objects.  These
  2600.        files include four of the six regular convex four-dimensional
  2601.        polytopes and all five of the three-dimensional regular convex
  2602.        polyhedra (the so-called "Platonic solids").  (As indicated
  2603.        above, the remaining two regular convex 4-D polytopes are almost
  2604.        certainly too big and complex to fit in HYPERGEO under DOS; they
  2605.        also are too far beyond my powers of hypergeometric comprehension
  2606.        to capture in a HYPERGEO input file.)
  2607.  
  2608.        All of the supplied geometry definition files are in binary
  2609.        format and have the file extension .BIN.  The root portion of the
  2610.        file name corresponds to the name of the geometric object
  2611.        contained in the file (with some abbreviations as required by DOS
  2612.        file name length limits).  The regular four-dimensional polytopes
  2613.        are in the files:
  2614.  
  2615.            File Name       Vertexes    Edges      Faces     Hyperfaces
  2616.           ------------     --------    -----      -----     ----------
  2617.  
  2618.              5CELL.BIN         5         10         10           5
  2619.  
  2620.           HYPRCUBE.BIN        16         32         24           8
  2621.  
  2622.             16CELL.BIN         8         24         32          16
  2623.  
  2624.             24CELL.BIN        24         96         96          24
  2625.  
  2626.  
  2627.        Note that except for the hypercube the 4-D polytope names are of
  2628.        the form 'N-cell' where N is the number of hyperfaces.  (The
  2629.        hypercube, technically and to be consistent, could be called the
  2630.        8-cell - just as the cube could be called a 'hexahedron' and the
  2631.        square a 'tetragon'.)  For the record, the two 4-D regular
  2632.        polytopes that aren't included here are the 120-cell and the
  2633.        600-cell.
  2634.  
  2635.  
  2636.            HYPERGEO    Version 2.1                             Page 6-2
  2637.  
  2638.  
  2639.  
  2640.        For three dimensions, all of the regular polyhedra names except
  2641.        "cube" are of the form '<prefix>hedron' where <prefix> is the
  2642.        Greek numeral indicating the number of faces: tetrahedron,
  2643.        octahedron, dodecahedron, and icosahedron.  The HYPERGEO geometry
  2644.        definition file names are formed from just the prefix without the
  2645.        base 'hedron':
  2646.  
  2647.            File Name       Vertexes        Edges           Faces
  2648.           ------------     --------        -----           -----
  2649.  
  2650.              TETRA.BIN         4               6               4
  2651.  
  2652.               CUBE.BIN         8              12               6
  2653.  
  2654.               OCTA.BIN         6              12               8
  2655.  
  2656.             DODECA.BIN        20              30              12
  2657.  
  2658.              ICOSA.BIN        12              30              20
  2659.  
  2660.  
  2661.        In addition to the regular polytopes and polyhedra, the following
  2662.        geometry definition files are also included:
  2663.  
  2664.            File Name     Dimensions    Geometrical Object
  2665.           ------------   ----------    ---------------------------------
  2666.  
  2667.            BLOCKS.BIN        3         A three-dimensional cross formed
  2668.                                        by stacking cubes along each of
  2669.                                        the three coordinate dimensions.
  2670.  
  2671.            STELLA.BIN        3         The "stella octangula", an
  2672.                                        interesting polyhedron formed by
  2673.                                        merging two 3-D tetrahedra.
  2674.  
  2675.                HG.BIN        3         A shape that forms the HYPERGEO
  2676.                                        logo by presenting the outline of
  2677.                                        the letter 'H' when viewed from
  2678.                                        two of the three orthogonal
  2679.                                        directions and the outline of the
  2680.                                        letter 'G' when viewed from the
  2681.                                        third.
  2682.  
  2683.  
  2684.            HYPERGEO    Version 2.1                             Page 6-3
  2685.  
  2686.  
  2687.  
  2688.           HYTETRA.BIN        4         These four objects are
  2689.            HYOCTA.BIN        4         "hyperprisms" derived from the
  2690.          HYDODECA.BIN        4         3-D regular polyhedra contained
  2691.           HYICOSA.BIN        4         in their names.  A hyperprism is
  2692.                                        formed by positioning two 3-D
  2693.                                        objects in hyperspace at a given
  2694.                                        separation along the W-axis and
  2695.                                        connecting each of the pairs of
  2696.                                        corresponding points between the
  2697.                                        two objects.  The resulting
  2698.                                        hyperobject has two hyperfaces
  2699.                                        that are the same shape as the
  2700.                                        base 3-D object plus an
  2701.                                        additional number of hyperfaces
  2702.                                        equal to the number of faces in
  2703.                                        the base 3-D object.  These
  2704.                                        additional hyperfaces are 3-D
  2705.                                        prisms whose end faces are the
  2706.                                        same polygonal shape as the faces
  2707.                                        of the base 3-D object.  Thus,
  2708.                                        for example, the HYTETRA.GEO
  2709.                                        hyperobject is based on the 3-D
  2710.                                        tetrahedron; it has two
  2711.                                        hyperfaces that are tetrahedra
  2712.                                        and four hyperfaces that are
  2713.                                        prisms with triangular end faces.
  2714.                                        (Note: Technically the hypercube
  2715.                                        is itself a hyperprism  - one
  2716.                                        based on the cube - but since it
  2717.                                        is also one of the regular 4-D
  2718.                                        polytopes, it is not included in
  2719.                                        this series.)
  2720.  
  2721.  
  2722.        ADDITIONAL GEOMETRY DEFINITION FILES SUPPLIED WITH REGISTERED
  2723.        COPIES OF HYPERGEO
  2724.  
  2725.        In addition to those files listed above, a number of extra
  2726.        geometry files are included with the utility program material
  2727.        that is supplied with a registered copy of HYPERGEO.
  2728.  
  2729.        First, the text-format version (extension .GEO) of each of the
  2730.        .BIN files listed above is supplied.  This text version is not
  2731.        needed to use the geometry file in HYPERGEO, but it is of value
  2732.        as documentation showing how the objects and hyperobjects are
  2733.        constructed.  The text files may also be of use as models to
  2734.        follow if the user creates any additional geometry definitions
  2735.        from scratch.
  2736.  
  2737.  
  2738.            HYPERGEO    Version 2.1                             Page 6-4
  2739.  
  2740.  
  2741.        Second, the following geometry definition files are supplied in
  2742.        both binary and text format (all are 3-D):
  2743.  
  2744.  
  2745.            File Name     Geometrical Object
  2746.           ------------   -------------------------------------------------
  2747.  
  2748.             CUBOCTA      The cuboctahedron.  This is a "quasi-regular"
  2749.                          convex polyhedron which is formed as the
  2750.                          intersection of a cube and an octahedron.  The
  2751.                          faces are not all identical as in the Platonic
  2752.                          solids, but they are all regular polyhedra
  2753.                          (squares and equilateral triangles), and they
  2754.                          are cyclically regular about each vertex.
  2755.  
  2756.            STELCUBO      The stellated form of the cuboctahedron.  It is
  2757.                          the union of a cube and an octahedron.
  2758.  
  2759.            RHDODECA      The rhombic dodecahedron.  This is the dual of
  2760.                          the cuboctahedron.  All of its faces are
  2761.                          identical rhombuses.
  2762.  
  2763.            ICODODEC      The icosidodecahedron, the second quasi-regular
  2764.                          convex polyhedron.  It is formed as the
  2765.                          intersection of an icosahedron and a
  2766.                          dodecahedron.  Its faces are regular triangles
  2767.                          and pentagons, and they are cyclically regular
  2768.                          about the object's vertexes.
  2769.  
  2770.            STELICOS      The stellated icosidodecahedron.  It is the
  2771.                          union of an icosahedron and a dodecahedron.
  2772.  
  2773.            TRIACONT      The triacontahedron, which is the dual of the
  2774.                          icosidodecahedron.  It is also a rhombohedron.
  2775.  
  2776.  
  2777.            HYPERGEO    Version 2.1                             Page A-1
  2778.  
  2779.  
  2780.  
  2781.  
  2782.        Appendix A.    Geometry Definition File
  2783.  
  2784.  
  2785.        This appendix describes the text format of the geometry
  2786.        definition file.  This file is the primary input to the HYPERGEO
  2787.        program.  It specifies the topology and dimensions of the
  2788.        geometrical object to be displayed.  In particular, the file
  2789.        contains the coordinate values for all vertex points of the
  2790.        object plus connectivity information that indicates which
  2791.        vertexes are joined by edges.  Section A.1 of this appendix is a
  2792.        complete reference on the format of this file.
  2793.  
  2794.        A geometry definition file cannot be used directly by HYPERGEO in
  2795.        its original text form.  It must first be converted into a binary
  2796.        format with the GEO2BIN utility program.  The binary version of
  2797.        the geometry file can be read much more quickly by HYPERGEO than
  2798.        the text version since it contains the additional derived
  2799.        topological information required to construct the internal
  2800.        HYPERGEO database.  Section A.2 of this appendix describes the
  2801.        use of the GEO2BIN utility.
  2802.  
  2803.  
  2804.        A.1  Text Format of the Geometry Definition File
  2805.  
  2806.        The geometry definition file is an ordinary text file that can be
  2807.        edited using any available text editor.  It is read by the
  2808.        GEO2BIN program a line at a time; each line comprises one
  2809.        complete data record, and there is no way to continue data across
  2810.        multiple lines.  The maximum length of a line is 255 characters.
  2811.  
  2812.        The geometry definition file can contain notes and comments that
  2813.        are not part of the data read by the program, but serve as
  2814.        human-readable annotation.  This is indicated by preceding any
  2815.        such comments with the character '!'.  GEO2BIN ignores any '!'
  2816.        character plus whatever follows it on the same line.  If the
  2817.        first character on a line is a '!', the entire line is skipped by
  2818.        the program.  If the '!' character appears following some data on
  2819.        a line, that data is read by the program, but everything after
  2820.        the '!' is ignored.
  2821.  
  2822.        The geometry definition file can contain any number of blank
  2823.        lines, which are ignored.  A line which contains only comment
  2824.        text is considered by the program to be a blank line.
  2825.  
  2826.        Every geometry definition file must begin with two particular
  2827.        data lines.  The first contains a single integer value which is
  2828.        the number of dimensions of the geometric object; this number
  2829.        must be either 3 or 4.  The second line contains a single integer
  2830.        that is the number of vertex points in the geometry.  Following
  2831.        these two lines, there must be one line with point data for each
  2832.        vertex point.
  2833.  
  2834.  
  2835.            HYPERGEO    Version 2.1                             Page A-2
  2836.  
  2837.  
  2838.        Each point data line contains the coordinate and connectivity
  2839.        information for a single vertex point.  Its format is:
  2840.  
  2841.            n:  x.x y.y z.z [w.w]   p1  p2  p3 [... pN]
  2842.  
  2843.        where 'n' is the sequence number of the point data line; 'x.x',
  2844.        'y.y', 'z.z', and 'w.w' are the X, Y, Z, and W coordinates of the
  2845.        point; and 'p1' through 'pN' are the sequence numbers of all
  2846.        other points connected to this point by edges.
  2847.  
  2848.        Each point's sequence number serves to identify the point within
  2849.        the file.  It is the number used in the connection lists, and it
  2850.        is also the number used to refer to the point in any error
  2851.        messages that may be issued.  All point sequence numbers are
  2852.        integers, and they must be in ascending order within the file;
  2853.        the first point data line must have sequence number 1, and the
  2854.        last point data line must have a sequence number equal to the
  2855.        total number of vertex points in the object.
  2856.  
  2857.        The coordinate values are floating-point numbers and may contain
  2858.        an optional decimal point and fractional digits.  They may also
  2859.        contain a decimal exponent in standard scientific notation
  2860.        format.  The coordinate values may be in any units desired; the
  2861.        program always scales the final display to fit the screen.  The W
  2862.        coordinate must be specified for a four-dimensional geometry and
  2863.        must not be specified for a three-dimensional one.
  2864.  
  2865.        The list of connected points contains the sequence numbers of all
  2866.        points connected to the point described by the given data line.
  2867.        Connection information must be symmetrical, that is, if point A
  2868.        is in point B's connection list, point B must also be in point
  2869.        A's connection list.  It is an error for a point to be in its own
  2870.        connection list.  Unlike the coordinate values, the program has
  2871.        no way of knowing how many connections should exist for each
  2872.        point and hence cannot directly report an error if there are too
  2873.        few or too many.  Therefore, it is incumbent upon the user to
  2874.        construct these lists with some care.
  2875.  
  2876.        Except for the ':' that must follow the sequence number, no
  2877.        punctuation is used to separate the data values, just one or more
  2878.        spaces.
  2879.  
  2880.        Following all point data, the geometry definition file may
  2881.        optionally contain configuration information.  If it appears, it
  2882.        must consist of statements that are identical in format to the
  2883.        primary configuration file (see Appendix B).  Configuration
  2884.        parameters specified in a geometry definition file override
  2885.        corresponding parameters set in the primary configuration file,
  2886.        but they remain in effect only while that geometry definition
  2887.        file is active in the HYPERGEO program.
  2888.  
  2889.  
  2890.            HYPERGEO    Version 2.1                             Page A-3
  2891.  
  2892.  
  2893.  
  2894.        A.2  The GEO2BIN Utility Program
  2895.  
  2896.        Every text Geometry Definition File (default extension .GEO) must
  2897.        be pre-processed to produce the corresponding binary version of
  2898.        the geometry definition (extension .BIN) in order to be used as
  2899.        input to the HYPERGEO program.  The GEO2BIN utility program is
  2900.        provided to perform this text-to-binary conversion step.  It must
  2901.        be executed (once only) for each new text geometry file before
  2902.        the file can be used in HYPERGEO, and it must be executed again
  2903.        (once) whenever any change is made to the text version of the
  2904.        geometry file.  Note that this includes changes made to any
  2905.        configuration data that may be specified in the geometry
  2906.        definition file; the GEO2BIN program copies all such
  2907.        configuration data into the binary (.BIN) version of the file so
  2908.        it can be read by the main HYPERGEO program.
  2909.  
  2910.        GEO2BIN is a normal DOS program; it is executed by typing its
  2911.        name on the DOS command line followed by the name of the text
  2912.        geometry definition file to be processed:
  2913.  
  2914.                GEO2BIN  <name-of-text-geometry-file>
  2915.  
  2916.        The geometry file name may contain a DOS path specification;
  2917.        otherwise, it is assumed to exist in the current directory.  If
  2918.        the name as entered has no extension, .GEO is assumed.  The
  2919.        output file created by GEO2BIN has the same name (and goes in the
  2920.        same directory) as the input text file, but with the extension
  2921.        .BIN.
  2922.  
  2923.        The GEO2BIN program displays status information indicating its
  2924.        progress as it is processing the geometry data.  If GEO2BIN finds
  2925.        errors in the geometry file, it displays appropriate messages on
  2926.        the screen and does not create the binary output file.  If
  2927.        desired, these error messages can be written to a file rather
  2928.        than displayed on the screen by using the standard DOS
  2929.        command-line redirection facility (the '>' character).
  2930.  
  2931.        Examples:
  2932.  
  2933.            GEO2BIN  HYPRCUBE
  2934.  
  2935.        This reads the text geometry file HYPRCUBE.GEO in the current
  2936.        directory and creates the binary version HYPRCUBE.BIN in the
  2937.        current directory.
  2938.  
  2939.  
  2940.            GEO2BIN  D:\DATA\CUBE.DAT >GEO2BIN.ERR
  2941.  
  2942.        This reads the text geometry file CUBE.DAT in directory D:\DATA
  2943.        and creates the binary version CUBE.BIN in directory D:\DATA.
  2944.        Any error messages will be written to the file GEO2BIN.ERR in the
  2945.        current directory rather than being displayed on the screen.
  2946.  
  2947.  
  2948.            HYPERGEO    Version 2.1                             Page B-1
  2949.  
  2950.  
  2951.  
  2952.  
  2953.        Appendix B.    Configuration File
  2954.  
  2955.  
  2956.        This appendix describes the format of the HYPERGEO configuration
  2957.        file.  This file allows the user to set a number of parameters
  2958.        that control various aspects of the program's performance.  The
  2959.        file is read once upon start-up of the program, and is reread
  2960.        each time a new geometry definition file is entered.
  2961.  
  2962.        In addition to the configuration file, similar configuration
  2963.        information may also be contained in any geometry definition
  2964.        file.  The format is the same in both places, but the parameter
  2965.        specifications in the geometry definition file override those in
  2966.        the primary configuration file; however, they are in effect only
  2967.        while that geometry file is active in the program (see Appendix
  2968.        A).
  2969.  
  2970.        Note:  There is one configuration parameter that is restricted to
  2971.        being used only in a geometry definition file and that may not be
  2972.        used in the primary configuration file.  See the entry on the
  2973.        ORIGIN parameter in the list below.
  2974.  
  2975.        A command line argument exists that allows the user to specify
  2976.        the name of the particular primary configuration file to use.
  2977.        This permits multiple configuration files to exist and to be
  2978.        selected as desired for different executions of HYPERGEO.  If no
  2979.        configuration file name is specified via a command line argument,
  2980.        the program tries to open one called HYPERGEO.CFG in the current
  2981.        directory.  It is not an error if this default configuration file
  2982.        cannot be opened, but it is a fatal error if a configuration file
  2983.        whose name is specified by the command line argument cannot be
  2984.        opened.
  2985.  
  2986.        The configuration file is an ordinary text file that can be
  2987.        edited using any available text editor.  It is read by the
  2988.        HYPERGEO program a line at a time; each line comprises one
  2989.        complete data record, and there is no way to continue data across
  2990.        multiple lines.  The maximum length of a line is 127 characters.
  2991.  
  2992.        The configuration file can contain notes and comments that are
  2993.        not part of the data read by the program, but serve as
  2994.        human-readable annotation.  This is indicated by preceding any
  2995.        such comments with the character '!'.  HYPERGEO ignores any '!'
  2996.        character plus whatever follows it on the same line.  If the
  2997.        first character on a line is a '!', the entire line is skipped by
  2998.        the program.  If the '!' character appears following some data on
  2999.        a line, that data is read by the program, but everything after
  3000.        the '!' is ignored.
  3001.  
  3002.  
  3003.            HYPERGEO    Version 2.1                             Page B-2
  3004.  
  3005.  
  3006.        The configuration file can contain any number of blank lines,
  3007.        which are ignored.  A line which contains only comment text is
  3008.        considered by the program to be a blank line.
  3009.  
  3010.        Each data line in the configuration file contains a single
  3011.        parameter definition.  The format of each line is simply the key
  3012.        word identifying the parameter followed by whatever data values
  3013.        the particular parameter requires.  No punctuation should be
  3014.        used; all parameters and values should be separated by one or
  3015.        more spaces.
  3016.  
  3017.        The case of letters used in the configuration file does not
  3018.        matter, so lower or upper case (or both) can be used as desired.
  3019.        However, the program is absolutely unforgiving about spelling;
  3020.        all parameter key words must be spelled exactly as they are shown
  3021.        in this document - no abbreviations, no hyphens instead of
  3022.        underscores, no near misses.
  3023.  
  3024.        Most parameters take a single data value, either a number or
  3025.        another key word.  Some parameters take a sequence of several
  3026.        numeric values, and some take no value at all.  Numeric values
  3027.        that are inherently integral must be entered as pure integers.
  3028.        Where floating-point values are appropriate, the data item may
  3029.        include a decimal point and fractional digits as well as an
  3030.        exponent in scientific notation.
  3031.  
  3032.        Errors encountered by the program while trying to read a
  3033.        configuration file (or configuration data in a geometry
  3034.        definition file) are listed on the screen, and the program pauses
  3035.        to permit the user to read them.  The primary configuration file
  3036.        is read by the main HYPERGEO program, while the secondary
  3037.        configuration specifications contained in a geometry definition
  3038.        file are read by the GEO2BIN program; but in both cases the
  3039.        method of error reporting is the same.  All configuration file
  3040.        errors are fatal and terminate the program (HYPERGEO or GEO2BIN)
  3041.        after the error message list is dismissed.
  3042.  
  3043.        The following pages contain a list of all parameters that may be
  3044.        specified in the HYPERGEO configuration file or a geometry
  3045.        definition file.
  3046.  
  3047.  
  3048.            HYPERGEO    Version 2.1                             Page B-3
  3049.  
  3050.  
  3051.  
  3052.        Parameter:  COLOR
  3053.                    COLOR_BACKGROUND
  3054.                    COLOR_HELP_BACKGROUND
  3055.                    COLOR_HELP_TEXT
  3056.                    COLOR_HILITE
  3057.                    COLOR_MENU
  3058.                    COLOR_MESSAGE_BACKGROUND
  3059.                    COLOR_VECTOR
  3060.  
  3061.        Value:      A color name chosen from the sixteen standard EGA
  3062.                    colors.  The possible colors are:
  3063.  
  3064.                        BLACK           DARKGRAY
  3065.                        BLUE            LIGHTBLUE
  3066.                        GREEN           LIGHTGREEN
  3067.                        CYAN            LIGHTCYAN
  3068.                        RED             LIGHTRED
  3069.                        MAGENTA         LIGHTMAGENTA
  3070.                        BROWN           YELLOW
  3071.                        LIGHTGRAY       WHITE
  3072.  
  3073.        Use:        These eight parameters set the colors used for each
  3074.                    of the component parts of the HYPERGEO display:
  3075.  
  3076.                        COLOR - Primary geometry graphics; also the
  3077.                            transient text values in the menu area and
  3078.                            text in dialog boxes
  3079.  
  3080.                        COLOR_BACKGROUND - Screen background
  3081.  
  3082.                        COLOR_HELP_BACKGROUND - Background color of the
  3083.                            on-line help screen
  3084.  
  3085.                        COLOR_HELP_TEXT - Text color of the on-line help
  3086.                            screen
  3087.  
  3088.                        COLOR_HILITE - Color used to display edges of a
  3089.                            highlighted hyperface
  3090.  
  3091.                        COLOR_MENU - Outlines and fixed labels in menu
  3092.                            area plus the mouse control pad; also the
  3093.                            geometry file name
  3094.  
  3095.                        COLOR_MESSAGE_BACKGROUND - Background color for
  3096.                            all message and prompting dialog boxes
  3097.  
  3098.                        COLOR_VECTOR - Unit axis vectors
  3099.  
  3100.                    The screen background color should be a dark color
  3101.                    (BLACK or DARKGRAY) if the stereoscopic anaglyph mode
  3102.                    of display is to be used.
  3103.  
  3104.  
  3105.            HYPERGEO    Version 2.1                             Page B-4
  3106.  
  3107.  
  3108.        Default:    COLOR                           WHITE
  3109.                    COLOR_BACKGROUND                DARKGRAY
  3110.                    COLOR_HELP_BACKGROUND           LIGHTGRAY
  3111.                    COLOR_HELP_TEXT                 BLACK
  3112.                    COLOR_HILITE                    LIGHTMAGENTA
  3113.                    COLOR_MENU                      YELLOW
  3114.                    COLOR_MESSAGE_BACKGROUND        BROWN
  3115.                    COLOR_VECTOR                    CYAN
  3116.  
  3117.  
  3118.  
  3119.        Parameter:  COLOR_SOLID
  3120.  
  3121.        Value:      A red/green/blue color specification in the form of
  3122.                    three integers each in the range 0 to 63.  The
  3123.                    integers should be entered without punctuation,
  3124.                    separated by spaces.
  3125.  
  3126.        Use:        On VGA color systems, defines the colors to be used
  3127.                    for surface rendering in solid display mode.
  3128.  
  3129.                    For solid surface rendering the program uses twelve
  3130.                    shades of graduated intensity based on the same
  3131.                    color.  The shades range from light to dark and are
  3132.                    used to represent the varying degrees of illumination
  3133.                    received by the different faces of the object from a
  3134.                    theoretical light source. (HYPERGEO can optionally
  3135.                    use color dithering techniques to increase the
  3136.                    effective number of solid fill shades from twelve to
  3137.                    twenty-three; see the SOLID_DITHER parameter below.)
  3138.  
  3139.                    The color specified by the COLOR_SOLID parameter
  3140.                    defines the lightest of the twelve shades; the
  3141.                    program creates the remaining eleven to be
  3142.                    increasingly darker variations.  Therefore, the color
  3143.                    specified should be fairly light, that is, have
  3144.                    relatively high values for the red, green, and blue
  3145.                    color components.
  3146.  
  3147.                    Note: This parameter is only meaningful on systems
  3148.                    with VGA color graphics.
  3149.  
  3150.        Default:    55  63  48
  3151.  
  3152.                    This defines a light, slightly grayish green.  It
  3153.                    produces a spectrum of twelve shades that range
  3154.                    through medium gray-greens down to a dark, evergreen
  3155.                    green.
  3156.  
  3157.  
  3158.            HYPERGEO    Version 2.1                             Page B-5
  3159.  
  3160.  
  3161.  
  3162.        Parameter:  DELTA_W
  3163.  
  3164.        Value:      numeric value (floating-point)
  3165.  
  3166.        Use:        Specifies the incremental step amount used to modify
  3167.                    the W intersection value during execution of the
  3168.                    HYPERGEO command for translation of the intersection
  3169.                    hyperplane (Page Up/Page Down - see Appendix D on
  3170.                    Interactive Commands below).  This value is in the
  3171.                    units of the geometry definition.
  3172.  
  3173.                    Because this parameter is in units that pertain to a
  3174.                    particular geometry definition, it is most useful in
  3175.                    a geometry definition file; however, it may be
  3176.                    specified in the primary configuration file.
  3177.  
  3178.        Default:    0.05 times the span of the geometrical object.  The
  3179.                    "span" is the greatest extent of the object in any
  3180.                    one of its three or four dimensions.
  3181.  
  3182.  
  3183.  
  3184.        Parameter:  DISPLAY_INFO
  3185.  
  3186.        Value:      One of:     OFF
  3187.                                ON
  3188.  
  3189.        Use:        Specifies whether or not the HYPERGEO information
  3190.                    window should be displayed automatically at program
  3191.                    start up and whenever a new geometry definition file
  3192.                    is entered.
  3193.  
  3194.        Default:    ON
  3195.  
  3196.  
  3197.            HYPERGEO    Version 2.1                             Page B-6
  3198.  
  3199.  
  3200.  
  3201.        Parameter:  DISPLAY_MENU
  3202.                    DISPLAY_NAME
  3203.                    DISPLAY_VECTOR
  3204.  
  3205.        Value:      One of:     OFF
  3206.                                ON
  3207.  
  3208.        Use:        Specifies whether a particular component of the
  3209.                    HYPERGEO display will be drawn.
  3210.  
  3211.                    DISPLAY_MENU controls the display of the menu area
  3212.                    along the right edge of the screen.  If DISPLAY_MENU
  3213.                    is OFF, the entire screen is used for the primary
  3214.                    geometry graphics (in this state, the mouse functions
  3215.                    are not available).
  3216.  
  3217.                    DISPLAY_NAME controls the display of the name of the
  3218.                    geometry definition file; if ON, the name will be
  3219.                    displayed at the upper, left corner of the screen.
  3220.  
  3221.                    DISPLAY_VECTOR controls the display of the coordinate
  3222.                    axis vectors.  The axis vectors are displayed as
  3223.                    dotted lines in the primary graphics; each vector is
  3224.                    labeled with the name of its axis, X, Y, Z, or W.
  3225.  
  3226.                    Note: Regardless of the DISPLAY_VECTOR setting, the
  3227.                    axis vectors are not displayed in hidden-line,
  3228.                    surface relief, or solid display mode.
  3229.  
  3230.        Default:    DISPLAY_MENU            ON
  3231.                    DISPLAY_NAME            ON
  3232.                    DISPLAY_VECTOR          OFF
  3233.  
  3234.  
  3235.  
  3236.        Parameter:  DISPLAY_MODE
  3237.  
  3238.        Value:      One of:     ANAGLYPH
  3239.                                HIDDEN_LINE
  3240.                                PERSPECTIVE
  3241.                                RELIEF
  3242.                                SOLID
  3243.  
  3244.        Use:        Specifies the display mode used to draw the primary
  3245.                    geometry graphics.
  3246.  
  3247.                    Note: The HIDDEN_LINE, RELIEF, and SOLID modes cannot
  3248.                    be used with 4-D to 3-D projections (only
  3249.                    intersections).  If they are specified together with
  3250.                    the PROJECTION or DUAL parameter (see below), the
  3251.                    program will use PERSPECTIVE mode.
  3252.  
  3253.        Default:    PERSPECTIVE
  3254.  
  3255.  
  3256.            HYPERGEO    Version 2.1                             Page B-7
  3257.  
  3258.  
  3259.  
  3260.        Parameter:  DUAL
  3261.  
  3262.        Value:      None
  3263.  
  3264.        Use:        Causes HYPERGEO to create dual images using both
  3265.                    intersection and projection modes of 4-D to 3-D
  3266.                    reduction; both images are displayed on the screen
  3267.                    simultaneously side by side (the intersection is on
  3268.                    the left and the projection on the right).
  3269.  
  3270.                    The DUAL parameter is meaningless for
  3271.                    three-dimensional geometries.
  3272.  
  3273.                    DUAL, INTERSECTION, and PROJECTION are mutually
  3274.                    exclusive alternatives; if more than one appears in
  3275.                    configuration file data, the final one encountered
  3276.                    will take precedence.
  3277.  
  3278.        Default:    By default HYPERGEO uses intersection mode for 4-D to
  3279.                    3-D reductions.
  3280.  
  3281.  
  3282.  
  3283.        Parameter:  EPSILON
  3284.  
  3285.        Value:      numeric value (floating-point)
  3286.  
  3287.        Use:        Specifies a small value to be used as an effective
  3288.                    zero in all floating-point comparisons required by
  3289.                    the program's calculations.
  3290.  
  3291.                    This value is unitless; all calculations are
  3292.                    performed internally on normalized coordinates.
  3293.  
  3294.        Default:    1.0E-6
  3295.  
  3296.                    Note: The performance of some of the algorithms used
  3297.                    in hidden-line and solid surface displays is very
  3298.                    sensitive to this value.  The default was set after
  3299.                    much experimentation and appears to provide reliable
  3300.                    behavior almost all of the time.  Users fiddle with
  3301.                    this value at their own risk.
  3302.  
  3303.  
  3304.            HYPERGEO    Version 2.1                             Page B-8
  3305.  
  3306.  
  3307.  
  3308.        Parameter:  EYE_DISTANCE
  3309.  
  3310.        Value:      numeric value (floating-point)
  3311.  
  3312.        Use:        Specifies the viewing distance, that is, the distance
  3313.                    between the eye and the display screen.  This value
  3314.                    is in inches.  It determines the degree of perceived
  3315.                    perspective in the various display modes.  For
  3316.                    greatest realism, it should be set to accurately
  3317.                    reflect the true eye-to-screen distance for the
  3318.                    user's normal viewing position.
  3319.  
  3320.                    Decreasing the EYE_DISTANCE enhances the perspective
  3321.                    effect, which can be useful.  HYPERGEO automatically
  3322.                    limits the maximum and minimum values to which the
  3323.                    eye-to-screen distance can be set to prevent possible
  3324.                    numeric errors in the program's computations.
  3325.  
  3326.        Default:    30.0
  3327.  
  3328.  
  3329.  
  3330.        Parameter:  EYE_SEPARATION
  3331.  
  3332.        Value:      numeric value (floating-point)
  3333.  
  3334.        Use:        Specifies the distance in inches between the viewer's
  3335.                    eyes.  This value is used in the perspective
  3336.                    calculations required for the separate left and right
  3337.                    eye images of the stereoscopic anaglyph and surface
  3338.                    relief display modes.
  3339.  
  3340.        Default:    2.5
  3341.  
  3342.                    Note: This default value should be entirely
  3343.                    acceptable for virtually all users.  You should only
  3344.                    try adjusting it if you are having difficulty fusing
  3345.                    the two stereoscopic images into a single 3D view
  3346.                    with proper depth perception.
  3347.  
  3348.  
  3349.            HYPERGEO    Version 2.1                             Page B-9
  3350.  
  3351.  
  3352.  
  3353.        Parameter:  INTERSECTION
  3354.  
  3355.        Value:      None
  3356.  
  3357.        Use:        Causes HYPERGEO to use the intersection mode of 4-D
  3358.                    to 3-D reduction (rather than projection mode).
  3359.  
  3360.                    The INTERSECTION parameter is meaningless for
  3361.                    three-dimensional geometries.
  3362.  
  3363.                    DUAL, INTERSECTION, and PROJECTION are mutually
  3364.                    exclusive alternatives; if more than one appears in
  3365.                    configuration file data, the final one encountered
  3366.                    will take precedence.
  3367.  
  3368.        Default:    By default HYPERGEO uses intersection mode for 4-D to
  3369.                    3-D reductions.
  3370.  
  3371.  
  3372.  
  3373.        Parameter:  ORIGIN
  3374.  
  3375.        Value:      Coordinate values as a sequence of three (for 3-D) or
  3376.                    four (for 4-D) floating-point numbers.  Values should
  3377.                    be entered without delimiting punctuation, using only
  3378.                    spaces as separation.
  3379.  
  3380.        Use:        Permits translating the geometry along any (or all)
  3381.                    of the coordinate axes.  The coordinate values
  3382.                    specified define the new origin which is to be used
  3383.                    by HYPERGEO as a centerpoint for all rotations.
  3384.  
  3385.                    The ORIGIN parameter may only be used in
  3386.                    configuration data appearing within a geometry
  3387.                    definition file; it may not be used in the primary
  3388.                    configuration file.  This is because the validity of
  3389.                    the origin coordinates - in terms of their number and
  3390.                    the units they are in - depends on the associated
  3391.                    geometry definition.  Also, the translation is
  3392.                    applied dynamically to the geometry point definitions
  3393.                    as they are read in.
  3394.  
  3395.                    The ORIGIN coordinate values are in the same units as
  3396.                    the original vertex point coordinates in the geometry
  3397.                    definition file.
  3398.  
  3399.        Default:    The origin is assumed to be (0,0,0) for 3-D and
  3400.                    (0,0,0,0) for 4-D geometries.
  3401.  
  3402.  
  3403.            HYPERGEO    Version 2.1                             Page B-10
  3404.  
  3405.  
  3406.  
  3407.        Parameter:  PROJECTION
  3408.  
  3409.        Value:      None
  3410.  
  3411.        Use:        Causes HYPERGEO to use the projection mode of 4-D to
  3412.                    3-D reduction (rather than intersection mode).
  3413.  
  3414.                    The PROJECTION parameter is meaningless for
  3415.                    three-dimensional geometries.
  3416.  
  3417.                    DUAL, PROJECTION, and INTERSECTION are mutually
  3418.                    exclusive alternatives; if more than one appears in
  3419.                    configuration file data, the final one encountered
  3420.                    will take precedence.
  3421.  
  3422.        Default:    By default HYPERGEO uses intersection mode for 4-D to
  3423.                    3-D reductions.
  3424.  
  3425.  
  3426.  
  3427.        Parameter:  SCALE
  3428.  
  3429.        Value:      numeric value (floating-point)
  3430.  
  3431.        Use:        Specifies the scale factor at which the display is
  3432.                    drawn.  The units of this value are screen inches per
  3433.                    geometry unit.
  3434.  
  3435.                    Because this parameter is in units that pertain to a
  3436.                    particular geometry definition, it is most useful in
  3437.                    a geometry definition file; however, it may be
  3438.                    specified in the primary configuration file.
  3439.  
  3440.        Default:    Autoscale: the display is scaled to fit comfortably
  3441.                    within the primary graphics area allowing ample room
  3442.                    for interactive rotations.
  3443.  
  3444.  
  3445.            HYPERGEO    Version 2.1                             Page B-11
  3446.  
  3447.  
  3448.  
  3449.        Parameter:  SCREEN_HEIGHT
  3450.                    SCREEN_WIDTH
  3451.  
  3452.        Value:      numeric value (floating-point)
  3453.  
  3454.        Use:        These two parameters specify the vertical and
  3455.                    horizontal size in inches of the actual area on the
  3456.                    display screen in which graphics are drawn.  They can
  3457.                    best be determined for a particular monitor by simply
  3458.                    measuring the height and width of the displayed area
  3459.                    on the face of the screen.
  3460.  
  3461.                    The precise accuracy of these parameters isn't
  3462.                    critical, but they are useful to insure that the
  3463.                    program's display scale is consistent between the
  3464.                    horizontal and vertical directions (so that squares
  3465.                    look square and not rectangular, for example).
  3466.  
  3467.        Default:    SCREEN_HEIGHT                   6.0
  3468.                    SCREEN_WIDTH                    8.0
  3469.  
  3470.                    Note: These default values are about right for the
  3471.                    typical 12-inch monitor.
  3472.  
  3473.  
  3474.  
  3475.        Parameter:  SOLID_DITHER
  3476.  
  3477.        Value:      One of:     ON
  3478.                                OFF
  3479.  
  3480.        Use:        Specifies whether or not the program will use color
  3481.                    dithering techniques to extend the number of shades
  3482.                    available for solid surface rendering.  (Dithering is
  3483.                    the pixel-by-pixel blending of different colors to
  3484.                    produce what appears to the eye as an intermediate
  3485.                    solid shade.)
  3486.  
  3487.                    HYPERGEO generates a palette of twelve distinct
  3488.                    shades that are used to fill the faces of an object
  3489.                    viewed with the solid display mode.  With dithering,
  3490.                    this number is increased to twenty-three.  The only
  3491.                    disadvantage to using dithering is that it slows down
  3492.                    the speed at which the graphics are drawn.  Disabling
  3493.                    this feature should only be necessary if display
  3494.                    speed is unusually critical; otherwise, use
  3495.                    dithering.
  3496.  
  3497.                    Note: This parameter is meaningful only for systems
  3498.                    with color graphics.
  3499.  
  3500.        Default:    ON
  3501.  
  3502.  
  3503.            HYPERGEO    Version 2.1                             Page B-12
  3504.  
  3505.  
  3506.  
  3507.        Parameter:  SOLID_FILL
  3508.  
  3509.        Value:      One of:     COLOR
  3510.                                PATTERN
  3511.  
  3512.        Use:        Specifies whether to use color or pattern for surface
  3513.                    rendering in solid display mode.
  3514.  
  3515.                    When color is used for solid surface rendering,
  3516.                    HYPERGEO displays the faces of the object with
  3517.                    varying levels of brightness to indicate how they are
  3518.                    illuminated by a theoretical light source.  If
  3519.                    pattern is used instead, the same effect is achieved
  3520.                    by varying the density of fill (displayed with a
  3521.                    single color) used to render the object's solid
  3522.                    faces.
  3523.  
  3524.                    If color is used, the twelve shades derived from the
  3525.                    COLOR_SOLID color (see above) are used for VGA
  3526.                    graphics, and a set of twelve pre-programmed colors
  3527.                    are used for EGA graphics.  Dithering may be used to
  3528.                    increase the number of apparent shades to
  3529.                    twenty-three (see the SOLID_DITHER parameter above).
  3530.  
  3531.                    If pattern is used, it is displayed using the color
  3532.                    specified for the primary geometry graphics.
  3533.  
  3534.                    Note: This parameter is only meaningful on systems
  3535.                    with color graphics capability (EGA or VGA); on
  3536.                    monochrome systems, PATTERN is always used.
  3537.  
  3538.        Default:    COLOR (for EGA and VGA color systems)
  3539.                    PATTERN (for monochrome systems)
  3540.  
  3541.  
  3542.  
  3543.        Parameter:  TURN
  3544.  
  3545.        Value:      numeric value (floating-point)
  3546.  
  3547.        Use:        Specifies the incremental step angle used by all
  3548.                    interactive rotation commands.  This value is
  3549.                    specified in degrees.
  3550.  
  3551.        Default:    5.0
  3552.  
  3553.  
  3554.            HYPERGEO    Version 2.1                             Page B-13
  3555.  
  3556.  
  3557.  
  3558.        Parameter:  VECTOR_LENGTH
  3559.  
  3560.        Value:      numeric value (floating-point)
  3561.  
  3562.        Use:        Specifies the length in screen inches of the unit
  3563.                    axis vectors which may optionally be displayed as
  3564.                    part of the primary geometry graphics (see
  3565.                    DISPLAY_VECTOR above).  The VECTOR_LENGTH is the
  3566.                    length an axis vector appears on the screen when it
  3567.                    is situated parallel to the XY-plane.  As the object
  3568.                    is rotated, the various axis vectors will appear to
  3569.                    rotate with it and become visibly shorter as they
  3570.                    assume different oblique orientations.
  3571.  
  3572.        Default:    1.0
  3573.  
  3574.  
  3575.  
  3576.        Parameter:  W_INTER
  3577.  
  3578.        Value:      One of:     CENTERED
  3579.                                numeric value (floating-point)
  3580.  
  3581.        Use:        Specifies the W-coordinate value at which a
  3582.                    four-dimensional hyperobject will be "sliced" when
  3583.                    using 4-D to 3-D intersection mode (that is, the
  3584.                    value 'k' in the equation, w = k, of the intersecting
  3585.                    hyperplane).  If a numeric value is specified, it
  3586.                    should be in the same units as the geometry
  3587.                    definition.
  3588.  
  3589.                    When CENTERED is specified, the program automatically
  3590.                    calculates the W value to use as the average of the
  3591.                    minimum and maximum of all W coordinate values in the
  3592.                    geometry definition.  This slices the hyperobject
  3593.                    more or less down the middle.
  3594.  
  3595.                    Because this parameter is in units that pertain to a
  3596.                    particular geometry definition, it is most useful in
  3597.                    a geometry definition file; however, it may be
  3598.                    specified in the primary configuration file.
  3599.  
  3600.        Default:    CENTERED
  3601.  
  3602.  
  3603.            HYPERGEO    Version 2.1                             Page B-14
  3604.  
  3605.  
  3606.  
  3607.  
  3608.        Parameter:  W_PROJECT
  3609.  
  3610.        Value:      numeric value (floating-point)
  3611.  
  3612.        Use:        Specifies the W-coordinate value at which the
  3613.                    theoretical viewpoint is positioned in hyperspace for
  3614.                    generating 4-D to 3-D projections.  The value is in
  3615.                    the same units as the geometry definition.
  3616.  
  3617.                    Because this parameter is in units that pertain to a
  3618.                    particular geometry definition, it is most useful in
  3619.                    a geometry definition file; however, it may be
  3620.                    specified in the primary configuration file.
  3621.  
  3622.        Default:    2 times the "radius" of the hyperobject
  3623.  
  3624.  
  3625.            HYPERGEO    Version 2.1                             Page B-15
  3626.  
  3627.  
  3628.  
  3629.  
  3630.        The following is an example of a HYPERGEO configuration file:
  3631.  
  3632.            !   Example HYPERGEO Configuration File
  3633.            !
  3634.  
  3635.            PROJECTION          ! change from default Intersection
  3636.  
  3637.            Color_Background    Black
  3638.            Color_Vector        LightCyan   ! lighter than default CYAN
  3639.  
  3640.            COLOR_SOLID         63 53 43    ! light reddish tan - gives
  3641.                                            ! darker shades that range
  3642.                                            ! through cocoa on down to
  3643.                                            ! dark red-brown
  3644.  
  3645.            display_vector      on
  3646.            vector_length       2.0         ! up from default 1 inch
  3647.  
  3648.            TURN                45          ! for fast rotations
  3649.  
  3650.            DISPLAY_MODE        anaglyph    ! start in stereoscopic mode
  3651.  
  3652.  
  3653.            HYPERGEO    Version 2.1                             Page C-1
  3654.  
  3655.  
  3656.  
  3657.  
  3658.        Appendix C.    Command Line Arguments
  3659.  
  3660.  
  3661.        The HYPERGEO command line consists of the name of the program's
  3662.        executable file, HYPERGEO.EXE, followed optionally by additional
  3663.        parameters that are passed to the program.  This additional text
  3664.        is used to transmit control specifications to the HYPERGEO
  3665.        program.  Parameters passed to a program in this manner are
  3666.        called command line arguments.
  3667.  
  3668.        Note: Normally the .EXE extension is not typed when the program
  3669.        is being executed since DOS knows it without being told.
  3670.  
  3671.        The HYPERGEO program accepts a number of command line arguments
  3672.        that can be used to control the behavior of the program.  Many of
  3673.        the command line arguments perform a function identical to
  3674.        parameters that can be specified in the HYPERGEO configuration
  3675.        file.  Whenever a command line argument and a configuration file
  3676.        parameter are in conflict, the command line argument takes
  3677.        precedence.  Furthermore, the command line specifications will
  3678.        continue to override configuration parameters that might be
  3679.        contained in any new geometry definition files that are read into
  3680.        the program interactively.
  3681.  
  3682.        Each command line argument consists of a single key letter that
  3683.        is entered on the HYPERGEO command line.  The key letters should
  3684.        be typed on the command line with a preceding hyphen, for
  3685.        example,
  3686.  
  3687.            HYPERGEO  -a
  3688.  
  3689.        Multiple arguments can either be strung together following a
  3690.        single hyphen or typed separately preceded by individual hyphens;
  3691.        thus,
  3692.  
  3693.            HYPERGEO  -aIv
  3694.  
  3695.        and
  3696.  
  3697.            HYPERGEO  -a  -I  -v
  3698.  
  3699.        are equivalent.
  3700.  
  3701.        Several arguments are flags indicating that a file name follows
  3702.        them immediately on the command line.  For these arguments, there
  3703.        must be no other argument letters following them before the file
  3704.        name.  There may, however, be one or more (or no) spaces between
  3705.        the flag letter and the file name.
  3706.  
  3707.  
  3708.            HYPERGEO    Version 2.1                             Page C-2
  3709.  
  3710.  
  3711.        In all instances, the case (lower or upper) of the key letter is
  3712.        significant.  A number of arguments use the two cases of the same
  3713.        letter to mean opposite settings of a single parameter.  All
  3714.        arguments that use only one case of a letter require it to be
  3715.        lower-case; it will be rejected as an error if typed in
  3716.        upper-case.
  3717.  
  3718.        (Confession: The standard notation of using a hyphen to prefix
  3719.        command line argument letters is styled after the Unix
  3720.        convention.  HYPERGEO follows this usage, and hyphens will always
  3721.        work.  However, to be candid, the arguments will also be handled
  3722.        correctly if preceded by a slash ('/', NOT a back-slash) or by
  3723.        nothing at all.  The only possible source of confusion is with
  3724.        file names appearing in the command line, but as long as all file
  3725.        names are always correctly and immediately preceded by their flag
  3726.        argument, the hyphen (or slash) prefix is superfluous and can be
  3727.        dispensed with.)
  3728.  
  3729.        Most arguments perform an independent function and can be used in
  3730.        any desired combination with other arguments.  However, five of
  3731.        the arguments serve to set the value of a single parameter, the
  3732.        3-D graphic display mode, and they are mutually exclusive.  These
  3733.        arguments are -a, -h, -p, -r, and -s;  if more than one of them
  3734.        appears in a HYPERGEO command line, the one typed last takes
  3735.        effect.  Also, the -e and -x arguments specify alternative modes
  3736.        of overlay swapping; if both are entered, the last one typed
  3737.        takes effect.
  3738.  
  3739.        The remainder of this appendix contains a list of all command
  3740.        line arguments for the HYPERGEO program.
  3741.  
  3742.  
  3743.            HYPERGEO    Version 2.1                             Page C-3
  3744.  
  3745.  
  3746.  
  3747.        Argument:   -a
  3748.  
  3749.        Use:        Selects the stereoscopic anaglyph mode of display.
  3750.  
  3751.                    This argument is mutually exclusive with -h, -p, -r,
  3752.                    and -s.
  3753.  
  3754.        Default:    Perspective display mode.
  3755.  
  3756.  
  3757.  
  3758.        Argument:   -b
  3759.  
  3760.        Use:        Instructs HYPERGEO to create all graphics in
  3761.                    monochrome, using black on a white background, even
  3762.                    if the graphics display device supports color.  This
  3763.                    can be useful when a monochrome monitor is connected
  3764.                    to a color graphics controller card.
  3765.  
  3766.                    With monochrome graphics the stereoscopic anaglyph
  3767.                    and surface relief display modes are unavailable, and
  3768.                    solid surface fill always uses patterns.
  3769.  
  3770.        Default:    Color if graphics device supports it, else
  3771.                    monochrome.
  3772.  
  3773.  
  3774.  
  3775.        Argument:   -c
  3776.  
  3777.        Use:        Specifies the name of a HYPERGEO configuration file
  3778.                    to use.  The argument letter must be followed on the
  3779.                    command line by the file name, with no other
  3780.                    arguments intervening.  The file name can contain
  3781.                    full DOS path information; if there is no path
  3782.                    specified, it is assumed to exist in the current
  3783.                    directory.  If the file name specification has no
  3784.                    extension, it is assumed to have the extension .CFG.
  3785.  
  3786.                    If this argument is used and the specified file
  3787.                    cannot be opened, it is a fatal error and HYPERGEO
  3788.                    terminates.  It is not an error, however, if the
  3789.                    default configuration file, HYPERGEO.CFG, cannot be
  3790.                    opened.
  3791.  
  3792.        Default:    HYPERGEO.CFG in current directory
  3793.  
  3794.  
  3795.            HYPERGEO    Version 2.1                             Page C-4
  3796.  
  3797.  
  3798.  
  3799.        Argument:   -d/-D
  3800.  
  3801.        Use:        Specifies whether or not to make use of the system's
  3802.                    installed mouse driver.  The lower-case option, -d,
  3803.                    causes HYPERGEO to use the mouse driver.  The
  3804.                    upper-case option, -D, tells the program to use its
  3805.                    own mouse support functions without making use of the
  3806.                    system's driver.
  3807.  
  3808.                    These options should rarely be used.  They are
  3809.                    provided only for those exceptional cases where a
  3810.                    particular mouse driver fails to operate correctly
  3811.                    with HYPERGEO.  Almost all standard mouse drivers
  3812.                    will provide proper functioning of the mouse.
  3813.                    However, a few drivers have been encountered that
  3814.                    produce erratic mouse behavior in HYPERGEO.  If you
  3815.                    are experiencing less than perfect mouse performance
  3816.                    - for example, occassional mouse button presses or
  3817.                    releases that fail to have an effect - try using the
  3818.                    -D option to bypass the mouse driver.
  3819.  
  3820.                    Note: The lower-case option, -d, is the default
  3821.                    setting and thus has essentially no effect; it is
  3822.                    included merely for completeness and for possible
  3823.                    future extensions.
  3824.  
  3825.        Default:    Use the system's installed mouse driver.
  3826.  
  3827.  
  3828.  
  3829.        Argument:   -e
  3830.  
  3831.        Use:        Tells HYPERGEO to use expanded (EMS) memory as its
  3832.                    overlay swapping area.  Enabling overlay swapping can
  3833.                    speed up program execution.  To use this option, your
  3834.                    system must either have an EMS-standard expanded
  3835.                    memory board installed or be set up for EMS emulation
  3836.                    with a driver such as Microsoft's EMM386.EXE.
  3837.  
  3838.                    This option is mutually exclusive with the -x option.
  3839.                    If both are specified, the last one entered takes
  3840.                    effect.
  3841.  
  3842.                    Note: Don't enable overlay swapping if your system
  3843.                    already has a disk caching program installed.
  3844.  
  3845.        Default:    Overlay swapping is disabled.
  3846.  
  3847.  
  3848.            HYPERGEO    Version 2.1                             Page C-5
  3849.  
  3850.  
  3851.  
  3852.        Argument:   -f
  3853.  
  3854.        Use:        Specifies the name of a HYPERGEO geometry definition
  3855.                    file to use.  The argument letter must be followed on
  3856.                    the command line by the file name, with no other
  3857.                    arguments intervening.  The file name can contain
  3858.                    full DOS path information; if there is no path
  3859.                    specified, it is assumed to exist in the current
  3860.                    directory.  If the file name specification has no
  3861.                    extension, it is assumed to have the extension .BIN.
  3862.  
  3863.                    If either the geometry file specified by this
  3864.                    argument or the default geometry file cannot be
  3865.                    opened, it is a fatal error and HYPERGEO terminates.
  3866.  
  3867.        Default:    HYPRCUBE.BIN in current directory
  3868.  
  3869.                    This is the standard four-dimensional hypercube.
  3870.  
  3871.  
  3872.  
  3873.        Argument:   -g/-G/-gG
  3874.  
  3875.        Use:        Selects the method for reducing the 4-D geometry to a
  3876.                    3-D image for display.  The lower-case argument, -g,
  3877.                    selects intersection mode, and the upper-case
  3878.                    argument, -G, selects projection mode.  If both the
  3879.                    lower-case and upper-case arguments are specified
  3880.                    (i.e., -gG), a dual 4-D to 3-D reduction is
  3881.                    performed; this generates both a projection image
  3882.                    and an intersection image displayed simultaneously
  3883.                    side by side on the screen.
  3884.  
  3885.        Default:    Intersection mode
  3886.  
  3887.  
  3888.  
  3889.        Argument:   -h
  3890.  
  3891.        Use:        Selects the hidden-line mode of 3-D display.
  3892.  
  3893.                    This argument is mutually exclusive with -a, -p, -r,
  3894.                    and -s.
  3895.  
  3896.                    Also, hidden-line display mode cannot be used with
  3897.                    4-D projections.  If this argument is used together
  3898.                    with the -G argument, a warning message is issued and
  3899.                    the program starts up in perspective display mode.
  3900.  
  3901.        Default:    Perspective display mode.
  3902.  
  3903.  
  3904.            HYPERGEO    Version 2.1                             Page C-6
  3905.  
  3906.  
  3907.  
  3908.        Argument:   -i/-I
  3909.  
  3910.        Use:        Specifies whether or not to display the special
  3911.                    HYPERGEO information window automatically upon
  3912.                    program start up and whenever a new geometry
  3913.                    definition file is read.  The lower-case argument,
  3914.                    -i, selects automatic display, and the upper-case
  3915.                    argument, -I, deactivates it.
  3916.  
  3917.        Default:    The information window is automatically displayed.
  3918.  
  3919.  
  3920.  
  3921.        Argument:   -m/-M
  3922.  
  3923.        Use:        Specifies whether or not to display the menu area
  3924.                    along the right edge of the screen.  The menu area
  3925.                    lists a number of parameters that describe the
  3926.                    current display and that can be modified
  3927.                    interactively within the HYPERGEO program.  It also
  3928.                    contains a mouse control pad area which allows the
  3929.                    mouse to be used for performing rotations of the
  3930.                    geometry.  If the menu area is not displayed, the
  3931.                    primary geometry graphics use the entire screen area;
  3932.                    the mouse may not be used without the display of the
  3933.                    menu area.
  3934.  
  3935.                    The lower-case argument, -m, selects display of the
  3936.                    menu area, while the upper-case argument, -M, causes
  3937.                    the menu not to be displayed.
  3938.  
  3939.        Default:    The menu area is displayed.
  3940.  
  3941.  
  3942.  
  3943.        Argument:   -n/-N
  3944.  
  3945.        Use:        Specifies whether or not to display the name of the
  3946.                    geometry definition file in the upper, left corner of
  3947.                    the graphics display.
  3948.  
  3949.                    The lower-case argument, -n, selects display of the
  3950.                    file name, while the upper-case argument, -N, causes
  3951.                    the name not to be displayed.
  3952.  
  3953.        Default:    The geometry definition file name is displayed.
  3954.  
  3955.  
  3956.            HYPERGEO    Version 2.1                             Page C-7
  3957.  
  3958.  
  3959.  
  3960.        Argument:   -p
  3961.  
  3962.        Use:        Selects perspective display mode.
  3963.  
  3964.                    This argument is mutually exclusive with -a, -h, -r,
  3965.                    and -s.
  3966.  
  3967.        Default:    Perspective display mode.
  3968.  
  3969.  
  3970.  
  3971.        Argument:   -r
  3972.  
  3973.        Use:        Selects the surface relief mode of 3-D display.
  3974.  
  3975.                    This argument is mutually exclusive with -a, -h, -p,
  3976.                    and -s.
  3977.  
  3978.                    Surface relief mode cannot be used with 4-D
  3979.                    projections.  If this argument is used together with
  3980.                    the -G argument, the program uses perspective display
  3981.                    mode.
  3982.  
  3983.  
  3984.        Default:    Perspective display mode is used.
  3985.  
  3986.  
  3987.  
  3988.        Argument:   -s
  3989.  
  3990.        Use:        Selects solid display mode.
  3991.  
  3992.                    This argument is mutually exclusive with -a, -h, -p,
  3993.                    and -r.
  3994.  
  3995.                    Also, solid display mode cannot be used with 4-D
  3996.                    projections.  If this argument is used together with
  3997.                    the -G argument, a warning message is issued and the
  3998.                    program starts up in perspective display mode.
  3999.  
  4000.        Default:    Perspective display mode.
  4001.  
  4002.  
  4003.            HYPERGEO    Version 2.1                             Page C-8
  4004.  
  4005.  
  4006.  
  4007.        Argument:   -v/-V
  4008.  
  4009.        Use:        Specifies whether or not to display the unit axis
  4010.                    vectors along with the primary geometry graphics.
  4011.  
  4012.                    The lower-case argument, -v, selects display of the
  4013.                    axis vectors, while the upper-case argument, -V,
  4014.                    causes the axis vectors not to be displayed.
  4015.  
  4016.                    Note: Regardless of the setting of this option, the
  4017.                    axis vectors are never displayed in hidden-line,
  4018.                    surface relief, or solid display mode.
  4019.  
  4020.        Default:    The unit axis vectors are not displayed.
  4021.  
  4022.  
  4023.  
  4024.        Argument:   -w
  4025.  
  4026.        Use:        Instructs HYPERGEO to create all graphics in
  4027.                    monochrome, using white on a black background, even
  4028.                    if the graphics display device supports color.  This
  4029.                    can be useful when a monochrome monitor is connected
  4030.                    to a color graphics controller card.
  4031.  
  4032.                    With monochrome graphics the stereoscopic anaglyph
  4033.                    and surface relief display modes are unavailable, and
  4034.                    solid surface fill always uses patterns.
  4035.  
  4036.        Default:    Color if graphics device supports it, else monochrome.
  4037.  
  4038.  
  4039.  
  4040.        Argument:   -x
  4041.  
  4042.        Use:        Tells HYPERGEO to use extended memory as its overlay
  4043.                    swapping area.  Enabling overlay swapping can speed
  4044.                    up program execution.  To use this option, your
  4045.                    system must have extended memory (memory at addresses
  4046.                    above 1MB), and an extended memory driver (such as
  4047.                    Microsoft's HIMEM.SYS) must be installed.
  4048.  
  4049.                    This option is mutually exclusive with the -e option.
  4050.                    If both are specified, the last one entered takes
  4051.                    effect.
  4052.  
  4053.                    Note: Don't enable overlay swapping if your system
  4054.                    already has a disk caching program installed.
  4055.  
  4056.        Default:    Overlay swapping is disabled.
  4057.  
  4058.  
  4059.            HYPERGEO    Version 2.1                             Page C-9
  4060.  
  4061.  
  4062.  
  4063.        Argument:   -2/-3
  4064.  
  4065.        Use:        Specify the system's CPU type.
  4066.  
  4067.                    The -2 option tells HYPERGEO that it is running on an
  4068.                    80286-based computer (or on an earlier CPU, i.e., an
  4069.                    8088).  Such computers are the IBM PC, PC-XT, and
  4070.                    PC-AT, and their immediate contemporaries.
  4071.  
  4072.                    The -3 option tells the program that it is running on
  4073.                    an 80386-based system (or on a later CPU, i.e., an
  4074.                    80486).
  4075.  
  4076.                    The key distinction between these two groups of
  4077.                    computers is that the earlier CPUs were limited to
  4078.                    16-bit arithmetic while the newer CPUs can perform
  4079.                    32-bit arithmetic.
  4080.  
  4081.                    These options should almost never be used.  HYPERGEO
  4082.                    has a built-in function that checks the identity of
  4083.                    the system's CPU when it starts up.  It uses this
  4084.                    information to determine whether or not it can
  4085.                    execute 32-bit arithmetic commands.  In almost all
  4086.                    cases this automatic check works properly to indicate
  4087.                    the correct CPU type.
  4088.  
  4089.                    However, it is possible that some computers may not
  4090.                    be correctly identified this way by the program.  If
  4091.                    an 80386 or 80486 CPU is misidentified as an earlier
  4092.                    16-bit processor, the symptoms are very subtle (just
  4093.                    a slight loss of execution speed), and it is very
  4094.                    unlikely that you would ever notice the difference.
  4095.                    If an 80286 or 8088-based computer is misidentified
  4096.                    as a 32-bit machine, the symptoms are much harder to
  4097.                    miss: HYPERGEO will crash upon start-up.
  4098.  
  4099.                    If HYPERGEO crashes or hangs the system almost
  4100.                    immediately upon start-up and you have a computer
  4101.                    with an 80286 or 8088 CPU, try using the -2 option.
  4102.  
  4103.                    If you have an 80386 or 80486 in your system and you
  4104.                    are the sort who tends to worry, you can go ahead and
  4105.                    use the -3 option.  It will do no harm, and it will
  4106.                    guarantee that HYPERGEO is making proper use of your
  4107.                    computer's 32-bit arithmetic capabilities.
  4108.  
  4109.                    Note: Using the -3 option with an 80286 or 8088-based
  4110.                    system will do harm; it will cause HYPERGEO to crash.
  4111.  
  4112.        Default:    No default; setting determined by checking the CPU
  4113.  
  4114.  
  4115.            HYPERGEO    Version 2.1                             Page C-10
  4116.  
  4117.  
  4118.  
  4119.  
  4120.        Argument:   -?
  4121.  
  4122.        Use:        Prints to the screen a description of the appropriate
  4123.                    syntax and usage of these command line arguments and
  4124.                    terminates the HYPERGEO program.
  4125.  
  4126.        Default:    No syntax description is printed.
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141.        The following is an example of a HYPERGEO command line:
  4142.  
  4143.            HYPERGEO  -f 16cell  -cc:\configs\special.dat  -Gav  -I
  4144.  
  4145.  
  4146.        This command invokes the following command line argument
  4147.        functions:
  4148.  
  4149.            *   Use the geometry definition file 16CELL.BIN located in
  4150.                the current directory
  4151.  
  4152.            *   Use the configuration file SPECIAL.DAT located in the
  4153.                directory C:\CONFIGS\
  4154.  
  4155.            *   Use projection mode for reducing the 4-D geometry to a
  4156.                3-D image
  4157.  
  4158.            *   Use stereoscopic anaglyph display mode for the 3-D image
  4159.  
  4160.            *   Display the unit axis vectors
  4161.  
  4162.            *   Deactivate the automatic display of the HYPERGEO
  4163.                information window
  4164.  
  4165.  
  4166.            HYPERGEO    Version 2.1                             Page D-1
  4167.  
  4168.  
  4169.  
  4170.  
  4171.        Appendix D.    Interactive Commands
  4172.  
  4173.  
  4174.        When the HYPERGEO program is executed, it accepts any command
  4175.        line arguments, reads in the appropriate configuration file (if
  4176.        any) and geometry definition file, and generates the initial
  4177.        display of the geometric object.  From that point on, the program
  4178.        remains responsive to a set of interactive commands which enable
  4179.        the user to manipulate the orientation of the object and to
  4180.        modify the various parameters that control the manner in which
  4181.        the display is generated.  Many of these interactive commands
  4182.        affect the same parameters that can be initially set through the
  4183.        configuration file and command line arguments.
  4184.  
  4185.        All interactive commands are invoked using either the keyboard or
  4186.        the mouse.  The mouse (if the system has one) provides an
  4187.        alternative means for invoking the commands for rotation of the
  4188.        object and for changing the value of the several display
  4189.        parameters that are listed in the menu area; if there is no
  4190.        mouse, keyboard commands can be used to perform the same
  4191.        functions.  (Also, if the menu area is not displayed, the mouse
  4192.        cannot be used, and the keyboard equivalents must be similarly
  4193.        resorted to instead.)
  4194.  
  4195.  
  4196.        D.1  Keyboard Commands and the Modifier Keys
  4197.  
  4198.        The keyboard commands consist of either a single keystroke or a
  4199.        single keystroke accompanied by the simultaneous pressing of one
  4200.        of the standard keyboard modifier keys: Shift, Ctrl, or Alt.
  4201.        These modifier keys are only used with some of the interactive
  4202.        commands, and in almost all cases they have a consistent meaning:
  4203.  
  4204.            Shift   - Generally used to reverse the sense or direction of
  4205.                      the command's action.
  4206.  
  4207.                      Used with keystrokes that invoke the various
  4208.                      rotations, it causes the direction of rotation to
  4209.                      be reversed, that is, to be equivalent to a
  4210.                      negative turn angle.
  4211.  
  4212.                      Note: For all command keystrokes that are letters,
  4213.                      if the Shift key has no special meaning for that
  4214.                      command, the command may be entered equivalently in
  4215.                      either lower or upper case.  Only four letter
  4216.                      commands (G, X, Y, and Z) have special
  4217.                      Shift-modified meanings.
  4218.  
  4219.  
  4220.            HYPERGEO    Version 2.1                             Page D-2
  4221.  
  4222.  
  4223.  
  4224.            Ctrl    - Used with keystrokes for the rotation commands plus
  4225.                      the command for translating the intersecting
  4226.                      hyperplane along the W-axis in hyperspace; causes
  4227.                      the command action to be repeated continuously as
  4228.                      fast as the computer's processing speed will allow.
  4229.                      This "command automation" is stopped by pressing
  4230.                      any key.
  4231.  
  4232.                      In the case of the hyperplane translation command,
  4233.                      the automated motion is automatically reversed in
  4234.                      direction each time the intersecting hyperplane
  4235.                      reaches an extreme of the hyperobject.  This causes
  4236.                      the hyperplane to move continuously back and forth
  4237.                      through the entire body of the hyperobject.
  4238.  
  4239.            Alt     - Used with keystrokes for the rotation commands; has
  4240.                      the same "command automation" effect as the Ctrl
  4241.                      modifier except the rotation is in the reverse
  4242.                      direction.  The continuous, automated rotation is
  4243.                      stopped by pressing any key.
  4244.  
  4245.  
  4246.        D.2  Mouse Selected Interactive Commands
  4247.  
  4248.        When the mouse is used to invoke a rotation command, no special
  4249.        modifiers are necessary since the action of the mouse buttons
  4250.        provides the equivalent control.  A rotation command can be
  4251.        invoked with the mouse (whenever the HYPERGEO menu area is
  4252.        displayed) by moving the mouse so the cursor is over the
  4253.        selection box labeled with the coordinate letters indicating the
  4254.        desired axis or plane of rotation; this will highlight the
  4255.        selection box.  To begin the rotation, press the left or right
  4256.        mouse button; the right mouse button causes a rotation in the
  4257.        positive direction, and the left mouse button rotates the object
  4258.        in the negative direction.  The rotation will continue as long as
  4259.        the mouse button remains pressed.  A single incremental rotation
  4260.        can be achieved by quickly clicking and releasing the mouse
  4261.        button.
  4262.  
  4263.        There are nine rotation command selection boxes in the HYPERGEO
  4264.        menu area, divided into two sections: 3-D axial rotations, and
  4265.        4-D planar rotations.  All nine are available for 4-D geometries,
  4266.        but only the three 3-D rotations can be selected when the input
  4267.        geometry is three-dimensional (in 3-D geometry mode, the section
  4268.        of the mouse control pad area that contains the selection boxes
  4269.        for 4-D rotations is shaded over with a stippled pattern, and
  4270.        those mouse functions cannot be selected).  The 4-D rotation
  4271.        selection boxes are labeled with the letters of the two
  4272.        coordinates specifying the plane of the rotation; thus, selecting
  4273.        the box labeled "XY" initiates a rotation in hyperspace of the
  4274.        XY-plane.  The 3-D rotation selection boxes are labeled with the
  4275.        single letter of the axis around which the rotation occurs: X, Y,
  4276.        or Z.
  4277.  
  4278.  
  4279.            HYPERGEO    Version 2.1                             Page D-3
  4280.  
  4281.  
  4282.  
  4283.        If your system has no mouse or if the menu area isn't displayed
  4284.        (or if you simply prefer to use the keyboard), there is an
  4285.        equivalent keyboard command for each of the nine mouse rotations:
  4286.  
  4287.                Keystroke       Mouse Selection Box Label
  4288.                ---------       -------------------------
  4289.                    X                      X
  4290.                    Y                      Y
  4291.                    Z                      Z
  4292.                   F5                     YZ
  4293.                   F6                     XW
  4294.                   F7                     XZ
  4295.                   F8                     YW
  4296.                   F9                     XY
  4297.                   F10                    ZW
  4298.  
  4299.  
  4300.        The keystrokes F5, F7, and F9 correspond to the YZ, XZ, and XY
  4301.        4-D planar rotations.  Note that these are the three rotations
  4302.        that occupy the top row of the six 4-D rotation selection boxes
  4303.        in the menu area and that they are the 4-D rotations that don't
  4304.        involve the W coordinate.  These three rotations produce the same
  4305.        visual effect in the geometry display as the three 3-D rotations
  4306.        whose selection boxes are directly above them in the menu: X, Y,
  4307.        and Z.
  4308.  
  4309.        The keystrokes F6, F8, and F10 correspond to the three 4-D
  4310.        rotations that do involve the W coordinate: the XW, YW, and ZW
  4311.        planar rotations.  These are the 4-D rotations that occupy the
  4312.        bottom row of selection boxes within the menu area.  They do not
  4313.        correspond in effect to any of the 3-D rotations.
  4314.  
  4315.        When the alternative user interface state that allows the
  4316.        temporary translation of a selected 4-D vertex is in effect, all
  4317.        4-D rotations are disabled; that portion of the menu is replaced
  4318.        by a control pad area that has selection boxes for executing
  4319.        translations of the vertex along each of the four coordinate
  4320.        axes.  These boxes are labeled X, Y, Z, and W.  To perform a
  4321.        translation, move the mouse cursor so the appropriate box is
  4322.        highlighted.  Pressing the right mouse button moves the vertex in
  4323.        the positive direction along the particular axis, and pressing
  4324.        the left mouse button moves it in the negative direction.  The
  4325.        vertex continues to move until the mouse button is released.
  4326.  
  4327.        In addition to performing interactive rotations and vertex
  4328.        translations, the mouse can be used to modify the other
  4329.        parameters shown in the menu area.  To do this, move the mouse
  4330.        cursor over the label of the desired parameter and click one of
  4331.        the buttons.  Depending on the particular parameter, this will
  4332.        either cause an immediate change to the parameter or bring up a
  4333.        dialog box requesting specification of a new value.
  4334.  
  4335.  
  4336.            HYPERGEO    Version 2.1                             Page D-4
  4337.  
  4338.  
  4339.  
  4340.        The parameters for eye-to-screen distance (EYE DIST), scale
  4341.        factor (SCALE), W-coordinate of the intersecting hyperplane
  4342.        (W-INTER), and the W-coordinate of the 4-D projection viewpoint
  4343.        (W-PROJ) exhibit the first type of behavior; selecting them with
  4344.        the mouse results in an immediate change to the parameter's
  4345.        value.  This action is equivalent to the behavior of the
  4346.        keystroke commands that are used to modify these same parameters.
  4347.        Which mouse button is used to select the parameter determines the
  4348.        direction in which its value is adjusted: the right button
  4349.        increases it, and the left button decreases it:
  4350.  
  4351.            EYE DIST    -   Selecting with the right mouse button
  4352.                            increases the eye-to-screen distance by 10%
  4353.                            (thus decreasing the perceived degree of
  4354.                            perspective).  Using the left mouse button
  4355.                            decreases the eye-to-screen distance by 10%.
  4356.  
  4357.            SCALE       -   Selection with the right mouse button
  4358.                            increases the scale factor by 10%.  Using the
  4359.                            left mouse button decreases the scale factor
  4360.                            by 10%.
  4361.  
  4362.            W-INTER     -   Selecting this parameter with the right mouse
  4363.                            button increases the W-coordinate value of
  4364.                            the intersecting hyperplane by an amount
  4365.                            equal to the current value of the delta-W
  4366.                            parameter.  Selection with the left mouse
  4367.                            button decreases the W-coordinate value by
  4368.                            the delta-W amount.
  4369.  
  4370.            W-PROJ      -   Selecting with the right mouse button
  4371.                            increases the W-coordinate of the 4-D
  4372.                            projection viewpoint by 10% (thus decreasing
  4373.                            the perceived degree of perspective).  Using
  4374.                            the left mouse button decreases the
  4375.                            coordinate by 10%.
  4376.  
  4377.  
  4378.        All other parameters shown in the menu are modified through a
  4379.        dialog box that pops up when their label area is selected with
  4380.        the mouse (either button).
  4381.  
  4382.        When the geometry being displayed is three-dimensional, the
  4383.        parameters relating to the translation of the four-dimensional
  4384.        intersecting hyperplane (W-INTER) and the position of the 4-D
  4385.        projection viewpoint (W-PROJ) are not displayed since they have
  4386.        no meaning in 3-space.
  4387.  
  4388.  
  4389.            HYPERGEO    Version 2.1                             Page D-5
  4390.  
  4391.  
  4392.  
  4393.        D.3  Interactive Parameter Specification
  4394.  
  4395.        Some of the interactive commands prompt for the input of a value
  4396.        to be assigned to a program parameter.  This value is generally
  4397.        either a numeric quantity, a file name, or a particular key word.
  4398.        The input is requested from the user via a prompting dialog box
  4399.        which pops up in the primary graphics area when the command is
  4400.        executed.  There are several different types of dialog box used
  4401.        in HYPERGEO depending upon the nature of the parameter to be
  4402.        assigned a value.  The behavior of these has been described fully
  4403.        in an earlier section of this document (3.2.3).  Of these, the
  4404.        most frequently used is the generic text input dialog box.
  4405.  
  4406.        A text input dialog box contains an entry line in which the
  4407.        user's typed response appears.  After typing in the appropriate
  4408.        value, the user should indicate that the entry is complete and
  4409.        correct by selecting the "Ok" button with the mouse (or by
  4410.        pressing <Enter>); this will cause the command to accept the
  4411.        typed in value for the given parameter.  A dialog box may be
  4412.        cancelled at any time by selecting the "Cancel" button with the
  4413.        mouse (or by pressing <Esc>); this aborts the command that caused
  4414.        the dialog box to appear.
  4415.  
  4416.        Dialog boxes that accept character input - either key words or
  4417.        file names - are case insensitive; upper or lower case may be
  4418.        used as desired.  Numeric values may be either integers or
  4419.        floating-point numbers depending upon the context of the command.
  4420.        If a floating-point number is appropriate, it may be entered with
  4421.        an optional decimal point and fractional digits and may include
  4422.        an optional decimal exponent in scientific notation.
  4423.  
  4424.        If the user's entry in a prompting dialog box is invalid, an
  4425.        error message window will appear.  Like all HYPERGEO message
  4426.        windows, it can be dismissed by selecting the "Ok" button with
  4427.        the mouse (or by pressing <Enter> or <Esc>).  All errors
  4428.        resulting from incorrect input to interactive parameter prompts
  4429.        are non-fatal; the program will continue running, ready for the
  4430.        next interactive command, once the message window is dismissed.
  4431.  
  4432.  
  4433.            HYPERGEO    Version 2.1                             Page D-6
  4434.  
  4435.  
  4436.  
  4437.        D.4  HYPERGEO Interactive Keyboard Commands
  4438.  
  4439.        The following is a list of all HYPERGEO interactive commands that
  4440.        can be entered from the keyboard while the program is displaying
  4441.        an active geometry:
  4442.  
  4443.  
  4444.  
  4445.  
  4446.        Keystroke:  A
  4447.  
  4448.        Use:        Selects the stereoscopic anaglyph mode of display.
  4449.  
  4450.                    If the program is operating with monochrome graphics,
  4451.                    the stereoscopic anaglyph display cannot be used; a
  4452.                    message window will appear indicating this, and the
  4453.                    current display mode will not be changed.
  4454.  
  4455.  
  4456.  
  4457.        Keystroke:  B
  4458.  
  4459.        Use:        Toggles on and off the color spectrum banding of 4-D
  4460.                    graphics according to the W-coordinate of the
  4461.                    corresponding vertexes and edges in the current
  4462.                    hyperobject.
  4463.  
  4464.                    The overall range of W-coordinate values is divided
  4465.                    into ten sub-divisions, and each is assigned a
  4466.                    different color from a pre-programmed spectrum of ten
  4467.                    colors.  These start with blue-violet for the minimum
  4468.                    W-coordinate, proceed through blue, aqua, cyan,
  4469.                    blue-green, green, olive-green, yellow, and orange
  4470.                    for progressively larger W values, and end with red
  4471.                    for the maximum W-coordinate.  Each edge - or
  4472.                    sub-segment of an edge - is displayed in the color
  4473.                    corresponding to the spectrum band of its
  4474.                    W-coordinate.
  4475.  
  4476.                    If the program is operating with monochrome graphics,
  4477.                    the color spectrum banding feature cannot be used.
  4478.  
  4479.  
  4480.            HYPERGEO    Version 2.1                             Page D-7
  4481.  
  4482.  
  4483.  
  4484.        Keystroke:  C
  4485.  
  4486.        Use:        Accepts a new color specification for drawing the
  4487.                    primary graphics.
  4488.  
  4489.                    For perspective and hidden-line display modes, this
  4490.                    will be the single EGA color used to draw the edge
  4491.                    outlines of the geometrical image being displayed.
  4492.                    (This same primary graphics color is also used for
  4493.                    the transient data value fields within the HYPERGEO
  4494.                    menu area and for text appearing in dialog box
  4495.                    windows.)  The command will display a list dialog box
  4496.                    offering a choice of one of the sixteen standard EGA
  4497.                    colors:
  4498.  
  4499.                        BLACK           DARKGRAY
  4500.                        BLUE            LIGHTBLUE
  4501.                        GREEN           LIGHTGREEN
  4502.                        CYAN            LIGHTCYAN
  4503.                        RED             LIGHTRED
  4504.                        MAGENTA         LIGHTMAGENTA
  4505.                        BROWN           YELLOW
  4506.                        LIGHTGRAY       WHITE
  4507.  
  4508.                    Note: The current background color cannot be selected
  4509.                    as the primary foreground color (for obvious
  4510.                    reasons); its entry will be disabled in the list
  4511.                    dialog box.
  4512.  
  4513.  
  4514.                    For solid display mode, if the system has VGA color
  4515.                    capability, the command will accept a new
  4516.                    specification for the twelve graduated shades of
  4517.                    color to be used for solid surface rendering.  If the
  4518.                    system has a mouse, a color selection dialog box will
  4519.                    appear which can be used to preview and choose the
  4520.                    precise shade desired.  Otherwise, a text dialog box
  4521.                    will prompt for a color specification in the form of
  4522.                    a red/green/blue number triple - three integers in
  4523.                    the range 0 to 63 which are the relative intensities
  4524.                    of the three primary components.  In either instance,
  4525.                    the color selected defines the lightest of the twelve
  4526.                    solid-fill shades; the program will calculate eleven
  4527.                    additional, darker shades from this to create the
  4528.                    full range required for realistic surface rendering.
  4529.  
  4530.                    This command is not applicable to the display modes
  4531.                    that use red/blue anaglyphs (i.e., stereoscopic and
  4532.                    surface relief) since they use colors that are fixed
  4533.                    by the requirements of the "3D" viewing glasses.
  4534.  
  4535.  
  4536.            HYPERGEO    Version 2.1                             Page D-8
  4537.  
  4538.  
  4539.  
  4540.        Keystroke:  D
  4541.  
  4542.        Use:        Accepts a new delta value that will be used to
  4543.                    increment (or decrement) the W-value of the
  4544.                    intersecting hyperplane.  This delta value is used by
  4545.                    the interactive command which performs a translation
  4546.                    of the intersecting hyperplane on geometries being
  4547.                    displayed via the 4-D intersection mode (see Page
  4548.                    Up/Page Down below).
  4549.  
  4550.                    The value entered is a positive floating-point
  4551.                    number.  It is in the units of the currently active
  4552.                    geometry.
  4553.  
  4554.  
  4555.  
  4556.        Keystroke:  E
  4557.  
  4558.        Use:        Accepts a new value for the eye-to-screen distance.
  4559.                    This parameter is used in the generation of all 3-D
  4560.                    to 2-D screen projections.  Decreasing the
  4561.                    eye-to-screen distance enhances the amount of
  4562.                    apparent perspective in the display.  For greatest
  4563.                    realism, the eye-to-screen distance should be set to
  4564.                    correspond to the true distance between the viewer's
  4565.                    eyes and the screen.
  4566.  
  4567.                    HYPERGEO automatically limits the maximum and minimum
  4568.                    values to which this parameter can be set.  This
  4569.                    prevents numeric errors from occurring during the
  4570.                    program's computations.
  4571.  
  4572.                    The value entered is a positive floating-point
  4573.                    number.  It is in inches.
  4574.  
  4575.  
  4576.  
  4577.        Keystroke:  F
  4578.  
  4579.        Use:        Accepts the name of a new geometry definition file.
  4580.                    A file selection dialog box appears which lists all
  4581.                    files with the default extension for binary geometry
  4582.                    files (.BIN) in the current directory.  The features
  4583.                    of the dialog box may be used to select valid (i.e.,
  4584.                    binary) geometry definition files in other
  4585.                    directories and with non-standard extensions.
  4586.  
  4587.                    Reading in a new geometry definition file completely
  4588.                    reinitializes HYPERGEO.  The current geometry's
  4589.                    database is freed, its display is cleared, and any
  4590.                    configuration information (either from the command
  4591.                    line or from a configuration file) is reapplied.
  4592.  
  4593.  
  4594.            HYPERGEO    Version 2.1                             Page D-9
  4595.  
  4596.  
  4597.  
  4598.        Keystroke:  G
  4599.  
  4600.        Use:        Cycles among the three variations of 4-D to 3-D
  4601.                    geometry reduction: intersection, projection, and
  4602.                    dual (simultaneous intersection and projection).
  4603.  
  4604.                    The case of the entered keystroke is significant.
  4605.                    Lower case 'g' cycles in the order
  4606.                    Intersection/Projection/Dual; upper case 'G' in the
  4607.                    order Dual/Projection/Intersection.
  4608.  
  4609.                    Because hidden-line, surface relief, and solid
  4610.                    displays cannot be used with 4-D to 3-D projections,
  4611.                    if one of those three modes is in effect when the
  4612.                    program switches from 4-D intersection to either 4-D
  4613.                    projection or to dual intersection/projection,
  4614.                    perspective display mode is automatically selected.
  4615.  
  4616.                    The G command is not applicable to three-dimensional
  4617.                    geometric objects.
  4618.  
  4619.  
  4620.  
  4621.        Keystroke:  H
  4622.  
  4623.        Use:        Selects hidden-line display mode.
  4624.  
  4625.                    If the current geometrical object is four-dimensional
  4626.                    and the 4-D to 3-D reduction mode is projection or
  4627.                    dual intersection/projection, the hidden-line display
  4628.                    cannot be used.
  4629.  
  4630.  
  4631.            HYPERGEO    Version 2.1                             Page D-10
  4632.  
  4633.  
  4634.  
  4635.        Keystroke:  I
  4636.  
  4637.        Use:        Displays the special HYPERGEO Information Window.
  4638.                    This window contains a summary of the current
  4639.                    object's topology, plus a number of related program
  4640.                    parameters.  For the topology, the window shows:
  4641.  
  4642.                        *   number of dimensions
  4643.                        *   number of vertex points
  4644.                        *   number of edges
  4645.                        *   number of faces
  4646.                        *   number of hyperfaces (4-D geometries only)
  4647.                        *   span (geometry units)
  4648.                        *   radius (geometry units)
  4649.  
  4650.                    The "span" of an object is calculated by finding the
  4651.                    minimum and maximum extents of the object in each of
  4652.                    its three or four dimensions; the span is the largest
  4653.                    difference between the minimum and maximum extents in
  4654.                    a single dimension.  The "radius" of an object is the
  4655.                    greatest distance in (hyper)space of any vertex point
  4656.                    from the origin.
  4657.  
  4658.                    Additional parameters shown are:
  4659.  
  4660.                        *   screen height and width (inches)
  4661.                        *   horizontal and vertical pixels per inch
  4662.                        *   free memory (bytes)
  4663.  
  4664.                    The HYPERGEO Information Window is an ordinary
  4665.                    message dialog box; it can be dismissed by selecting
  4666.                    the "Ok" button with the mouse (or by typing <Enter>
  4667.                    or <Esc>).
  4668.  
  4669.  
  4670.            HYPERGEO    Version 2.1                             Page D-11
  4671.  
  4672.  
  4673.  
  4674.        Keystroke:  J
  4675.  
  4676.        Use:        Replays a previously recorded journal file.  A file
  4677.                    selection dialog box appears which lists all files in
  4678.                    the current directory that have the default journal
  4679.                    file extension (.JNL).  The features of the dialog
  4680.                    box can be used to select for replay a journal file
  4681.                    in a different directory or with a non-standard
  4682.                    extension.
  4683.  
  4684.                    Once a journal file name has been selected and
  4685.                    confirmed, HYPERGEO enters the special journal replay
  4686.                    command mode.  This is described fully in Section
  4687.                    3.6.2 of this document.
  4688.  
  4689.  
  4690.  
  4691.        Keystroke:  K
  4692.  
  4693.        Use:        Toggles on and off the recording of a journal file.
  4694.  
  4695.                    A dialog box is used to accept the name of a new
  4696.                    journal file to record.  If a file already exists
  4697.                    with the specified name, a second dialog box appears
  4698.                    requesting approval to go ahead and overwrite it.
  4699.  
  4700.                    While a journal file is being recorded, a message is
  4701.                    displayed at the bottom of the display screen so
  4702.                    indicating.
  4703.  
  4704.  
  4705.            HYPERGEO    Version 2.1                             Page D-12
  4706.  
  4707.  
  4708.  
  4709.        Keystroke:  L
  4710.  
  4711.        Use:        Locates the geometrical model at a particular
  4712.                    orientation or position.
  4713.  
  4714.                    This command has two variations depending upon the
  4715.                    state of the user interface.
  4716.  
  4717.                    In the default state in which the interface presents
  4718.                    a full command set for performing rotations of the
  4719.                    geometry in space or hyperspace, the Locate command
  4720.                    accepts three (for 3-D) or four (for 4-D) angles
  4721.                    which specify the desired angular displacements of
  4722.                    the X, Y, Z, and W-coordinate axes from their initial
  4723.                    orientations.  Note that these are the same angular
  4724.                    displacements as are shown in the menu area under the
  4725.                    AXIS ANG label.  A text dialog box is used to accept
  4726.                    the angle values; they should be entered as three or
  4727.                    four positive real values in the range of 0 to 180
  4728.                    degrees.
  4729.  
  4730.                    (Note: Due to limitations of the algorithm used to
  4731.                    calculate the rotations necessary to achieve the
  4732.                    specified axis angles, for 4-D geometries one of the
  4733.                    four angles must be zero degrees.  This limitiation
  4734.                    does not exist for 3-D geometries.  Also, for both
  4735.                    3-D and 4-D not all combinations of angles represent
  4736.                    physically possible orientations.)
  4737.  
  4738.                    In the alternative state in which the user interface
  4739.                    permits the temporary translation of a selected 4-D
  4740.                    vertex, the Locate command accepts four real values
  4741.                    that are the X, Y, Z, and W-coordinate values in
  4742.                    geometry units of the desired position in 4-space of
  4743.                    the selected vertex.  This allows the vertex to be
  4744.                    located precisely at any valid coordinate within the
  4745.                    range of the command.  When the user interface is in
  4746.                    the vertex translation state and a vertex has been
  4747.                    selected, the coordinates are displayed in the menu
  4748.                    area under the VERTEX label.
  4749.  
  4750.                    (Note: In order to avoid numeric computation errors,
  4751.                    the program will not accept any coordinate value
  4752.                    which has an absolute value greater than 1.25 times
  4753.                    the radius of the current geometry.)
  4754.  
  4755.  
  4756.            HYPERGEO    Version 2.1                             Page D-13
  4757.  
  4758.  
  4759.  
  4760.        Keystroke:  M
  4761.  
  4762.        Use:        Toggles on and off the display of the HYPERGEO menu
  4763.                    area.
  4764.  
  4765.                    The menu area must be displayed to enable the use of
  4766.                    the mouse for command selection.
  4767.  
  4768.  
  4769.  
  4770.        Keystroke:  N
  4771.  
  4772.        Use:        Toggles on and off the display of the name of the
  4773.                    current geometry definition file.
  4774.  
  4775.                    When its display is toggled on, the geometry file
  4776.                    name is shown in the upper-left of the main graphics
  4777.                    area.
  4778.  
  4779.  
  4780.  
  4781.        Keystroke:  O
  4782.  
  4783.        Use:        Outputs the current image of the entire screen into a
  4784.                    file in PCX graphics format.  A dialog box prompts
  4785.                    for the file name.  If a file already exists with the
  4786.                    specified name, a second dialog appears requesting
  4787.                    approval to go ahead and overwrite it.
  4788.  
  4789.  
  4790.  
  4791.        Keystroke:  P
  4792.  
  4793.        Use:        Selects perspective display mode.
  4794.  
  4795.  
  4796.  
  4797.        Keystroke:  Q
  4798.  
  4799.        Use:        Quits the HYPERGEO program and returns to DOS.
  4800.  
  4801.  
  4802.  
  4803.        Keystroke:  R
  4804.  
  4805.        Use:        Selects surface relief display mode.
  4806.  
  4807.                    If the current geometrical object is four-dimensional
  4808.                    and the 4-D to 3-D reduction mode is projection or
  4809.                    dual intersection/projection, the surface relief
  4810.                    display mode cannot be used.
  4811.  
  4812.  
  4813.            HYPERGEO    Version 2.1                             Page D-14
  4814.  
  4815.  
  4816.  
  4817.        Keystroke:  S
  4818.  
  4819.        Use:        Selects solid display mode.
  4820.  
  4821.                    If the current geometrical object is four-dimensional
  4822.                    and the 4-D to 3-D reduction mode is projection or
  4823.                    dual intersection/projection, the solid display mode
  4824.                    cannot be used.
  4825.  
  4826.  
  4827.  
  4828.        Keystroke:  T
  4829.  
  4830.        Use:        Accepts a new value for the turn angle.  The turn
  4831.                    angle is the basic incremental angle used by each of
  4832.                    the rotation commands.  A large turn angle is useful
  4833.                    for rapid manipulation of the geometrical object
  4834.                    under study.  Smaller angles can be used for fine
  4835.                    positioning.
  4836.  
  4837.                    The value entered is a positive floating-point
  4838.                    number.  Its units are degrees.
  4839.  
  4840.  
  4841.  
  4842.        Keystroke:  U
  4843.  
  4844.        Use:        Toggles between the two states of the user interface.
  4845.                    In the default state, the user interface presents a
  4846.                    full set of commands for performing rotations of the
  4847.                    geometry in three and four dimensions.
  4848.  
  4849.                    In the alternative state, a particular vertex may be
  4850.                    selected in a 4-D geometry and may be temporarily
  4851.                    repositioned in hyperspace.  In this state, the 4-D
  4852.                    rotation commands in the menu are replaced by the
  4853.                    commands for performing vertex translation.
  4854.  
  4855.  
  4856.  
  4857.        Keystroke:  V
  4858.  
  4859.        Use:        Toggles on and off the display of the unit axis
  4860.                    vectors.
  4861.  
  4862.                    Regardless of the setting of this toggle, the unit
  4863.                    axis vectors are not displayed with hidden-line,
  4864.                    surface relief, or solid display mode.
  4865.  
  4866.  
  4867.            HYPERGEO    Version 2.1                             Page D-15
  4868.  
  4869.  
  4870.  
  4871.        Keystroke:  W
  4872.  
  4873.        Use:        The function of this command depends on whether the
  4874.                    current 4-D image is an intersection or a projection.
  4875.  
  4876.                    For 4-D to 3-D intersection images, it accepts a new
  4877.                    value for the W-coordinate of the hyperplane used to
  4878.                    calculate the intersection.  Repositioning the
  4879.                    intersecting hyperplane at various W-coordinate
  4880.                    values provides a means for examining the
  4881.                    hypergeometrical structure of the current object.
  4882.  
  4883.                    For 4-D to 3-D projection images, the 'W' keystroke
  4884.                    accepts a new value for the W-coordinate of the
  4885.                    theoretical viewpoint used to calculate the
  4886.                    projection.  The viewpoint is always located on the
  4887.                    positive W-axis; changing its distance from the
  4888.                    hyperobject's origin adjusts the degree of
  4889.                    perspective visible in the projection.
  4890.  
  4891.                    For both usages of the command the value entered is a
  4892.                    floating-point number in geometry units.
  4893.  
  4894.                    Note: In the dual imaging mode in which an
  4895.                    intersection and a projection both are displayed at
  4896.                    the same time, the 'W' command affects the
  4897.                    intersecting hyperplane, not the projection
  4898.                    viewpoint; thus, it has no effect on the appearance
  4899.                    of the projection image.
  4900.  
  4901.  
  4902.            HYPERGEO    Version 2.1                             Page D-16
  4903.  
  4904.  
  4905.  
  4906.        Keystroke:  X
  4907.                    Y
  4908.                    Z
  4909.  
  4910.        Use:        Executes a three-dimensional rotation of the current
  4911.                    3-D image about the particular axis: X, Y, or Z.  The
  4912.                    size of the rotation is determined by the current
  4913.                    turn angle.
  4914.  
  4915.                    When the active geometry is four-dimensional, all 3-D
  4916.                    rotations are transient and operate only on the
  4917.                    immediate 3-D image which has been derived from the
  4918.                    hyperobject's geometry via a 4-D to 3-D reduction
  4919.                    using either projection or intersection.  In this
  4920.                    case, the program does not update the display of the
  4921.                    unit axis vectors or the values shown in the menu's
  4922.                    axis angle data fields during 3-D rotations.
  4923.  
  4924.                    For three-dimensional geometries, however, 3-D
  4925.                    rotations are permanent; the internal database is
  4926.                    modified accordingly, and the unit axis vectors and
  4927.                    the displayed values for the axis angles are updated
  4928.                    with each 3-D rotation.
  4929.  
  4930.                    By themselves, the X, Y, and Z keys produce a single
  4931.                    incremental rotation in the positive direction.  This
  4932.                    effect can be altered by combining the keystroke with
  4933.                    the simultaneous pressing of one of the standard
  4934.                    keyboard modifier keys (for example, Shift-X is
  4935.                    entered by pressing and holding down the Shift key,
  4936.                    then pressing X):
  4937.  
  4938.                        Shift - Reverses the direction of the rotation
  4939.  
  4940.                        Ctrl  - Automates continuous rotations in the
  4941.                                positive direction.  The rotations are
  4942.                                performed as fast as the system's
  4943.                                processing speed will allow.  To stop the
  4944.                                animation, press any key.
  4945.  
  4946.                        Alt   - Automates continuous rotations in the
  4947.                                negative direction.  The rotations are
  4948.                                performed as fast as the system's
  4949.                                processing speed will allow.  To stop the
  4950.                                animation, press any key.
  4951.  
  4952.  
  4953.            HYPERGEO    Version 2.1                             Page D-17
  4954.  
  4955.  
  4956.  
  4957.        Keystroke:  F1
  4958.  
  4959.        Use:        Displays the main on-line help screen.  This screen
  4960.                    contains an overview of the HYPERGEO program and a
  4961.                    menu listing additional help pages that are organized
  4962.                    by command categories.  Each contains a brief
  4963.                    description of a set of interactive commands
  4964.                    available within the HYPERGEO program that perform
  4965.                    related functions.
  4966.  
  4967.                    The on-line help facility is described more fully in
  4968.                    Section 3.2.2 of this document.
  4969.  
  4970.                    The on-line help screen can be dismissed by typing
  4971.                    <Esc>.  This returns the program to the graphics
  4972.                    state it was in prior to the F1 command.
  4973.  
  4974.  
  4975.  
  4976.        Keystroke:  F2
  4977.  
  4978.        Use:        Pauses the HYPERGEO program and brings up a temporary
  4979.                    DOS command screen.  This permits the user to execute
  4980.                    DOS commands without completely exiting HYPERGEO.
  4981.                    Typing EXIT at the DOS prompt closes the DOS screen
  4982.                    and returns to HYPERGEO; the program's status is
  4983.                    restored to that existing prior to executing the F2
  4984.                    command.
  4985.  
  4986.                    A temporary DOS command screen which is invoked from
  4987.                    within a running program like this is commonly
  4988.                    referred to as a "DOS shell".
  4989.  
  4990.                    Note: While the temporary DOS command screen is
  4991.                    active, the HYPERGEO program is still occupying its
  4992.                    share of the computer's memory.  Since this leaves
  4993.                    considerably less free memory than is normally
  4994.                    available, some DOS commands may be unable to run in
  4995.                    the F2 DOS shell.
  4996.  
  4997.  
  4998.  
  4999.        Keystroke:  F3
  5000.                    F4
  5001.  
  5002.        Use:        Performs continuous automated random rotations.  The
  5003.                    keystroke F3 initiates the continuous execution of
  5004.                    the three 3-D rotations in a randomly determined
  5005.                    order, and F4 initiates random execution of the six
  5006.                    4-D rotations.  All rotations are in a positive
  5007.                    angular direction with a size determined by the
  5008.                    current turn angle.  To stop the automation, press
  5009.                    any key.
  5010.  
  5011.  
  5012.            HYPERGEO    Version 2.1                             Page D-18
  5013.  
  5014.  
  5015.  
  5016.        Keystroke:  F5
  5017.                    F6
  5018.                    F7
  5019.                    F8
  5020.                    F9
  5021.                    F10
  5022.  
  5023.        Use:        Executes a four-dimensional rotation of the current
  5024.                    hyperobject's geometry in hyperspace.  The six
  5025.                    function keys F5 through F10 correspond to the six
  5026.                    possible coordinate planes in which a 4-D rotation
  5027.                    may occur:
  5028.  
  5029.                        F5  -   YZ plane
  5030.                        F6  -   XW plane
  5031.                        F7  -   XZ plane
  5032.                        F8  -   YW plane
  5033.                        F9  -   XY plane
  5034.                        F10 -   ZW plane
  5035.  
  5036.                    The size of the rotation is determined by the curent
  5037.                    turn angle.
  5038.  
  5039.                    After each 4-D rotation, the hyperobject's geometry
  5040.                    is reduced to a 3-D image using the currently active
  5041.                    method (intersection or projection), and the 3-D
  5042.                    image is converted into a 2-D display on the
  5043.                    computer's screen using the currently active display
  5044.                    mode (perspective, stereoscopic anaglyph,
  5045.                    hidden-line, surface relief, or solid).
  5046.  
  5047.                    By themselves, the F5 through F10 keys produce a
  5048.                    single incremental rotation in the positive
  5049.                    direction.  This effect can be altered by combining
  5050.                    the keystroke with the simultaneous pressing of one
  5051.                    of the standard keyboard modifier keys (for example,
  5052.                    Shift-F5 is entered by pressing and holding down the
  5053.                    Shift key, then pressing F5):
  5054.  
  5055.                        Shift - Reverses the direction of the rotation
  5056.  
  5057.                        Ctrl  - Automates continuous rotations in the
  5058.                                positive direction.  The rotations are
  5059.                                performed as fast as the system's
  5060.                                processing speed will allow.  To stop the
  5061.                                animation, press any key.
  5062.  
  5063.                        Alt   - Automates continuous rotations in the
  5064.                                negative direction.  The rotations are
  5065.                                performed as fast as the system's
  5066.                                processing speed will allow.  To stop the
  5067.                                animation, press any key.
  5068.  
  5069.  
  5070.            HYPERGEO    Version 2.1                             Page D-19
  5071.  
  5072.  
  5073.  
  5074.        Keystroke:  1
  5075.                    2
  5076.                    3
  5077.                    4
  5078.                    5
  5079.                    6
  5080.                    Alt-1
  5081.                    Alt-2
  5082.                    Alt-3
  5083.                    Alt-4
  5084.                    Alt-5
  5085.                    Alt-6
  5086.  
  5087.                    Note: Only the commands '1', '2', and '3' are
  5088.                    available for 3-D geometries.
  5089.  
  5090.        Use:        Rotates the object to one of the possible distinct
  5091.                    orthogonal orientations.  An "orthogonal orientation"
  5092.                    is one in which all coordinate axes have been rotated
  5093.                    an exact multiple of 90 degrees from their original
  5094.                    positions.
  5095.  
  5096.                    The orientations generated by these commands all have
  5097.                    the property that a set of three of the axes are
  5098.                    positioned coincident with the original positions of
  5099.                    the X, Y, and Z axes.  This means that the three axes
  5100.                    form a normal "left-handed" 3-D coordinate system,
  5101.                    that is, one in which the positive Z-axis is directed
  5102.                    away from the viewer (into the screen) when the
  5103.                    positive X-axis points to the right and the positive
  5104.                    Y-axis points up.  For 3-D geometries there are three
  5105.                    such orthogonal orientations, and for 4-D there are
  5106.                    twelve.
  5107.  
  5108.                    For 4-D objects the fourth coordinate axis is rotated
  5109.                    into the position of the original W-axis.  This is
  5110.                    the coordinate axis along which the intersecting
  5111.                    hyperplane and the projection viewpoint are
  5112.                    positioned for 4-D to 3-D image reduction.
  5113.  
  5114.                    The orientations can be identified by specifying
  5115.                    which axes are rotated into each of the original
  5116.                    unrotated axis positions.  For example, the
  5117.                    orientation designated YZXW has the Y-axis positioned
  5118.                    along the original X-axis, the Z-axis along the
  5119.                    original Y-axis, the X-axis along the original
  5120.                    Z-axis, and the W-axis still in its original
  5121.                    unrotated direction.
  5122.  
  5123.  
  5124.            HYPERGEO    Version 2.1                             Page D-20
  5125.  
  5126.  
  5127.  
  5128.                    The twelve commands generate the following
  5129.                    orientations:
  5130.  
  5131.                                                Orientation
  5132.                        Keystroke           3-D             4-D
  5133.                        ---------           -------------------
  5134.                            1               XYZ            XYZW
  5135.                            2               YZX            YZXW
  5136.                            3               ZXY            ZXYW
  5137.                            4                              YWZX
  5138.                            5                              XWYZ
  5139.                            6                              ZWXY
  5140.                          Alt-1                            YXWZ
  5141.                          Alt-2                            ZYWX
  5142.                          Alt-3                            XZWY
  5143.                          Alt-4                            WYXZ
  5144.                          Alt-5                            WXZY
  5145.                          Alt-6                            WZYX
  5146.  
  5147.                    Notice that the Alt-modified version of each 4-D
  5148.                    command differs from the unmodified numeric key
  5149.                    version by having the same two axes form the rotated
  5150.                    XY-plane (but in reversed order) and the same two
  5151.                    axes form the ZW-plane (but also in reverse order).
  5152.                    Compare, for example, the rotation produced by the
  5153.                    '6' command (ZWXY) with that of the Alt-6 command
  5154.                    (WZYX); the pairs ZW/WZ and XY/YX are reversed
  5155.                    between the two.
  5156.  
  5157.                    Note: The orientation produced by the '1' command
  5158.                    (XYZ for 3-D or XYZW for 4-D) is the unrotated
  5159.                    orientation of the original geometry.  This is the
  5160.                    same as the orientation generated by the Home
  5161.                    command.  However, unlike the Home command, the '1'
  5162.                    command does not save the current orientation for
  5163.                    restoring with the End command.
  5164.  
  5165.                    Note: Use the numeric keys on the top row of the
  5166.                    regular keyboard for these commands, not the keypad
  5167.                    numeric keys.
  5168.  
  5169.  
  5170.  
  5171.        Keystroke:  0
  5172.  
  5173.        Use:        Positions the display of the graphical image on the
  5174.                    screen so that the point corresponding to the origin
  5175.                    of the geometrical model is at the center of the main
  5176.                    display area.
  5177.  
  5178.                    The '5' key in the keypad (on keyboards with keypads
  5179.                    and with NumLock off) also performs this function.
  5180.  
  5181.  
  5182.            HYPERGEO    Version 2.1                             Page D-21
  5183.  
  5184.  
  5185.  
  5186.        Keystroke:  Home
  5187.  
  5188.        Use:        Restores the orientation of the current geometry as
  5189.                    it existed when the geometry definition file was
  5190.                    first read in.  All axis angles are reset to zero
  5191.                    degrees.
  5192.  
  5193.                    The current orientation is saved and may be returned
  5194.                    to by using the End command (see below).
  5195.  
  5196.  
  5197.  
  5198.        Keystroke:  End
  5199.  
  5200.        Use:        Restores the current geometry to the orientation it
  5201.                    was in prior to the most recent Home command (see
  5202.                    above).
  5203.  
  5204.                    If no Home command has yet been performed on the
  5205.                    current geometry, the End command has no effect.
  5206.  
  5207.  
  5208.  
  5209.        Keystroke:  =
  5210.  
  5211.        Use:        Accepts a new value for the current display scale
  5212.                    factor.  A larger scale factor increases the size of
  5213.                    the image on the screen, while a smaller scale factor
  5214.                    decreases it.
  5215.  
  5216.                    The value entered is a positive floating-point
  5217.                    number.  Its units are screen inches per geometry
  5218.                    unit.
  5219.  
  5220.  
  5221.  
  5222.        Keystroke:  +
  5223.                    -
  5224.  
  5225.        Use:        Performs a "zoom" operation on the visible image.
  5226.                    The '+' command enlarges the graphical display, and
  5227.                    the '-' command reduces it.
  5228.  
  5229.                    These commands operate by changing the display scale
  5230.                    factor.  The '+' command increases the scale factor
  5231.                    by 10% of its current value, and the '-' command
  5232.                    decreases it by 10%.
  5233.  
  5234.  
  5235.            HYPERGEO    Version 2.1                             Page D-22
  5236.  
  5237.  
  5238.  
  5239.        Keystroke:  Tab
  5240.  
  5241.        Use:        Toggles on and off the highlighting of all edge lines
  5242.                    in the displayed image that belong to a particular
  5243.                    hyperface in the original 4-D geometry.  The <Space>
  5244.                    bar and <Backspace> key are used to select which
  5245.                    hyperface is highlighted (see below).
  5246.  
  5247.                    For 4-D to 3-D projection images, the highlighted
  5248.                    edges correspond exactly to edges in the original
  5249.                    hyperobject (they are in fact projections onto
  5250.                    3-space of those edges).
  5251.  
  5252.                    For 4-D to 3-D intersection images, the highlighted
  5253.                    edges form the outline of the polygonal face that is
  5254.                    the intersection of the highlighted hyperface with
  5255.                    the intersecting hyperplane.  For a given orientation
  5256.                    of the hyperobject and position of the intersecting
  5257.                    hyperplane it is possible that the highlighted
  5258.                    hyperface will not be intersected; when that is the
  5259.                    case, no highlighting will show up in the 3-D image
  5260.                    even when highlighting is toggled on.
  5261.  
  5262.                    Hyperface highlighting may be used with dual
  5263.                    intersection/projection images; the highlighting will
  5264.                    appear in both images.  In fact, this can be a very
  5265.                    revealing technique for visualizing the relation
  5266.                    between 4-D projection and intersection images.
  5267.  
  5268.                    Note: Hyperface highlighting does not appear if an
  5269.                    intersection image is drawn in hidden-line, surface
  5270.                    relief, or solid display mode.
  5271.  
  5272.  
  5273.  
  5274.        Keystroke:  Space
  5275.                    Backspace
  5276.  
  5277.        Use:        Cycles through all hyperfaces in a 4-D hyperobject
  5278.                    for highlighting (see <tab> command above).  The
  5279.                    <Space> bar cycles in a forward direction (per an
  5280.                    arbitrary ordering), and the <Backspace> key cycles
  5281.                    in the reverse direction.
  5282.  
  5283.                    If hyperface highlighting is toggled on, the results
  5284.                    of stepping forward or back to a different hyperface
  5285.                    are immediately reflected in the display.  If
  5286.                    highlighting is toggled off, there is no change in
  5287.                    the current display, but the hyperface cycling is
  5288.                    still performed; the next time highlighting is
  5289.                    toggled on, the newly selected hyperface will be the
  5290.                    one highlighted.
  5291.  
  5292.  
  5293.            HYPERGEO    Version 2.1                             Page D-23
  5294.  
  5295.  
  5296.  
  5297.        Keystroke:  Insert
  5298.                    Delete
  5299.                    Ctrl-Insert
  5300.                    Ctrl-Delete
  5301.  
  5302.        Use:        Alters the degree of perceived 3-D perspective for
  5303.                    the currently displayed image.  These commands
  5304.                    operate by modifying the eye-to-screen distance.  The
  5305.                    Insert command increases the eye-to-screen distance
  5306.                    by 10% of its current value; this reduces the
  5307.                    apparent perspective.  The Delete command increases
  5308.                    the perspective effect; it moves the viewpoint toward
  5309.                    the object by decreasing the eye-to-screen distance
  5310.                    by 10%.
  5311.  
  5312.                    HYPERGEO automatically limits the maximum and minimum
  5313.                    values to which the eye-to-screen distance can be
  5314.                    set.  This prevents numeric errors from occurring in
  5315.                    the program's computations.
  5316.  
  5317.                    When combined with the Ctrl key, Insert and Delete
  5318.                    serve to set the eye-to-screen distance to its
  5319.                    maximum or minimum permissable value respectively.
  5320.                    The maximum eye-to-screen distance is useful in
  5321.                    particular to approximate a pure orthographic
  5322.                    projection.
  5323.  
  5324.  
  5325.  
  5326.        Keystroke:  Page Up
  5327.                    Page Down
  5328.                    Ctrl-Page Up
  5329.                    Ctrl-Page Down
  5330.  
  5331.        Use:        The function of the Page Up and Page Down commands
  5332.                    depends on whether the current image is a 4-D
  5333.                    projection or intersection.
  5334.  
  5335.                    For a 4-D to 3-D intersection image, the command
  5336.                    performs a translation of the intersecting
  5337.                    hyperplane.  The hyperplane is moved along the W-axis
  5338.                    in hyperspace.  The size of the translation is
  5339.                    determined by the value of the delta-W parameter.
  5340.                    The Page Up command increments the W coordinate of
  5341.                    the intersecting hyperplane by this delta amount, and
  5342.                    the Page Down command decrements it.
  5343.  
  5344.  
  5345.            HYPERGEO    Version 2.1                             Page D-24
  5346.  
  5347.  
  5348.                    For 4-D to 3-D projection images, Page Up and Page
  5349.                    Down adjust the W-coordinate of the viewpoint used to
  5350.                    calculate the projection.  The Page Up command
  5351.                    increases the distance of the viewpoint from the
  5352.                    hyperobject's origin by 10% of its current value;
  5353.                    this reduces the amount of perspective seen in the
  5354.                    image.  Page Down decreases the distance of the
  5355.                    viewpoint from the origin, enhancing the apparent
  5356.                    perspective.
  5357.  
  5358.                    By themselves, the Page Up and Page Down commands
  5359.                    perform a single incremental action, adjusting up or
  5360.                    down the W-coordinate value of either the
  5361.                    intersecting hyperplane or the projection viewpoint.
  5362.  
  5363.                    When combined with the simultaneous pressing of the
  5364.                    Ctrl key (for example, to enter Ctrl-Page Up, first
  5365.                    press and hold down the Ctrl key, then press Page
  5366.                    Up), these keystrokes perform an enhanced variation
  5367.                    of their basic function.
  5368.  
  5369.                    For 4-D to 3-D intersections, they initiate the
  5370.                    continuously automated motion of the hyperplane
  5371.                    through the body of the current four-dimensional
  5372.                    geometry.  In automated mode, the direction of the
  5373.                    hyperplane's motion is reversed each time it reaches
  5374.                    an extreme edge of the hyperobject, that is, the
  5375.                    point at which it ceases to intersect the hyperobject
  5376.                    in hyperspace.  Thus, the hyperplane continues to
  5377.                    move back and forth through the entire body of the
  5378.                    hyperobject.  The automated motion is stopped by
  5379.                    pressing any key.
  5380.  
  5381.                    For 4-D to 3-D projections, Ctrl-Page Up and
  5382.                    Ctrl-Page Down set the W-coordinate of the projection
  5383.                    viewpoint to its maximum and minimum permissable
  5384.                    values respectively.  When the distance of the
  5385.                    projection viewpoint from the origin is maximized,
  5386.                    the generated 3-D image approximates a pure
  5387.                    orthographic projection.  Minimizing the viewpoint's
  5388.                    distance creates a 3-D image with a high degree of
  5389.                    perceived perspective.
  5390.  
  5391.                    When HYPERGEO is displaying dual images of an
  5392.                    intersection and a projection together, the Page Up
  5393.                    and Page Down commands perform their functions for
  5394.                    the intersection image only.  That is, they affect
  5395.                    the intersecting hyperplane (and hence the
  5396.                    intersection image), and do not affect the projection
  5397.                    viewpoint (or the projection image).
  5398.  
  5399.  
  5400.            HYPERGEO    Version 2.1                             Page D-25
  5401.  
  5402.  
  5403.  
  5404.        Keystroke:  Arrow Keys: Left, Right, Up, Down
  5405.  
  5406.        Use:        The function of these keys depends on the state of
  5407.                    the user interface.
  5408.  
  5409.  
  5410.                    In the default user interface state for performing
  5411.                    rotations of the geometry, these keys move the
  5412.                    position of the current graphical display on the
  5413.                    screen.
  5414.  
  5415.                    When a new geometry is read in, HYPERGEO
  5416.                    automatically centers the display within the primary
  5417.                    graphics area.  The arrow keys may be used to
  5418.                    reposition it as required by subsequent rotations or
  5419.                    other interactive manipulations.
  5420.  
  5421.  
  5422.                    When the user interface is in its alternative state
  5423.                    which permits the temporary translation of a
  5424.                    particular 4-D vertex, the arrow keys are used to
  5425.                    move a selected vertex in each of the four 4-D
  5426.                    coordinate directions:
  5427.  
  5428.                        Right arrow  -  Moves vertex in X direction
  5429.                        Up arrow     -  Moves vertex in Y direction
  5430.                        Left arrow   -  Moves vertex in Z direction
  5431.                        Down arrow   -  Moves vertex in W direction
  5432.  
  5433.                    By itself, each arrow key moves the vertex in the
  5434.                    positive direction, i.e., increasing the particular
  5435.                    coordinate.  Combining the arrow key with the <Shift>
  5436.                    key reverses the direction of movement; the
  5437.                    coordinate value is decreased.  (Note: Since the
  5438.                    <Shift> key does not work consistently with the arrow
  5439.                    keys on all keyboards, the <Ctrl> key may also may be
  5440.                    used with the arrow keys to reverse the direction of
  5441.                    vertex translation.)
  5442.  
  5443.  
  5444.            HYPERGEO    Version 2.1                             Page E-1
  5445.  
  5446.  
  5447.  
  5448.  
  5449.        Appendix E.    Running HYPERGEO under Microsoft Windows
  5450.  
  5451.  
  5452.        The program file supplied with HYPERGEO (HYPERGEO.EXE) is a
  5453.        standard DOS executable; it is not a special Windows program.
  5454.        However, it can be run under Windows using that system's ability
  5455.        to execute non-Windows DOS programs.  Two files are supplied with
  5456.        HYPERGEO to assist in adding the program to the Windows Program
  5457.        Manager: an icon file (HYPERGEO.ICO), and a Program Information
  5458.        File (HYPERGEO.PIF).
  5459.  
  5460.        The procedure to follow to add a new program to a particular
  5461.        program group within the Program Manager is described in the
  5462.        Windows User's Guide in the section "Creating a Program Item" in
  5463.        the Program Manager chapter (page 78 for Windows 3.1).  Within
  5464.        the Program Item Properties dialog box that appears, the name of
  5465.        the HYPERGEO PIF file (including its DOS path) should be entered
  5466.        in the Command Line text box.  You should also supply the name of
  5467.        the icon file by choosing the "Change Icon..." option from the
  5468.        Program Item Properties dialog box.  Enter the icon file name
  5469.        (HYPERGEO.ICO) along with its full DOS path in the File Name text
  5470.        box within the Select Icon dialog box.
  5471.  
  5472.        One final step may be necessary to enable the running of HYPERGEO
  5473.        in Windows.  The supplied PIF file has an entry which specifies
  5474.        the program's start-up directory.  This initially contains the
  5475.        path specification C:\HYPERGEO.  If you have installed HYPERGEO
  5476.        in a different directory, you will have to change this entry in
  5477.        the PIF to reflect the actual directory in which the program
  5478.        executable HYPERGEO.EXE exists.  To modify a PIF you use the
  5479.        Windows PIF Editor.  This is described fully in the Section
  5480.        "Working with PIFs and the PIF Editor" (page 259 for Windows 3.1)
  5481.        and subsequent sections in the chapter "PIF Editor" in the
  5482.        Windows User's Guide.
  5483.  
  5484.        The PIF Editor also lets you specify any optional command line
  5485.        parameters you wish to pass to HYPERGEO each time it is executed.
  5486.  
  5487.        The PIF file as supplied will cause HYPERGEO to run as a
  5488.        full-screen DOS program.
  5489.  
  5490.  
  5491.            HYPERGEO    Version 2.1                             Page F-1
  5492.  
  5493.  
  5494.  
  5495.        Appendix F.    What's New in Version 2
  5496.  
  5497.  
  5498.        Version 2 represents a major revision of the HYPERGEO program.
  5499.        Much of the program has been completely rewritten in an effort to
  5500.        achieve faster and more robust performance.  In addition, many
  5501.        new features and enhancements to existing features have been
  5502.        implemented.
  5503.  
  5504.        First, a word or two about a couple of areas in which some
  5505.        functionality has apparently been lost from Version 1.  Most
  5506.        notable is the fact that the program no longer supports high
  5507.        resolution (640 by 480 pixels) on VGA displays; EGA and VGA both
  5508.        use the same standard 640 by 350 resolution.  This was done to
  5509.        make the VGA's video memory available for video page swapping
  5510.        (see below).  It was felt that the benefits of video paging
  5511.        outweigh the usefulness of the higher screen resolution
  5512.        (unfortunately, you can't have both).
  5513.  
  5514.        Also, the Orthographic display mode no longer exists.
  5515.        Orthographic projections are in general the least revealing form
  5516.        of perspective projection.  An orthographic projection can be
  5517.        approximated in HYPERGEO Version 2 by setting the eye-to-screen
  5518.        parameter to its maximum permissable value (the new Ctrl-Insert
  5519.        command does this).
  5520.  
  5521.        The DELTA-W parameter is gone from the menu area.  This was done
  5522.        to make room for the new W-PROJ parameter (see below).  The
  5523.        delta-W value can still be specified in the configuration file
  5524.        (the DELTA_W parameter), and can still be set interactively with
  5525.        the 'D' command.
  5526.  
  5527.        And lastly, the configuration file parameters COLOR_MESSAGE_TEXT
  5528.        and RATIO no longer exist.  The primary foreground graphics color
  5529.        is now used for most text in all message windows (dialog boxes).
  5530.        The RATIO parameter has been replaced by the SCALE parameter
  5531.        which has a different meaning mathematically (see below).
  5532.  
  5533.        The assignment of some command keystrokes has changed.  The 4-D
  5534.        rotation commands have been moved from function keys F1 through
  5535.        F6 to use keys F5 through F10.  This frees up F1 for on-line help
  5536.        and F2 for the new DOS shell feature.  The random 3-D and 4-D
  5537.        rotation commands have also been reassigned; they now use F3 and
  5538.        F4 (instead of '3' and '4').
  5539.  
  5540.  
  5541.            HYPERGEO    Version 2.1                             Page F-2
  5542.  
  5543.  
  5544.  
  5545.        The following is a list of new features and enhancements
  5546.        incorporated in HYPERGEO Version 2:
  5547.  
  5548.  
  5549.            *   Most computations are now performed using a fixed-point
  5550.                data format that makes use of integer arithmetic.  This
  5551.                provides fast execution even on systems without a math
  5552.                coprocessor chip (such as an 80287 or 80387).  The new
  5553.                fixed-point computations are most efficient on 80386 (or
  5554.                80486) CPUs which can perform 32-bit integer arithmetic.
  5555.                However, even on 80286 (or lower) systems, the
  5556.                performance of the program in the absence of a
  5557.                coprocessor has been speeded up markedly.
  5558.  
  5559.            *   The hidden-line algorithm has been totally reprogrammed
  5560.                for faster execution.  It now performs a preliminary
  5561.                decomposition of complex, concave objects into a set of
  5562.                disjoint convex shapes.  These are sorted along the
  5563.                Z-coordinate and are displayed using the so-called
  5564.                "painter's algorithm".
  5565.  
  5566.            *   Graphics are now drawn to two video pages which are
  5567.                swapped between screen updates.  This produces much
  5568.                smoother graphics animation without the annoying
  5569.                "flicker" that is visible when drawing to a single video
  5570.                page.  (Note that this necessitates abandoning 640 by 480
  5571.                resolution for VGA as mentioned above.)
  5572.  
  5573.            *   The portion of the program that performs the topological
  5574.                analysis of a new geometry definition file has been
  5575.                broken out into a separate stand-alone utility program,
  5576.                GEO2BIN.  It is now only necessary to perform this
  5577.                analysis once each time a geometry file is created or
  5578.                modified rather than every time it is read into HYPERGEO.
  5579.                GEO2BIN stores its results in a secondary version of the
  5580.                geometry file that is in a binary format and can be read
  5581.                by HYPERGEO much more efficiently.  For large and complex
  5582.                geometries, the time required to create a display in
  5583.                HYPERGEO has been reduced from minutes to seconds.
  5584.  
  5585.            *   The user interface has been improved to allow additional
  5586.                mouse invocation of interactive commands and to use
  5587.                mouse-operated dialog boxes to prompt for and accept
  5588.                input from the user.
  5589.  
  5590.            *   Within a 4-D image, those edges that belong to a single
  5591.                hyperface in the original geometry can be highlighted.
  5592.                Highlighted edges are displayed in a distinct color which
  5593.                can be specified using the new COLOR_HILITE configuration
  5594.                parameter.
  5595.  
  5596.  
  5597.            HYPERGEO    Version 2.1                             Page F-3
  5598.  
  5599.  
  5600.  
  5601.            *   For 4-D images, all edges may be drawn using a color
  5602.                spectrum that maps segments of edge lines to a color that
  5603.                indicates their W-coordinate value in the original
  5604.                hyperobject.
  5605.  
  5606.            *   A new dual imaging mode for 4-D to 3-D reductions
  5607.                displays both a projection and an intersection together
  5608.                side by side on the screen.  When the dual mode is
  5609.                entered, HYPERGEO automatically rescales the display so
  5610.                the two images fit in the available area.  All
  5611.                interactive commands affect both images simultaneously.
  5612.                The new DUAL parameter can be used in a HYPERGEO
  5613.                configuration file to select this imaging mode.
  5614.  
  5615.            *   The user can change the position of the theoretical
  5616.                viewpoint used to calculate 4-D to 3-D projection images.
  5617.                This permits varying the amount of apparent perspective
  5618.                in the images from virtually none (equivalent to
  5619.                orthographic projection) to quite a lot.  The 4-D
  5620.                projection viewpoint's position is controlled by the
  5621.                configuration parameter W_PROJECT plus several
  5622.                interactive commands, and is displayed in the menu area
  5623.                under the label W-PROJ.
  5624.  
  5625.            *   A journalling capability permits capturing all graphics
  5626.                from a sequence of interactive manipulations of a
  5627.                geometrical model into a permanent file.  A recorded
  5628.                journal file can be replayed in either forward or reverse
  5629.                order, and any particular frame of the journal may be
  5630.                viewed individually.
  5631.  
  5632.            *   The current geometry can be positioned directly to any
  5633.                one of the set of distinct possible orthogonal
  5634.                orientations.  These provide views that are perpendicular
  5635.                to one of the planes formed by a pair of coordinate axes.
  5636.                All twelve of the orthogonal orientations that are
  5637.                available for 4-D geometries can be generated, each via
  5638.                its own single-keystroke command.
  5639.  
  5640.            *   A new "surface relief" display mode combines the features
  5641.                of hidden-line and stereoscopic display modes.  A
  5642.                hidden-line display is shown using a red/blue anaglyph;
  5643.                with "3D" glasses the user views the front surface of the
  5644.                object with full depth perception of its relief.
  5645.  
  5646.            *   A special state of the user interface can be entered
  5647.                which presents commands for temporarily adjusting the
  5648.                position in hyperspace of a selected vertex of the
  5649.                current hyperobject.  The display is updated to show how
  5650.                moving the vertex in each of the four coordinate
  5651.                directions affects the resulting 3-D image.
  5652.  
  5653.  
  5654.            HYPERGEO    Version 2.1                             Page F-4
  5655.  
  5656.  
  5657.            *   A new "Locate" command permits specifying a precise
  5658.                orientation of the current geometry in terms of the
  5659.                displacement angles of its coordinate axes.
  5660.  
  5661.            *   An alternative form of the Locate command is available in
  5662.                the vertex translation state of the user interface.  It
  5663.                enables the direct entry of four coordinate values to
  5664.                position the selected vertex precisely at a particular
  5665.                point in hyperspace.
  5666.  
  5667.  
  5668.            *   The HYPERGEO screen image can be written to a file in PCX
  5669.                graphics format.  This permits using HYPERGEO images in
  5670.                documents produced by third-party software.
  5671.  
  5672.            *   A DOS shell can be started from within HYPERGEO.  This
  5673.                pauses the HYPERGEO program and permits running one or
  5674.                more DOS commands.  When the DOS shell is exited, the
  5675.                HYPERGEO display is restored to its previous state.
  5676.  
  5677.            *   The on-line help facility has been expanded from one page
  5678.                to eight pages.  The new on-line help is organized
  5679.                hierarchically according to categories of related
  5680.                commands.
  5681.  
  5682.            *   The number of separate pure shades used for solid surface
  5683.                rendering has been increased from eight to twelve; and...
  5684.  
  5685.            *   ...color dithering techniques can be used to increase the
  5686.                effective number of separate shades available for solid
  5687.                surface rendering from twelve to twenty-three.  The new
  5688.                configuration parameter SOLID_DITHER controls this
  5689.                option.
  5690.  
  5691.            *   Command-line options have been added that permit
  5692.                overriding certain automatic hardware and system software
  5693.                status checks that are performed by HYPERGEO.  These
  5694.                options cope with idiosyncratic CPUs and mouse drivers
  5695.                that misidentify themselves to the program.
  5696.  
  5697.            *   The meaning of the scale factor has been mathematically
  5698.                inverted.  It is now defined as screen inches per
  5699.                geometry unit (in Version 1 it was geometry units per
  5700.                screen inch).  This makes the value more intuitively
  5701.                sensible; a larger scale factor now means a larger
  5702.                display, and vice versa.  To prevent the misapplication
  5703.                of existing data, the configuration parameter that
  5704.                specifies the scale factor has been renamed; the old
  5705.                RATIO parameter no longer exists, and the new parameter
  5706.                is called SCALE.
  5707.  
  5708.  
  5709.            HYPERGEO    Version 2.1                             Page F-5
  5710.  
  5711.  
  5712.            *   The eye-to-screen parameter automatically restricts its
  5713.                value to a range that avoids numerical errors and
  5714.                corrupted graphics.  New interactive commands permit
  5715.                setting the parameter directly to either its maximum or
  5716.                its minimum permissable value.
  5717.  
  5718.            *   HYPERGEO can now use a Microsoft compatible mouse even if
  5719.                there is no standard mouse driver installed on the
  5720.                system.  The program will detect and use a mouse on
  5721.                either serial port, COM1 or COM2.
  5722.  
  5723.            *   For systems with VGA graphics, the default dark gray is
  5724.                redefined in the system palette to a shade that appears
  5725.                more reliably dark and gray.
  5726.  
  5727.  
  5728.            Note: The following two items are made available only with
  5729.            registered copies of HYPERGEO.  They are not included in the
  5730.            shareware version.
  5731.  
  5732.  
  5733.            *   Six utility programs have been created which automate the
  5734.                generation of geometry definition files for parameterized
  5735.                families of six types of curved object: cone, cylinder,
  5736.                sphere, hypercone, hypercylinder, and hypersphere.  The
  5737.                programs calculate the geometry of shapes that are
  5738.                gridded approximations to these four curved shapes.  The
  5739.                user can specify the fineness of the gridding.  (See
  5740.                Appendix G for a fuller description.)
  5741.  
  5742.            *   Additional geometry definition files have been created
  5743.                which describe the two "quasi-regular" 3-D convex
  5744.                polyhedra, the cuboctahedron and the icosidodecahedron,
  5745.                along with their derived compound and dual forms.
  5746.  
  5747.  
  5748.            HYPERGEO    Version 2.1                             Page G-1
  5749.  
  5750.  
  5751.  
  5752.  
  5753.        Appendix G.     Utility Programs for Geometry File Generation
  5754.  
  5755.  
  5756.        Six stand-alone utility programs have been developed which
  5757.        automate the creation of certain categories of geometry
  5758.        definition files.  These utilities are supplied with registered
  5759.        versions of the HYPERGEO program.  (They are not included in the
  5760.        shareware release.)
  5761.  
  5762.        These utilities all deal with objects that contain curved
  5763.        surfaces.  They generate an approximation to the curves that
  5764.        consists of a gridded structure of triangular or rectangular
  5765.        polygons and polyhedra.  The user specifies a parameter that
  5766.        controls the fineness of the gridding.  There is an obvious
  5767.        trade-off: a finer gridding factor produces more accurate models
  5768.        of the curved surfaces, but it also produces larger geometry
  5769.        files that are slower to display and to manipulate.
  5770.  
  5771.        The six utilities generate gridded models of cones, hypercones,
  5772.        cylinders, hypercylinders, spheres, and hyperspheres.  The
  5773.        three-dimensional members of this list - cones, cylinders and
  5774.        spheres - are the familiar objects of standard solid geometry.
  5775.        The hypercone, hypercylinder, and hypersphere are their
  5776.        four-dimensional analogs.  A cone is defined as the shape formed
  5777.        by a circle and the surface that connects each point on the edge
  5778.        of the circle to a point not in the circle's plane.  A cylinder
  5779.        is a shape formed from two circular disks that are parallel in
  5780.        3-space and are connected by a surface that joins all
  5781.        corresponding points on their edges.  A sphere is the surface of
  5782.        all points that are equidistant in 3-space from its center point.
  5783.        A hypercone consists of a sphere and the hypersurface that
  5784.        connects each point on the surface of the sphere to a point that
  5785.        is not on the sphere's hyperplane.  A hypercylinder is formed by
  5786.        two spherical surfaces that are parallel in 4-space and are
  5787.        connected by a hypersurface that joins all of the sphere's
  5788.        corresponding points.  A hypersphere is the set of all points
  5789.        that are equidistant in 4-space from its center point.
  5790.  
  5791.        For a sphere, the gridding used to approximate the curved surface
  5792.        corresponds exactly to the latitude and longitude lines used to
  5793.        define locations on the earth's surface.  For the cone and
  5794.        cylinder, the base circles are approximated by regular polygons,
  5795.        and the connections to the vertexes of the polygons form the
  5796.        gridded approximation of the conical or cylindrical surface.  For
  5797.        a hypercone or hypercylinder, the base spheres are themselves
  5798.        gridded spheres (with "latitude" and "longitude" lines).  The
  5799.        connections of these gridded vertexes and edges form the
  5800.        hyperconical or hypercylindrical surface.  In the hypersphere,
  5801.        the third gridding dimension spans a sequence of parallel spheres
  5802.        each of which is itself approximated with 3-D "latitude" and
  5803.  
  5804.  
  5805.            HYPERGEO    Version 2.1                             Page G-2
  5806.  
  5807.        "longitude" measures.  The connecting edges, faces, and
  5808.        hyperfaces between these spheres define the hyperspherical
  5809.        surface.
  5810.  
  5811.  
  5812.        The six utility programs are named as follows:
  5813.  
  5814.                CONE        -   Cones
  5815.                SPHERE      -   Spheres
  5816.                CYLINDER    -   Cylinders
  5817.                HYCONE      -   Hypercones
  5818.                HYSPHERE    -   Hyperspheres
  5819.                HYCYLNDR    -   Hypercylinders
  5820.  
  5821.        Each is executed with the same syntax, for example:
  5822.  
  5823.                SPHERE  <gridding-parameter>
  5824.  
  5825.        The "gridding parameter" is an integer that must be at least 2.
  5826.        It determines the solid angle between parallel grid lines.  This
  5827.        angle is equal to 180 degrees divided by the gridding parameter.
  5828.        Thus, a gridding parameter of 4 will generate grid lines that are
  5829.        45 degrees apart on the object's surface.  The larger the
  5830.        gridding parameter, the higher the accuracy of the model, and the
  5831.        larger and slower the file to execute.
  5832.  
  5833.        The output of the programs is a binary geometry definition that
  5834.        may be read directly into HYPERGEO.  The name of the file is
  5835.        fixed for each program:
  5836.  
  5837.                CONE        -     CONEnn.BIN
  5838.                SPHERE      -   SPHEREnn.BIN
  5839.                CYLINDER    -   CYLNDRnn.BIN
  5840.                HYCONE      -   HYCONEnn.BIN
  5841.                HYSPHERE    -   HYSPHRnn.BIN
  5842.                HYCYLNDR    -   HYCYLRnn.BIN
  5843.  
  5844.        where 'nn' is the gridding parameter value (with leading '0' if
  5845.        less than 10).  Thus, the command
  5846.  
  5847.                HYCYLNDR 3
  5848.  
  5849.        produces a geometry definition file named HYCYLR03.BIN.  This is
  5850.        a hypercylinder gridded at 60 degree intervals.
  5851.  
  5852.        The user should be forewarned that because of the inherent
  5853.        complexity of hyperspace, the geometry files for hypercones,
  5854.        hypercylinders, and hyperspheres get very large very quickly,
  5855.        even for relatively modest values of the gridding parameter.  The
  5856.        hypersphere grows the most quickly; a gridding parameter of 4 is
  5857.        already large for a hypersphere, and you will only be able to
  5858.        handle a hypersphere with a gridding parameter of 5 if your
  5859.        system has a full 640K of memory, almost all of it available to
  5860.        HYPERGEO.
  5861.