home *** CD-ROM | disk | FTP | other *** search
/ World of Graphics / WOGRAPH.BIN / 575.WORM05.DOC < prev    next >
Text File  |  1992-10-13  |  18KB  |  372 lines

  1. &a10L
  2.                                         WORM
  3.                                 (Beta Version 0.05a)
  4.                                        10/13/92
  5.                             Copyright 1992  Robert Flores
  6.                              The Computer Graphics Group
  7.  
  8. PROGRAM DESCRIPTION:
  9.  
  10.         Worm is basically a visual Connect-the-Dots utility. You use your 
  11.         mouse for coordinate placement and press keys for commands. It 
  12.         will display spheres and connecting lines. VIVID output has been 
  13.         added (primarily because I use that program a lot and it was easy
  14.         to do).
  15.  
  16.         This program REQUIRES a mouse and a VGA card (It does not check
  17.         for either). 
  18.         
  19.         It has been tested with VIVID 2.0 and POV 1.0 and seems to produce 
  20.         some nice results. 
  21.  
  22.  
  23.  
  24. MAIN COMMANDS:
  25.  
  26.         <cr,sp> SPHERE. Add a new sphere at mouse coordinates with the 
  27.                         current radius by pressing the SPACE bar or ENTER.  
  28.                      
  29.         <1> FRONT VIEW. Change display to Front View (X,Y plane).
  30.  
  31.         <2> SIDE VIEW.  Change display to Side View (Z,Y plane).
  32.  
  33.         <3> TOP VIEW.   Change display to Top View (X,Z plane).
  34.  
  35.         <4> PREVIEW.    Display a perspective view of spheres and connectors.
  36.  
  37.         <A> ARC.        Create an arc of spheres. The program can either
  38.                         use last sphere as starting point or accept new 
  39.                         point.  Move to center point and press a key or right
  40.                         mouse button. A circle will appear showing radius 
  41.                         circle. Move to end point and press a key or left
  42.                         mouse button.  Input direction (clock-wise/counter-
  43.                         clockwise). Enter ending sphere radius (ENTER only 
  44.                         if it is the same as the starting radius).
  45.  
  46.         <^A> ARC.       Create a free form arc of spheres. The program can
  47.                         either use last sphere as starting point or accept 
  48.                         new point. Move to end point and press a key or right
  49.                         mouse button. Input number of spheres (default=20). 
  50.                         Enter ending sphere radius (ENTER only if is the same 
  51.                         as the starting radius). Move to first control point 
  52.                         and press a key or left mouse button. Next move to 
  53.                         second control point and press a key or right mouse
  54.                         button. The program displays a curve path and prompts 
  55.                         user to abort, redo, or accept path. Enter choice.
  56.                         NOTE: The basic idea for this was a formula for a
  57.                         cubic parametric curve I found. The control points
  58.                         act like magnets, pulling the (originally straight)
  59.                         line away from the opposite end point. By moving the
  60.                         location of the two control points, you can adjust
  61.                         the shape of the curve.
  62.  
  63.         <C/P> CENTER.   Pan view screen. Enter x,y,z coordinates to placed at
  64.                         the center of screen. This is PAN now and is left in
  65.                         for those accustomed to pressing C.
  66.  
  67.         <D> DEFAULTS.   Change program defaults, such as: 
  68.                                         <D>ecimals      Number of decimal
  69.                                                         places (1-3)
  70.  
  71.                                         <E>dit Snap     Maximum x,y,or z
  72.                                                         distance from mouse
  73.                                                         cursor can be from
  74.                                                         sphere in Edit select
  75.  
  76.                                         <M>ouse Snap    Increment of x,y and
  77.                                                         z coordinates
  78.  
  79.  
  80.         <E> EDIT.       Toggle Edit mode. See Edit Commands below.
  81.  
  82.         <F> FILE.       Load in or Save to disk a file. The following choices  
  83.                         are available:
  84.  
  85.                                         <A>ppend Append in a WORM file
  86.                                                 after the last sphere.
  87.  
  88.                                         <C>lear Clear out any data.
  89.  
  90.                                         <L>oad  Load in previously saved
  91.                                                 WORM file. NOTE: This clears
  92.                                                 out any current data in 
  93.                                                 memory.
  94.  
  95.                                         <S>ave  Save a WORM and/or CTDS
  96.                                                 file.
  97.                                         
  98.                                         <Q>uit  Exit File section
  99.  
  100.                                         <V>ivid Formatter  Create a VIVID
  101.                                                 compatible file. The y and
  102.                                                 z coordinates are swapped.
  103.                                                 Studio can be merged from
  104.                                                 an external file. A generic
  105.                                                 surface is written for each
  106.                                                 worm. With the exception of
  107.                                                 the first worm, these are
  108.                                                 set up as non-executed 
  109.                                                 remarks. These can then be
  110.                                                 edited with any editor.
  111.                                                         
  112.         <L> LINE.       Create a straight line of spheres.  The program can
  113.                         either use last sphere as starting point or accept
  114.                         new point.  Move to end point and press a key or left
  115.                         mouse button.  Enter ending radius (ENTER only if it 
  116.                         is the same as the starting radius).
  117.  
  118.  
  119.         <M> MOVE.       Shift ALL spheres. Enter x,y,z offsets.
  120.  
  121.                                                
  122.         <N> NEW WORM.   Start a new worm. Normally, each new sphere is coded
  123.                         to be linked to the previous sphere. Pressing N will
  124.                         code the sphere to be the first in a new worm.
  125.  
  126.  
  127.         <P> PAN.        Pan view screen. Enter x,y,z coordinates to placed at
  128.                         the center of screen. Same as CENTER.
  129.  
  130.  
  131.         <Q> QUIT.       Quit. You will be prompted if you would like to save
  132.                         your work.  "Worm-compatible" means that the file
  133.                         can be loaded into this program. "CTDS-compatible"
  134.                         means that the file is ready for Connect the Dots
  135.                         program.
  136.  
  137.         <R> RADIUS.     Change current default radius. 
  138.  
  139.         <S> SPIRAL.     Create a spiral. The radius is defined in the current
  140.                         view (xy,zy,or xz) and the length is in the third 
  141.                         axis. 
  142.         
  143.                         The program can either use last sphere as starting 
  144.                         point or accept new point.  Move to center point and 
  145.                         press a key or right mouse button. A circle will 
  146.                         appear showing radius circle. Move to ending spiral 
  147.                         radius point and press a key or left mouse button. 
  148.                         Input direction (clock-wise/counter-clockwise). 
  149.                         Enter ending sphere radius (ENTER only if it is the 
  150.                         same as the starting radius). Enter length (negative
  151.                         lengths spiral in the negative direction).
  152.  
  153.         <U> UNDO        Undo last action.
  154.  
  155.         <V> VIEW SIZE.  Change View extents. Sizes currently are:  -50 to 50
  156.                                                                    -25 to 25
  157.                                                                    -15 to 15
  158.                                                                    -10 to 10
  159.                                                                    -75 to 75
  160.                                                                   -100 to 100
  161.                                                                   -150 to 150
  162.                                                                   -200 to 200
  163.  
  164.  
  165.                         Extents are in all three directions. These are off-
  166.                         sets from center points.
  167.                                                                   
  168.  
  169.  
  170.  
  171. EDIT COMMANDS:
  172.  
  173.         <1 2 3>         Change display to View 1, 2, or 3. This works the
  174.                         same as in Main Menu.
  175.  
  176.         <B> BOX.        Box in a group of spheres for movement, copying or
  177.                         deletion.  Move to lower-left corner and press a key
  178.                         or left mouse button. Then move to upper-right corner 
  179.                         and press a key or right mouse button.
  180.                         The following choices are available:
  181.  
  182.                         <1/2/3>         Change viewpoint
  183.                         <C>opy          Copy selected spheres
  184.                         <D>elete        Delete selected spheres
  185.                         <M>ove          Move selected spheres
  186.                         <H>orz Flip     Flip selected spheres horizontally
  187.                         <P>an           Pan display
  188.                         <Q>uit          Exit Box Edit mode
  189.                         <R>adius        Change radius of selected spheres
  190.                         <S>cale         Scale selected area and radius
  191.                         <T>urn          Rotate selected spheres
  192.                         <U>ndo          Undo last action
  193.                         <V>ert Flip     Flip selected spheres vertically
  194.  
  195.         <D> DELETE.     Move cursor to desired sphere and press D. Sphere is
  196.                         deleted.
  197.  
  198.         <^D>DEL LAST.   Delete last sphere. If the last addition was an arc
  199.                         the group of spheres are removed.   
  200.                         
  201.                         Note: A group is deleted with this command only if
  202.                         there was no other editing since the ARC command.
  203.  
  204.         <I> INSERT.     Insert a new sphere after sphere at cursor. Move to 
  205.                         sphere and press I. Move to new position and press
  206.                         a key or left mouse button. The new sphere will 
  207.                         inserted in line in the worm.
  208.  
  209.         <M> MOVE.       Move sphere at cursor to new x,y coordinate. Move to
  210.                         sphere and press M. Move to new position and press
  211.                         a key or left mouse button. The select sphere will be 
  212.                         move to new place. This does not alter position in 
  213.                         worm sequence.
  214.  
  215.         <N> NEW.        Make sphere the start of a worm.  Move to sphere and 
  216.                         press N. 
  217.  
  218.         <R> RADIUS.     Change sphere radius. Move to selected radius and
  219.                         press R. Enter new radius.
  220.  
  221.         <W> WORM        Edit a whole worm. Move to a sphere in desired worm
  222.                         and press W. The following choices are available:
  223.  
  224.                         <1/2/3>         Change viewpoint
  225.                         <C>opy          Copy selected spheres
  226.                         <D>elete        Delete selected spheres
  227.                         <M>ove          Move selected spheres
  228.                         <H>orz Flip     Flip selected spheres horizontally
  229.                         <P>an           Pan display
  230.                         <Q>uit          Exit Box Edit mode
  231.                         <R>adius        Change radius of selected spheres
  232.                         <S>cale         Scale selected area and radius
  233.                         <T>urn          Rotate selected spheres
  234.                         <U>ndo          Undo last action
  235.                         <V>ert Flip     Flip selected spheres vertically
  236.  
  237.  
  238.         <esc> EXIT      Leave EDIT mode and return to MAIN menu. Cursor 
  239.                         coordinates will be those of the last sphere.
  240.  
  241.  
  242. HISTORY:
  243.  
  244.         0.1e    02/20/92
  245.                 First release after playing with it for a while.
  246.                 Only xy plane available
  247.  
  248.         0.2a    03/04/92
  249.                 Added additional planes. 3-D editing now possible.
  250.                 Added rotation and flip
  251.                 Added spirals.
  252.                 Added perspective view. You can actually get an idea what 
  253.                   the thing will look like.
  254.                 Added VIVID file output
  255.                 Changed user interface.
  256.  
  257.         0.3a    03/15/92
  258.                 Added scaling.
  259.                 Modified VIVID file output to merge with a STUDIO file and
  260.                   have a generic surface definition for each worm. Also,
  261.                   added option to not connect spheres.
  262.                 Expanded view display options.
  263.                 Renamed SHIFT to MOVE
  264.                 Added UNDO LAST EDIT.
  265.  
  266.         0.4a    08/31/92
  267.                 Fixed coordinate display in Edit mode
  268.                 Added Append in File mode to read in worm files without 
  269.                   clearing data in memory.
  270.                 Added ability to select whole worm in Edit mode.
  271.                 Added ability to change views in Edit mode.
  272.                 Added ability to create a straight line of spheres in
  273.                   addition to default use as endpoints.
  274.  
  275.         0.4b    09/01/92
  276.                 Fixed bugs in deletion and Edit-worm functions.
  277.  
  278.         0.5a    10/13/92
  279.                 Added cubic parametric curves (free form).
  280.                 Expanded maximum number of spheres to 5000.
  281.                 Changed Undo to a more true undo.
  282.                 Made mouse interface somewhat (repeat: somewhat) better.
  283.                 Added some file error checking.
  284.  
  285.  
  286.  
  287. WISH LIST:
  288.  
  289.         A better mouse interface - less key action. A high priority with many
  290.           people.
  291.         Incremental spacing of spheres in arcs, lines and spirals with
  292.           increasing or decreasing radii.
  293.         Better arc editing. And while I at it, why not bezier patches,
  294.           TIN (Trianglar Irregular Network) creation and 3-d modelling?***
  295.         More error checking - file, quantities, etc.
  296.  
  297.  
  298.  
  299.  
  300. WORM FILE FORMAT:
  301.         
  302.         The first line contains number of spheres
  303.         Each of the remaining file lines contains the following:
  304.  
  305.         X-coord, Y-coord, Z-coord, Radius, Status
  306.  
  307.         Status indicates whether the sphere is the start of a new worm or
  308.         connected to sphere preceeding it. (0=new worm;1=connect to last
  309.         sphere).
  310.  
  311.         
  312.                 
  313. LIMITATIONS AND SUCH:
  314.         
  315.         Maximum number of spheres is currently 5000. Coordinate ranges are 
  316.         from -32,767 to 32,767. The display is generated sequentially (first 
  317.         to last) and thus does NOT hide lines. The top layers of spheres are
  318.         those last in line. Please remember this. Otherwise, it could be 
  319.         confusing (such as side views of spirals).
  320.  
  321.         Center of rotation (TURN within Edit mode) is midpoint between high 
  322.         and low coordinates in each direction of selected spheres.
  323.         
  324.         The program does not currently have much error checking. So, please 
  325.         don't get mad if the program bombs. Hey, this is a beta version and 
  326.         you probably have no intention of financially supporting its 
  327.         development, anyway. 
  328.         
  329.         The program was written in BASIC and is bound by the limits imposed 
  330.         by the language and my own minimal programming ability. This became
  331.         even more apparent with the addition of the free form curve. I would
  332.         have like to have had a rubber banding effect on the path as each
  333.         control point was position. Unfortunately, the overhead involved 
  334.         bogged down the program with unacceptable display results.
  335.         
  336.  
  337.  
  338. CLOSING THOUGHTS:
  339.  
  340.         Thanks to Adam Shiffman, Robert Wiber and Truman Brown for their 
  341.         suggestions, pointers and encouragement. Thanks to Steven Coy for 
  342.         creating Vivid, which originally prompted the idea for Worm. Special 
  343.         thanks to Mike Miller, whose use of Worm in the creation of some of
  344.         his masterpieces has completely blown me away. And special thanks 
  345.         to my wife, Kaylene, who has not pulled the plug on my machine 
  346.         JUST YET.
  347.         
  348.         Bugs and mistakes are expected. Relax, enjoy, and save often.
  349.  
  350.         Suggestions are greatly appreciated. They might even be used. 
  351.         
  352.         Donations are also greatly appreciated. They definitely WILL be used.
  353.  
  354.  
  355.  
  356.         Robert Flores
  357.         The Computer Graphics Group
  358.         PO Box 4022
  359.         San Marcos, CA 92069
  360.  
  361.         P.S. I occasionally come up for air at these BBS's:
  362.  
  363.                 Diamond Bar BBS                 (714) 861-1549
  364.                 The Graphics Alternative        (510) 524-2780
  365.                 Leo Graphics                    (310) 212-7179
  366.                 The Twilight Zone               (619) 480-2435
  367.                 You Can Call Me Ray             (708) 358-5611
  368.  
  369.                 Compuserve COMART  71051,3543
  370.  
  371.  
  372.