home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / graphics / 3d / obed / obeddoc < prev    next >
Text File  |  1993-02-13  |  28KB  |  868 lines

  1. ObEd V1.02 - The Ultimate Object Editor for Demos and Simulators
  2.  
  3. CREDITS
  4.  
  5. Design        Per Christian Odegard
  6. Programming    Per Christian Odegard
  7. Graphics    Per Christian Odegard
  8. Documentation    Per Christian Odegard
  9. ReqToolsLibrary    Nico François
  10.  
  11. Per Christian Odegard works for Quark Grafix.
  12.  
  13. Contacts:
  14.  
  15. Snail mail:
  16.  
  17. Per Christian Odegard
  18. Djupdalsfaret 7
  19. N-2200 KONGSVINGER
  20. NORWAY
  21.  
  22. Internet:
  23.  
  24. perod@ifi.uio.no
  25.  
  26. IRC:
  27.  
  28. Viol8r, CoolHand or Quark
  29.  
  30.  
  31. ---------------
  32. --- GENERAL ---
  33. ---------------
  34.  
  35. ABOUT OBED
  36.  
  37.     ObEd is a general purpose  3D  model  designer,  programmed  for the
  38.     author's own use, but released as Public Domain software as a result
  39.     of public request.  The editor does only support 16 colour,  simple,
  40.     and relatively  small objects,  and is NOT intended to be used as an
  41.     editor for use with  ray tracing programs.   The current limits are:
  42.  
  43.     Colours:    16
  44.     Points:        999
  45.     Surfaces:    999
  46.     Objects:    999
  47.     Coord. values:    -9999 to +9999
  48.  
  49.     These  limits  will probably change,   as the author is  planning an
  50.     A1200  version of ObEd.  However,  he doesn't  own one yet,   so all
  51.     offers are welcome :-)
  52.  
  53. HISTORY
  54.  
  55.     The work on ObEd  started when the author needed a tool for creating
  56.     models for a flight simulator he was working on.  Writing dc.w lines
  57.     in the source code got a bit boring after the sqillionth line, so he
  58.     decided that something had to be done. The actual coding started one
  59.     hot summer afternoon in the year of 1992, and he has added new stuff
  60.     when he had time for such pleasures, which wasn't very often,  as he
  61.     had to do his military duties this year. However, on his leaves,  he
  62.     sat up all night getting red-eyed programming new bits on ObEd.   By
  63.     Chistmas 1992 the program version 1.0 was finished. Still,  the docs
  64.     had to be written, and here it is  -  in January 1993  -  ObEd V1.0.
  65.     The author  really hopes  you enjoy  this piece of  Amiga  software.
  66.  
  67. DISCLAIMER
  68.  
  69.     The author is not responsible for any damage this  piece of software
  70.     may cause the user (or any other being or corporation).  Use at  own
  71.     risk, in other words.
  72.  
  73. LIBRARIES
  74.  
  75.     ObEd will only work on Amigas with Kickstart 2.04 ROMs.  You'll also
  76.     need these libraries:
  77.  
  78.     diskfont.library    V37
  79.     dos.library        V37.44
  80.     exec.library        V37.132
  81.     gadtools.library    V37
  82.     graphics.library    V37.35
  83.     intuition.library    V37.318
  84.     reqtools.library    V37
  85.  
  86. REQUESTERS
  87.  
  88.     From time to  time,  you will be  asked to  verify  your actions  (a
  89.     chance  to chicken out), in other words,  a requester will pop up on
  90.     the  screen,  asking you a  'yes or no'  question.  Pressing Y, V or
  91.     ENTER will activate the 'Yep' gadget, while N or B will activate the
  92.     'Nope'  gadget.  You may also use the mouse to  select  your  reply.
  93.  
  94. WARNINGS
  95.  
  96.     Sometimes,  ObEd opens a window  displaying a  warning or a piece of
  97.     information. Just press SPACE  (or click on the gadget)  to continue
  98.     after you've read the message.
  99.  
  100. RELEASES
  101.  
  102. V1.01 - Late January 1993:
  103.         - CloseWindow() bug fixed.  This caused crashes on  'lesser'
  104.           machines ;-)
  105.         - Now uses topaz 8  everywhere,  not the  default font as in
  106.           V1.00
  107.         - Minor bug fixed in Undo routine
  108.         - Buffers now contain '---', not 000 as in V1.0
  109. V1.02 - Early February 1993:
  110.         - Unused now searches midpoint list too
  111.         - Unused searches FROM current point. This enables the user
  112.           to find all unused points before deleting any
  113.         - More warnings and info messages added
  114.         - Both PAL and NTSC versions available
  115.         - Easier colour selection (see Using the mouse...)
  116.         - SHIFT-K will swap front and back colour of a surface
  117. KNOWN BUGS
  118.  
  119.     The screen flickers  somewhat on  slower machines.  This is because
  120.     the blitter is  unable to transfer 4 bitplanes in one frame.
  121.  
  122. STRUCTURE
  123. ---------
  124.     
  125.     Points:        Coorinates  in   3-space  consists of  X,  Y  and  Z
  126.             values.    The coordinates may be in the range -9999 to
  127.             9999. The  maximum number of points is currently set
  128.             to 999.
  129.  
  130.     Surfaces:    Each  surface consists of four  points.  In order to
  131.             make a triangle,  make the  last  two point  numbers
  132.             the same.  For a  line, make the  last  three  point
  133.             numbers the  same etc.  The  colour of a  surface is
  134.             defined  by  four digits.  The fourth  digit is  the
  135.             surface's  main  colour,  the  third  is  its  shade
  136.             colour.  The  first and  second digits  work in  the
  137.             same  way,  only for  the back  side of the surface.
  138.             Examples follow:
  139.                 0003 - Surface colour is 3
  140.                 040b - Front colour is $b and back col. is 4
  141.                 0062 - Surface is  shaded using cols 6 and 2
  142.             Note:   A  surface  value  of  0  makes it invisible
  143.             (hidden). Each surface has a 'wireframe flag', which
  144.             indicates  whether  the  surface should be drawn  in
  145.             wireframe or filled mode. You may not have more than
  146.             999 surfaces.
  147.  
  148.     Objects:    Several surfaces make up objects. You set the start-
  149.             surface and the number of surfaces for every object.
  150.             In   order   to  sort  the   objects,    a so-called
  151.             'midpoint' exists for each object. This point may be
  152.             any point  in the point list  and may be manipulated
  153.             in order to make the object look right.  Take a look
  154.             at the demo objects to see how this works. The upper
  155.             limit for the  number of objects is 999.
  156.  
  157.  
  158.     Models:        Models contain one or many objects.
  159.  
  160. NOTE:    In  the  following text,  <type>  will be used  to  indicate  Point,
  161.     Surface or Object, depending  on  which panel  that is  highlighted.
  162.  
  163.  
  164. THE DEFAULT COLOURS
  165.  
  166.     The  colours 0 to 15 are  used in the model,  and may be changed any
  167.     way  you want them to.  However,  the colours 16 to  31 are  special
  168.     colours used in the  panels  and windows.  If you  wish to alter the
  169.     look of these,  used the table below.   The colour table looks a bit
  170.     confusing,  because  sprite  colours  and colours  used for  special
  171.     effects must be stored at certain  locations in the table.  However,
  172.     here it comes in all it so-called glory:
  173.  
  174.     Table entry    Describtion        Default colour
  175.  
  176.     16        Panel data text        Black
  177.     17        Menu colour 1        White
  178.     18        Main panel colour    Grey
  179.     19        Panel selected        Red
  180.     20        Bright edge        White
  181.     21        Shadow edge        Black
  182.     22        Headlines        Black
  183.     23        Panel not selected    Black
  184.     24        Number (#) text        Blue
  185.     25        SPRITE COLOUR!!!    Variable
  186.     26        Panel data text 2    White
  187.     27        Menu colour 2        Yellow
  188.     28        Menu colour 3        Red
  189.     29        SPRITE COLOUR!!!    Variable
  190.     30        Menu colour 4        Green
  191.     31        Menu colour 5        Orange
  192.  
  193. NOTE:    The entries marked  'SPRITE COLOUR!!!' may not be changed. Of course
  194.     course, you could always try,  but the program will change them back
  195.     at some time (when cycling sprite colours).
  196.  
  197.  
  198. THE SOURCE AND WHAT IT MEANS
  199.  
  200.     Consider the following example file of a  cube with a line on top of
  201.     it. Comments will not appear in the saved file.
  202.  
  203.     *** THE COMMON DATA SHARED BY ALL MODELS OF THE SAME TYPE ***
  204.  
  205.     DefOb:    dc.w    009            ;number of  points - 1
  206.         dc.w    001            ;number of objects - 1
  207.         dc.l    PTX            ;address of points
  208.         dc.l    XOAddr            ;pointers to objs' 1st surf
  209.         dc.l    XOS            ;pointer to list of
  210.                         ;objects' # of surfaces
  211.         dc.l    XOMid            ;pointer to list of
  212.                         ;objects' midpoints
  213.     *** THE MODEL STRUCTURE ***
  214.  
  215.     XO:    dc.l    DefOb            ;pointer to common data
  216.         dc.w    0            ;the following dc.s lines
  217.         dc.l    0            ;work as data storage in
  218.         dc.l    0            ;the author's filght sim
  219.         dc.l    0            ;system, and may be removed
  220.         dc.l    0            ;or used to whatever you
  221.         dc.l    0            ;find useful
  222.         dc.l    0
  223.         dc.w    0*16            ;X-, Y- and Z-rotation
  224.         dc.w    0*16            ;of the model
  225.         dc.w    0*16
  226.  
  227.     PTX:    dc.w     0100, 0100, 0100    ;the X, Y and Z values of
  228.         dc.w    -0100, 0100, 0100    ;the point
  229.         dc.w    -0100,-0100, 0100
  230.         dc.w     0100,-0100, 0100
  231.         dc.w     0100, 0100,-0100
  232.         dc.w    -0100, 0100,-0100
  233.         dc.w    -0100,-0100,-0100
  234.         dc.w     0100,-0100,-0100
  235.         dc.w     0000, 0100, 0000
  236.         dc.w     0000, 0500, 0000
  237.  
  238.     XO000:    Surf    000,003,002,001,$0006,0    ;the 1st, 2nd, 3rd and 4th
  239.         Surf    004,005,006,007,$0002,0    ;point, the colour value,
  240.         Surf    001,002,006,005,$0062,0    ;and the wireframe flag
  241.         Surf    000,004,007,003,$002E,0
  242.         Surf    000,001,005,004,$000F,0
  243.         Surf    003,007,006,002,$000D,0
  244.     XO006:    Surf    008,009,009,009,$0009,1    ;the line
  245.  
  246.     XOMid:    dc.w    000*6,009*6        ;the midpoints of the objs
  247.     XOAddr:    dc.l    XO000,XO006        ;the addresses of the first
  248.                         ;surfaces of the object
  249.     XOS:    dc.w    005,000            ;the number of surfaces of
  250.                         ;objects
  251.     Surf is a macro defined like this:
  252.     Surf:    macro
  253.         dc.w    \1*6,\2*6,\3*6,\4*6,\5,\6
  254.         endm
  255.  
  256.  
  257. HOW THE BINARY FILE IS STORED
  258.  
  259.     This info may be useful if you want to write a program that converts
  260.     ObEd  files  into  files  that  other  3D  programs  can understand.
  261.     Consider  the  same example  model as above.  The binary  file  will
  262.     contain the following datas: (all values in hexadecimal)
  263.  
  264.     HEX VALUES            COMMENTS
  265.     ----------            --------
  266.  
  267.     4f 62 45 64            ;'ObEd'. ID text
  268.     0009                ;number of points   - 1
  269.     0001                ;number of objects  - 1
  270.     0006                ;number of surfaces - 1
  271.     0064 0064 0064            ;x,y,z values of the points
  272.     ff9c 0064 0064
  273.     ff9c ff9c 0064
  274.     0064 ff9c 0064
  275.     0064 0064 ff9c
  276.     ff9c 0064 ff9c
  277.     ff9c ff9c ff9c
  278.     0064 ff9c ff9c
  279.     0000 0064 0000
  280.     0000 01f4 0000
  281.     0000 0012 000c 0006 0006 0000    ;surface points, colours and wf-mode
  282.     0018 001e 0024 002a 0002 0000
  283.     0006 000c 0024 001e 0062 0000
  284.     0000 0018 002a 0012 002e 0000
  285.     0000 0006 001e 0018 000f 0000
  286.     0012 002a 0024 000c 000d 0000
  287.     0030 0036 0036 0036 0009 0001    ;the line
  288.     0000 0036            ;midpoints (*6)
  289.     0000 0000 0000 0048        ;1st surface start (relative offset)
  290.     0005 0000            ;objects' number of surfaces
  291.  
  292.  
  293. -------------------------
  294. --- THE CONTROL PANEL ---
  295. -------------------------
  296.  
  297.     The 'current'  point,  surface and  object is  the topmost  entry of
  298.     respective  panels.  The  selected  panel  has a highlighted  title.
  299.  
  300. THE POINTS PANEL
  301.  
  302.     This panel  contains (left  to  right)  the  point number  (#),  the
  303.     x-coordinate (X),  the y-coordinate (Y),  and the  z-coordinate (Z).
  304.  
  305. THE SURFACES PANEL
  306.  
  307.     This  panel  contains  (left to right)  the  surface number (#), the
  308.     first  point of the  surface  (POINTS),  the second,  the third, the
  309.     fourth,    the colour code (COL), and finally  the wireframe flag (WF).
  310.  
  311. THE OBJECTS PANEL
  312.  
  313.     This panel contains (left to right)  the first surface of the object
  314.     (SU),  the number  of surfaces it  contains in addition to the first
  315.     (i.e.  number of  surfaces - 1) (#)  and the  midpoint of the object
  316.     (MID).
  317.  
  318. THE ROTation DATA
  319.  
  320.     The number of  degrees the model is  rotated about the X-, Y- and Z-
  321.     axis (respectively) is displayed here.
  322.  
  323. THE NUMber DATA 
  324.  
  325.     The  number  of  points,  surfaces  and  objects  (respectively)  is
  326.     displayed here.
  327.  
  328. THE BUFfer DATA
  329.  
  330.     The buffered point,  surface and object (respectively) is  displayed
  331.     here.
  332.  
  333. THE DATa DATA
  334.  
  335.     The top row contains the  WAS-flags' status (1=on). W=WireFrame Mode
  336.     On, A=AllMode On, S=SpriteOff Mode On. The second and third row show
  337.     which two points that are  found to be equal.  They contain '---' if
  338.     none are found.
  339.  
  340. THE OTHER DATA
  341.  
  342.     Below  these datas  you will  find the  model's  current position in
  343.     3-space. At the very bottom, a colour reference list is displayed in
  344.     all its colourfulness.
  345.  
  346.  
  347. ---------------------
  348. --- THE MAIN VIEW ---
  349. ---------------------
  350.  
  351. MOVING AND ROTATING THE OBJECT
  352.  
  353.     You may move the object in  3-space using  the keys described in the
  354.     key overview file.
  355.     Moving and rotating is useful for seeing how it looks from different
  356.     ranges and angles.  Speaking of  angles,  the  entire object may  be
  357.     rotated using the numerical keypad. Note that Shifts speeds up these
  358.     operations.
  359.  
  360. EDITING THE OBJECT: Using edit windows
  361. --------------------------------------
  362.  
  363. EDITING THE POINTS
  364.  
  365.     In order to edit the points, use the cursor keys to scroll the point
  366.     list until the point  you want to modify tops  the point panel.  You
  367.     may now press  'ESC'  (of the point panel is highlighted) or 'F1'. A
  368.     window  will  open,  displaying  the  current  values of  the point.
  369.     Pressing 'X' will allow you to change the values of the x-coordinate
  370.     (Similar keypresses for the other  coordinates).  Press  'ENTER'  if
  371.     you're satisfied, or  'TAB' to cycle to  the next  coordinate. Press
  372.     'A' for accept if  you're pleased  with the new  values,  or 'R' for
  373.     regret if you're not. ESCape also works as an 'ooops' key on all the
  374.     edit windows.
  375.  
  376. EDITING THE SURFACES
  377.  
  378.     Editing the surfaces works in the same way as with the points.  Fill
  379.     in the point values and colour code as explained above. You can also
  380.     select whether the surface should be  drawn in wireframe mode or not
  381.     here.  Note the hotkeys on this screen too.  Press 'F2' at any time,
  382.     or 'ESC'  when the  'Surfaces' panel is  hightlighted to  enter this
  383.     window.
  384.  
  385. EDITING THE OBJECTS
  386.  
  387.     This works as with the two above,  and hotkeys are available on this
  388.     screen as well.  Press 'F3'  or  'ESC'  when the  'Objects' panel is
  389.     highlighted.
  390.  
  391.  
  392. EDITING THE MODEL: Using special keys
  393. --------------------------------------
  394.  
  395. EDITING THE POINTS
  396.  
  397.     The coordinate values may be changed using the  keys surrounding the
  398.     numerical keypad. Normal step value is 1,  but using SHIFTed keys, a
  399.     step value of 10 will be used.
  400.  
  401. EDITING THE SURFACES
  402.  
  403.     Using the keys  '4',  '5', '6' and  '7',  you may insert the current
  404.     point at position  1,  2,  3 and 4  respectively.  Pressing '8' will
  405.     change the surfaces's wireframe flag.
  406.  
  407. EDITING THE OBJECTS
  408.  
  409.     You  may change  the number  of  surfaces  in the current  object by
  410.     using the  keys '>'  (for more)  and '<' (for less). Pressing '9' on
  411.     the main  keypad will use  the current surface as the object's first
  412.     surface. Using the current point as the  object's 'midpoint' can  be
  413.     done by    pressing '0' on the main keypad.
  414.  
  415. FILE OPERATIONS
  416. ---------------
  417.  
  418. DELETING ALL (NEW)
  419.  
  420.     Pressing 'O' will delete everything currently stored in the computer
  421.     memory,  and leave you with a blank model.  Make  sure you save your
  422.     model before pressing this key. However, you can always get your old
  423.     model back by pressing the UNDO key. This key is described elsewhere
  424.     in this documentation.
  425.  
  426. LOADING A MODEL
  427.  
  428.     Loading a  model will  delete all your  previous work,  so make sure
  429.     you've saved it. A new model will be loaded,  and it will  appear at
  430.     the  same  positions  and using  the same  rotations as the previous
  431.     ones. Press 'Amiga-L' to do this.
  432.  
  433. LOADING A PALETTE
  434.  
  435.     You  may  load a  previously  saved palette  (range of  colours)  by
  436.     pressing 'Amiga-]'.
  437.  
  438. SAVING A MODEL AS BINARY
  439.  
  440.     When you are plased with your work,  save it by pressing  'Amiga-B'.
  441.     This should be done frequently,  and you should make backups of your
  442.     work.
  443.  
  444. SAVING A MODEL AS ASSEMBLY SOURCE
  445.  
  446.     This  is  the  single most useful  feature of  the editor.  The file
  447.     created may be  added to a demo or flight simulator for instant use.
  448.     You'd just have to change the label names slightly. The source is in
  449.     MC68000 assembly format, so don't try it in  your C source ;)  Press
  450.     'Amiga-T' to achieve this little miracle.
  451.  
  452. SAVING A PALETTE
  453.  
  454.     If you've created a palette that pleases your eyes (or otherwise, as
  455.     the case might be), simply press 'Amiga-['  to save it.  If you save
  456.     it as 'StdPalette', this file will be loaded at the beginning of the
  457.     program, thus making it the default palette.
  458.  
  459. IMPORTING A MODEL
  460.  
  461.     You may wish to  import a  previously  done work  into your  current
  462.     model.  This routine  makes your dreams come true.  Very useful, and
  463.     very easy to use. The imported data is added at the end of the lists.
  464.     To execute, press 'Amiga-I'.
  465.  
  466. GETTING VERSION NUMBER
  467.  
  468.     Clicking  in the  data panel  area will display a little  info about
  469.     ObEd.
  470.  
  471.  
  472. QUITTING THE PROGRAM
  473.  
  474.     When you are pleased with your model (AND IT IS SAVED), you may quit
  475.     ObEd by pressing the 'Amiga-ESC' key combination.
  476.  
  477.  
  478. ADDITIONAL EDIT OPERATIONS
  479. --------------------------
  480.  
  481. NEW <TYPE>
  482.  
  483.     Pressing 'N' will add a single <type> at the end of the <type> list.
  484.     This will only  contain zeros,  and whould be edited before used  in
  485.     other <type>s.
  486.  
  487. INSERTING
  488.  
  489.     You may insert a new point  anywhere in  the  point list by pressing
  490.     'J'.   Inserting  surfaces  in  the  surface  list  is  a  bit  more
  491.     complictated.  The only place you may insert new surfaces, is before
  492.     the first surface of any object. For example, if your model contains
  493.     two  objects  (00 05 17 and 07 03 32)  you  may  insert  surfaces at
  494.     positions 00 or 07.
  495.  
  496. COPYING
  497.  
  498.     You  may copy  the contents of one  <type>  into  another,  by first
  499.     BUFFERING  the source <type>,  then selecting the destination <type>
  500.     and finally pressing 'C' to do the copying.
  501.  
  502. EXCHANGING
  503.  
  504.     Exchanging  the contents  of two <type>s,  works  like this:  BUFFER
  505.     the first <type>,  select the other <type> and press 'E' to exchange
  506.     these two <type>s.
  507.  
  508. DELETING
  509.  
  510.     Deleting <types> doesn't require  much brainwork.  Simply select the
  511.     <type>  you want  to delete and press 'D'.  If the <type> is used in
  512.     another type (e.g. a point is used in a surface),  you won't be able
  513.     to  delete it.  If you press  'Amiga-1'  you will  delete the  first
  514.     point, surface,  and object.  This is particulary  useful when a new
  515.     object is CREATEd and you want to delete the  dummy object, surface,
  516.     and point (all containing 0 as default).
  517.  
  518. MOVING
  519.  
  520.     Pressing the 'M' key,  a window will open,  asking you to  input the
  521.     X, Y, and Z movement.  If <type> is a surface,  it will move all the
  522.     points in the surface, and if it is an object,  it will move all the
  523.     points contained by its surfaces. Note that if any of the points are
  524.     used  by  other  surfaces  or  objects,  these will  change as well,
  525.     causing often unwanted results.
  526.  
  527. ROTATING
  528.  
  529.     If you press 'R', you will be asked for rotation angle about the X-,
  530.     Y-, and Z-axis, respectively. This angle must be in the range  0-359
  531.     degrees. Please note that different objects and surfaces may use the
  532.     same points,  and will thus change as well.  Only objects and models
  533.     may be rotated. If you wish to rotate a model, set the AllMode flag.
  534.  
  535. CLONING
  536.  
  537.     Selecting  a  <type> and  pressing 'Y', will clone this <type>, i.e.
  538.     creating  a new <type>  looking exactly like the  current  one,  and
  539.     placing it at the end of the <type> list.
  540.  
  541. BUFFERING
  542.  
  543.     Before you can use the COPY or EXCHANGE  functions,  you have to use
  544.     this function. What it does, is to select the first <type> that will
  545.     take part in the operation. For exapmle, if you were to exchange the
  546.     points  #2 and #9,  you should  select point #2,  buffer it,  select
  547.     point #9 and execute EXCHANGE.  As for COPY,  the BUFFERed <type> is
  548.     the  source  in the  operation.  Press 'SPACE' in order to  buffer a
  549.     <type>.
  550.  
  551. UNDOING CHANGES
  552.  
  553.     With all the functions and operations available to the user of ObEd,
  554.     you're bound to do a mistake sooner or later. Or maybe you just want
  555.     to try out an idea to see how it  looks,  but want to be able to get
  556.     the old model back.  Help is literally at hand.  Pressing the 'HELP'
  557.     key will undo the very last changes on your model.
  558.  
  559.  
  560. VIEWING THE MODEL
  561. -----------------
  562.  
  563.     Six preset views are available to the user. These are:
  564.  
  565.     View        Key
  566.  
  567.     Top        'T'
  568.     Underside    'U'
  569.     Front        'F'
  570.     Behind        'B'
  571.     Left        'L'
  572.     Right        'R'
  573.  
  574.  
  575. SPECIAL OPERATIONS
  576. ------------------
  577.  
  578. SUBSTITUTING (GLUING)
  579.  
  580.     If you dicovered that two of  your points share  the same coordinate
  581.     values,  you may want to  remove one of them.  This is done by first
  582.     searching for equal points  (as described above),  and then pressing
  583.     the 'G' key. Note that gluing when two equal points do not exist, is
  584.     no good.
  585.  
  586. FLIPPING A SURFACE
  587.  
  588.     Being able to flip a surface can be  useful many a time.  Exchanging
  589.     the  front  and back  colours of a  surface  can be  done with  this
  590.     function, but the main reason for incorporating it is this: Say that
  591.     you create a new surface,  only to find that you inserted the points
  592.     in anti-clockwise order,  thus making it hidden at the wrong angles.
  593.     One  solution could be to edit the colour codes  (exchange the first
  594.     and last bytes),  but a far cleaner approach  would be to  execute a
  595.     flip.  What this does,  is  simply to put  the  points  in an  anti-
  596.     clockwise  order  (relative to the input order).  Press 'K' for this
  597.     handy function.
  598.  
  599. CHANGING THE ORDER OF THE POINTS IN THE SURFACE
  600.  
  601.     Not  satisfied with  the order  at which  the points  appear in  the
  602.     surface?  Consider  your problems  solved!  Just press  'V' and  hey
  603.     presto! It has changed! Do you need this function? Probably not. But
  604.     life as a programmer sure isn't easy.  Just imagine having to put  a
  605.     function on every key  on a large,  never-ending keyboard. Functions
  606.     like this simply have to turn up once in a while.
  607.  
  608. MIRRORING
  609.  
  610.     Any  <type>  can  be  'mirrored',  i.e.  changing  the  sign of  the
  611.     specified coordinate(s) used by the <type>. Mirroring 'About X' will
  612.      change  the  sign  of  the  x-coordinates,  while  the  Y-  and  Z-
  613.     coordinated stay intact.  Example: You are  creating a  model  of  a
  614.     fighter aircraft,  and have  created  the left wing.  It would  be a
  615.     boring task to create the right wing from scratch, so what you do is
  616.     simply to CLONE the wing, and then MIRROR it 'About X'.
  617.     Note that  'About Z'  is not a  mathematically  correct  expression.
  618.     'About the XY-plane' would be far better, but I find  'About Z' more
  619.     intuitive,  in that you  see which  coordinate  that will be changed
  620.     without any harmful brainwork.  Press 'F6', 'F7' and 'F8' for X-, Y-
  621.     and Z-mirroring respectively.
  622.  
  623. SCALING
  624.  
  625.     Say you want to create St. Paul's Cathedral. That would fill quite a
  626.     few screens, wouldn't it?  A 3D insect would also be nice to be able
  627.     to create. But the Cathedral wouldn't be very surveyable at all, and
  628.     the  insect  would be very  hard to  edit because  of its less  than
  629.     impressing size.  Problems. What problems? You just have to make the
  630.     Cathedral small  and the insect large and scale them up or down when
  631.     you  are  pleased  with  their looks.  Some frequently  used scaling
  632.     percentages are available on various F-keys (see key overview),  and
  633.     you can input any  (within certain limits)  percentage  yourself  by
  634.     pressing 'Amiga-P'.
  635.  
  636. CREATING MODELS
  637.  
  638.     Pressing the '~' key at the main keyboard will give you an option to
  639.     create any of four 'predefined' models.  You will be asked for a few
  640.     parameters,  and ObEd will  create the models for you, complete with
  641.     points, surfaces and objects. The objects available are:
  642.  
  643.     BOX    You will be prompted for X-, Y- and Z-length from the centre
  644.         of the box. Simple, clean fun. Adds:
  645.             Box    Rectangle
  646.         Points      8        4
  647.         Surfaces  6        1
  648.         Objects   1        1
  649.  
  650.     PYRAMID    Enter X- and Y-length from the centre of the  bottom surface
  651.         as well as the height of the pyramid. Adds:
  652.             Pyramid     Triangle
  653.         Points      5        3
  654.         Surfaces  5        1
  655.         Objects      1        1
  656.  
  657.     PYRRAD    A  PyrRad  object a  pyramid   where all  the  surfaces  are
  658.         identical  as far  as size  is concerned.  You siply have to
  659.         enter  the radius of  the object,  i.e. the  length from its
  660.         centre to its corners. Adds:
  661.             PyrRad
  662.         Points      4
  663.         Surfaces  4
  664.         Objects   1
  665.  
  666.     CYLINDER
  667.         This is one handy object.  Entering the height,  radius  and
  668.         step value,  a cylinder  will be created.  The step value is
  669.         the number of 'pie parts'  the circle at the  top and bottom
  670.         will be divided into.  4 parts will result in a box,  and 10
  671.         will  result  in  something  that  may  be  mistaken  for  a
  672.         cylinder. Adds:
  673.             Cylinder      Disc
  674.         Points    2+2*STEPS    1+STEPS
  675.         Surfaces  3*STEPS    STEPS
  676.         Objects      1        1
  677.  
  678. NOTE:    STEPS is the step value as described above.
  679.  
  680.  
  681. MISC OPERATIONS
  682. ---------------
  683.  
  684. FINDING POINT
  685.  
  686.     It is often useful to find the first surface to include  the current
  687.     point. Pressing '/' will put this surface  at the top of the surface
  688.     display (making it 'current').  Repeatedly  pressing  this key, will
  689.     find all occurences of the point in the surface list.
  690.  
  691. CHECKING FOR UNUSED POINTS
  692.  
  693.     It isn't too hard to  imagine why  unused points are unwanted in the
  694.     point list. By pressing the '\' key,  the first of these will become
  695.     current. The search starts at the current point.
  696.  
  697. FINDING EQUAL POINTS
  698.  
  699.     As the reader may understand,  having stored two points with exactly
  700.     the same coordinates,  is highly undesirable.  Pressing the '=' key,
  701.     the two equal points (if any)  will be stored  in a special  buffer,
  702.     and their  point numbers will be  displayed at  the screen.  You may
  703.     then use  the  GLUE  command  to  delete one of  the points  without
  704.     destroying the object.
  705.  
  706. CHANGING THE PALETTE
  707.  
  708.     The author is the first to admit that  the default  colours make the
  709.     expression  'tasteless'  fit quite  perfectly.  Therefore,  a little
  710.     utility to  change the palette is included.  This works the same way
  711.     as any other palette modifier the user may have  experienced,  so no
  712.     detailed explantion should be needed.  Your new palette may be saved
  713.     for later use. The 'P' key opens the palette window.
  714.  
  715. RESETTING THE PALETTE
  716.  
  717.     If your choise of colours wasn't a lucky one, simply press 'SHIFT-P'
  718.     for getting the default colours instead.
  719.  
  720. CHANGING SPRITE COLOUR
  721.  
  722.     Sometimes,  seeing  the   sprites  is  difficult  because  they  are
  723.     displayed in the same (or similar) colour  as the  background image.
  724.     This  problem  is easily  avoided by  changing  the  colour  of  the
  725.     sprites.  Use  the  '.'  key  on  the  numerical  keyboard  for this
  726.     operation.
  727.  
  728. -----------------
  729. --- THE FLAGS ---
  730. -----------------
  731.  
  732. THE ALLMODE FLAG
  733.  
  734.     When this flag is set,  some  operations work  on the  enire  model.
  735.     These are:  Scale,  Move and Rotate. Press  'Amiga-M'  to turn  this
  736.     flag on and off.
  737.  
  738. THE SPITESOFF FLAG
  739.  
  740.     Setting this flag turns  the sprites off.  Press '0' on the  numeric
  741.     keypad to turn this flag on and off.
  742.  
  743. THE WIREFRAME FLAG
  744.  
  745.     Setting this flag puts the editor in wireframe mode, i.e. everything
  746.     will be displayed in wireframe. Press 'DEL' to turn this flag on and 
  747.     off.
  748.  
  749. THE SPITENUMBER OFF FLAG
  750.  
  751.     If you set this flag, the spites  will not  display the pointnubmer,
  752.     i.e. you will only see the crosshairs. 'BACKSPACE' will set or clear
  753.     this flag.
  754.  
  755.  
  756. -------------------------------
  757. --- USING THE MOUSE IN OBED ---
  758. -------------------------------
  759.  
  760.     Using  the mouse,  you can select most  of the  operations that  are
  761.     available from the keyboard. For a menu overview,  see below.  Other
  762.     mouse operations:
  763.  
  764.     * Clicking on the 'quit' icon will exit the program  after a request
  765.     * Clicking in the graphics window will select the  point closest  to
  766.       the cursor
  767.     * Clicking in the <type> panels will select <type>
  768.     * Clicking in the data panel will display an 'About' window
  769.     * Clicking on a colour will make it the surface's main colour
  770.     * A SHIFTed click  on a colour will  make it the  surface's  'shade'
  771.       colour
  772.  
  773. --------------------
  774. --- THE MENU BAR ---
  775. --------------------
  776.  
  777.     Remebering  all the  keys is  something of a  nightmare.  Therefore,
  778.     menus are available at the top of the screen to let  you choose some
  779.     of the most  frequently used commands  easily.  The  menu  strip  is
  780.     divided into 5 parts:
  781.  
  782. Menu    Submenu        Submenu            Comment
  783.  
  784. FILE
  785.     New                    New model
  786.     Load        Load Object
  787.             Load Palette
  788.     Save        Save Object
  789.             Save Source
  790.             Save Palette
  791.     Import                    Import binary
  792.     About
  793.     Quit
  794.  
  795. EDIT
  796.     New                    New <type>
  797.     Edit                    Edit <type>
  798.     Insert
  799.     Copy
  800.     Exchange
  801.     Delete
  802.     Move
  803.     Rotate                    Object or Model (AllMode on)
  804.     Clone
  805.     Buffer
  806.     Undo                    Undo last changes
  807.  
  808. VIEW
  809.  
  810.     Top
  811.     Underside
  812.     Front
  813.     Behind
  814.     Left
  815.     Right
  816.     Reset
  817.  
  818. SPECIAL
  819.  
  820.     Glue                    Two equal points->one point
  821.     Flip                    Turn surface upside-down
  822.     Mirror        About X
  823.             About Y
  824.             About Z
  825.     Scale        0.50
  826.             0.66
  827.             0.75
  828.             0.90
  829.             1.10
  830.             1.25
  831.             1.50
  832.             2.00
  833.             Input            Input scale percentage
  834.     Create                    Create new object
  835.  
  836. MISC
  837.  
  838.     Find Point
  839.     Unused
  840.     Find Equal
  841.     WireFrame                Flags
  842.     AllMode
  843.     Sprites
  844.     Palette        Edit
  845.             Reset
  846.  
  847.  
  848. --------------------------------
  849. -- THE UNAVOIDABLE GREETINGS ---
  850. --------------------------------
  851.  
  852.     This is no  fancy hardware-bashing euro demo.  In fact, it's  just a
  853.     boring  system-friendly  utility.  Still,  where  would the Amiga be
  854.     today  without the  greetings that  pop up on  every single piece of
  855.     software  these  days?  So  here's  my  little,  no-scrolling  list:
  856.     (Appearing in alphabetical order)
  857.  
  858.     Dag Lem        (_Hot_ in Spain, eh? Nudge, nudge)
  859.     Lars Haugseth    (The Gandalf of Amiga programming)
  860.     Morten Amundsen    (Gives the expression Party Animal a new meaning)
  861.     Paal Johansen    (Soon getting an A4000, you workaholic?)
  862.     Stian W Arnesen    (Deeply in love with the Amiga)
  863.     Stig A Olsen    (Intel inside, but still a cool dude)
  864.     Svein A Johansen(Nothing beats his party moonwalkings)
  865.     Tommy Rivrud    (Get rid of that 'beard', eh?)
  866.  
  867.     And lots of  greetings to everybody at the University of Oslo.
  868.