home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / cad / pvcdos2a.zip / POVCAD.DOC < prev    next >
Text File  |  1993-05-08  |  36KB  |  917 lines

  1.              POVCAD 2.0a for DOS by
  2.                 Alfonso Hermida
  3.              Pi Square BBS (301)725-9080
  4.             CompuServe 72114,2060
  5.                [GraphDev Forum]
  6.                 5/8/93
  7.  
  8. NOTE: POVCAD requires a VGA graphics card and a mouse to run.
  9.  
  10.           POVCAD for Windows is also available.
  11.             
  12. -------------------------------------------------------------------------
  13. Copyright (c) 1993 by Alfonso Hermida.
  14. All rights reserved.  The program POVCAD.EXE is distributed "As is".
  15. The author assumes no responsibility for damages resulting from the use of
  16. this program.  The program has been tested but no software is "bug-free"
  17. so...use at your own risk!
  18. -------------------------------------------------------------------------
  19.  
  20. Distribution:
  21. Feel free to distribute POVCAD.EXE and it's companion file POVCAD.DOC for
  22. non comercial purposes.  Distributors may charge up to $5 for this program.
  23. If you wish to distribute this program with a comercial software or book
  24. please contact the author at the BBS number given above or by mail:
  25.        Alfonso Hermida, 9346 Kings Grant Rd, Laurel, MD 20723.
  26.  
  27. This program is distibuted as Shareware.  You may use this program for
  28. a period of 30 days at which you must either register this software or
  29. stop using it.  Registration entitles you to support thru the BBS.
  30.  
  31. Registration cost is only $15 and helps continuing work to improve this
  32. software.  To register send your check or money order to the above address
  33. with your name, address, phone number and a password(for BBS access).  Check
  34. at the end of this document for registration form.
  35.  
  36. --------------------------------------------------------------------------
  37.  
  38. THANKS!
  39. I want to take the opportunity and thank a lot of people and BBS that have
  40. helped POVCAD become such a success.  I would like to thank Albert Waltner,
  41. Peter Jack, Curtis Olson for Beta testing and all the helpful comments.
  42. Dan Farmer was kind enough to upload the file to COMPUSERVE.  Steve Anger
  43. gave me some help with the smooth triangle problem I was having (it turns
  44. out that the POVRAY version I was running had a bug!).  Alexander Enzmann,
  45. author of the Polyray raytracer (thanks!) was enthusiastic about adding
  46. support for Polyray users...(support is limited but it should improve with
  47. time.)  James P. Hawkins and Amanda Osborne did a great deal of testing also.
  48. There were also some great BBS such as:
  49.  
  50. * You Can Call Me Ray BBS (Illinois)
  51.    Bill Minus/Aaron Collins (SysOps)
  52.    (708)358-5611
  53.  
  54. * The Graphics Alternative BBS (California)
  55.    Adam Shiffman (SysOp)
  56.    (510)524-2780
  57.  
  58. * Trace of Reality BBS (Virginia)
  59.    Joe Liccel (SysOp)
  60.    [system is down at this time]
  61.  
  62. * Monsoon BBS (Maryland)
  63.    Sunil Gupta (SysOp)
  64.    (410)235-2365
  65.  
  66. In Europe: Raytech BBS - The UK's only Raytracing BBS
  67.    Paul Smith (SysOp)
  68.    +44 862 88340
  69.  
  70.  
  71. who helped me distribute my programs and overall support.
  72.  
  73. And for other specific thanks, check the BUG LIST at the end of this document.
  74. Finally, all of you who were so kind to register their copies.  This proves
  75. that Shareware is alive and well.
  76. ----------------------------------------------------------------------------
  77.  
  78.  
  79.  
  80. What's POVCAD?
  81.  
  82. POVCAD is a small solid object modeling tool to create scene files for
  83. raytracers.  It's based primarily on the POV(Persistence of Vision)
  84. raytracer written by the Persistence of Vision Group.  POV is a copyrighted
  85. freeware raytracer.  If you would like to get in contact with them,
  86. contact Compuserve (800)848-8990, GraphDev forum or call YCCMR BBS
  87. (708)358-5611, which is a raytracer specific BBS.  POVCAD also supports
  88. the Polyray raytracer by Alexander Enzmann.  The support is not complete at
  89. this point but a lot can be done.
  90.  
  91.  
  92. With POVCAD you're able to create visually the scene file and have a
  93. pretty good idea (geometry-wise) of how the objects are positioned in
  94. 3D space.  There is no support for textures and color visualization since
  95. POVCAD is a wire frame-based program.  Nor, you'll see the results of
  96. any constructive solid geometry operation (boolean operation..for short).
  97.  
  98.  
  99. POVCAD supports the following objects:
  100. * planes
  101. * cylinder
  102. * cone
  103. * sphere
  104. * ellipsoid
  105. * torus
  106. * box
  107. * height_field
  108. * Raw data files (loading)
  109. * Sweep (solid of revolution)
  110. * Extrude (operation on curves)
  111. * light_source/spotlight
  112. * camera
  113.  
  114. and operations such as union, difference,intersection and composite
  115. objects.  Textures can be selected from a list without need of typing.
  116. The scene view can be changed between isometric,YX,YZ and ZX.
  117. A session list shows the steps you took to create any image and you may
  118. select any of the objects from the list by clicking on it.
  119.  
  120. An interesting feature is the ability to create or read data files
  121. with path information for animation software.  You can create linear
  122. interpolated data, circular motion, parabolic, helix or just freehand
  123. mode, where you sketch the path with the mouse.  POVCAD does not do
  124. animation but it plots the path files so you can see how things look
  125. on the screen.  The data can be transformed like any object in POVCAD.
  126.  
  127. In the File menu, there is an option to save the session file and to
  128. Export to POV (that is to create the POV session file).
  129.  
  130. AN IMPORTANT NOTE:  All rotations and translations are absolute(measured
  131. from the origin).  Therefore, if an object has been translated to (1,1,1)
  132. and you change the x to 1.5, it will be (1.5,1,1) and not (2.5,1,1).
  133.  
  134. My best suggestion is that you play with it for a while to get a better
  135. understanding of the program.  
  136.  
  137.  
  138. What's NEW on version 2.0a ************************************************
  139.  
  140. 1) Ability to select objects with the mouse and then copy, move, 
  141.    copy/translate or copy/rotate it.
  142.  
  143. 2) POVCAD2 now reads 2 ASCII files: TEXTURES.DEF and COLORS.DEF.  
  144.    Modify and use these files to include additional texture and color names.
  145.  
  146. 3) The LIGHT object acts as a SPOTLIGHT also. Check "Creating Lightsources".
  147.  
  148. 4) Camera object is created and added to the POV file. (User must modify).
  149.  
  150. 5) Extrude operation on a curve - convert a curve into a collection of plates.
  151.    Each plate has 2 triangles.
  152.  
  153. 6) Grid spacing can be modified (check VIEW menu command)
  154.  
  155. 7) Support for Polyray raytracer.  This includes the EXPORT function.
  156.  
  157. 8) Status line indicating SNAP,GRID,POINTS,ISO,YX,YZ,ZX and CSG modes.
  158.    
  159. ********************************************************************************
  160.  
  161.  
  162.  
  163. Creating an Object
  164.  
  165. To create an object is easy.  Here are the steps:
  166.  
  167. 1) Click on the Object menu and click again on the object you would
  168.    like to create.  All objects start at the origin, except the sphere
  169.    which asks for the center coordinates.
  170.  
  171. 2) To rotate/translate or scale the object, click on Xform and select
  172.    the appropiate transformations.  The way this program was developed,
  173.    rotations are ALWAYS applied first THEN the translations.   Keep that
  174.    in mind.
  175.  
  176. 3) If you need to edit/delete an object, click on Session and click on the
  177.    object to be modified.  On the bottom right part, the current object
  178.    is shown, with it's texture.  If the object is already there,  you can
  179.    operate on it without having to click on Session.
  180.  
  181. NOTE:The LAST object created is ALWAYS the current object.  If you wish
  182.      to transform it, just go directly to Xform or Texture (if you want
  183.      to put a texture to it).
  184.  
  185.    To delete an object, either select it (thru the Session menu) or just
  186.    go to Edit if it's the last object drawn and click on Del.  You may use
  187.    the mouse to select an object too...read the section below titled
  188.    "Selecting objects with a mouse..."
  189.  
  190.  
  191. Textures and Colors
  192. To attach a texture or color, select an object (if you do not select an
  193. object, the current selected object will be used).  Click on TEXTURE or
  194. COLOR and select the color or texture.  
  195.  
  196. To change the texture, simply reselect the object and click on a new texture
  197. or color.
  198.  
  199.  
  200. Adding more TEXTURE and COLOR definitions
  201.  
  202. If you have created your own textures and colors, you may modify 2 ASCII
  203. files and save them in the directory where POVCAD resides.  The first one
  204. is "TEXTURES.DEF". It could look something like this:
  205.  
  206. my_new_texture
  207. acid_rain
  208. sweet_and_sour
  209.  
  210. The file basically consists of the "names" of the textures.  To include the
  211. definition in the scene, add the a line similar to #include "mytextur.inc",
  212. where the definitions are given.  In this example 3 new textures will be
  213. added to the texture list.  Texture names CAN NOT have spaces!
  214. i.e.  a_texture_name, myTexture are valid examples, but a texture name,
  215.       my Texture are not.
  216.  
  217. To do the same with the colors, use the ASCII file named "COLORS.DEF".
  218. The same applies to it.  The file must be in the same directory as POVCAD.
  219.  
  220. * IN THE DOS VERSION THESE 2 FILES ALREADY EXIST AND HAVE ALL THE PoV
  221.   DEFINITIONS.  POLYRAY USERS SHOULD MODIFY TO INCLUDE THEIR OWN.  INCLUDED
  222.   ARE TEXTURES.PI AND COLORS.PI (FOR POLYRAY USERS).
  223.  
  224. ***** To attach textures and colors to CSG objects check the *************
  225.        "Creating Constructive Solid Geometry" section
  226.  
  227. Creating Solids of Revolution (Sweep command)
  228.  
  229. 1) Click on the PointOff button (to enable point creation)
  230. 2) Select a View different than Iso (i.e. YX,ZX or YZ)
  231. 3) Click on the window and draw a contour (up to 50 points)
  232. 4) Select the Sweep command from the Objects menu
  233. 5) give a filename.ext (the data will be saved in RAW format)
  234. 6) indicate sweep angle and number of segments
  235.  
  236. * If you wish to erase the points and start all over use the Del Points
  237.   command in the Edit menu.
  238. * SnapOn forces the points to fall in the intersections of the grid
  239.   lines, while GridOff let's you select any place on the screen.
  240.  
  241.  
  242. NOTE: The format of RAW and SWEEP data files is:
  243.   x1 y1 z1 x2 y2 z2 x3 y3 z3
  244.   x4 y4 z4 x5 y5 z5 .......
  245.   ...... ect ..............
  246.  
  247. where each line represents a triangle.  Usually I use Steve Anger's
  248. RAW2POV program to create objects with RAW data files.  RAW2POV will
  249. optimize A LOT the image, while POVCAD will just convert the data to
  250. triangles and that's it! 
  251.  
  252.  
  253. Creating an EXTRUDEd object (saves data in RAW format)
  254.  
  255. The EXTRUDE command (under the OBJECT menu) works in the same way the
  256. SWEEP command does.  SWEEP rotates and copies a curve while EXTRUDE 
  257. displaces and copies the curve.  As an example, if you create a line and
  258. extrude it, it will look like a plate.  The EXTRUDEd object will be diplaced
  259. in an orientation perpendicular to the computer screen and in the 
  260. direction going into the monitor.  In other words, if you are currently in
  261. the YX view, the cuve will be EXTRUDEd in the +Z direction(into the screen).
  262.  
  263. To create an EXTRUDEd curve do the following:
  264. 1) select a view different from ISOmetric (YX,YZ or ZX)
  265. 2) click on the PointsOFF icon to enable point creation
  266. 3) create a curve by clicking on the drawing window
  267. 4) click on the OBJECT menu, then on EXTRUDE
  268. 5) give a name for the file to be created (RAW format)
  269. 6) enter the extrusion length
  270.  
  271. * The file will be saved in a RAW data format.  
  272. * Click on ISO to view the final object.
  273.  
  274.  
  275. Try this with EXTRUDE:
  276.  
  277. You can create letters with the EXTRUDE command that will look like sheets
  278. of metal that were bent to form letters.  As an example create a series of
  279. points to form the letter "S".  Use the EXTRUDE command and save it to a
  280. file.  Since that file is in RAW format, use Steve Anger's RAW2POV and make
  281. smooth surfaces.  The final product shows a nice "S" letter that looks like
  282. it was "rolled" instead of "bent" to form the letter "S".  You can have both
  283. effects.  POVCAD will generate a "bent" effect while RAW2POV can create both
  284. effects.
  285.  
  286.  
  287. Creating Constructive Solid Geometry
  288.  
  289. Let's use an example to explain this topic:
  290. We'll assume we want to create a cylinder with a hole in the middle.
  291. Since the operation is a difference:
  292.  
  293. 1) click on CSG and then select "difference".
  294. 2) create the cylinder and position it.
  295. 3) create a sphere (the hole) and position it.
  296. 4) Click on CSG and then "Close".
  297.  
  298. Close is the command to tell the program that the current CSG operation
  299. has ended.  The Session list would look like this:
  300.  
  301. DIFFR
  302. CYL ........
  303. SPH ........
  304. ENDF
  305.  
  306. Where:
  307. DIFFR   = difference operation
  308. CYL ... = cylinder definition and transformations
  309. SPH ... = sphere definition and transformations
  310. ENDF    = tells the program that this is where the difference operation
  311.       ends
  312.  
  313. Now let's assume that you want to create a union of 2 cylinders each
  314. one with a hole in it:  This is how the Session list would look like:
  315.  
  316.               comments:
  317. UNION                  1) union operation starts here
  318. DIFFR                  2) difference operation starts here
  319. CYL ....               3) cylinder #1
  320. SPH ....               4) sphere #1
  321. END                    5) clicked on CSG then on Close
  322. DIFFR                  6) Start another difference
  323. CYL ....               7) cylinder #2
  324. SPH ....               8) sphere #2
  325. END                    9) clicked on CSG then Close
  326. ENDF                   10)clicked on CSG then Close 
  327.              (click on TEXTURE now to add one to the object)
  328.  
  329. As you can see, the software uses END and ENDF to distinguish between
  330. intermediate CSG operations and the final CSG operation...in this case
  331. the UNION was the final and the DIFFR were the intermediate.
  332.  
  333. The same idea applies to all CSG operations.  Composite is not a CSG but
  334. it was the best place to put it. <grin>
  335.  
  336. The letters "CSG" (lower right hand side) will appear in white as long as 
  337. the current CSG operation is still in effect.
  338.  
  339. (POLYRAY users)
  340.  
  341. The previous example would look like this:
  342. (POVCAD)         (Polyray output will look _something_ like this)
  343. UNION                 object { 
  344. DIFFR                    object {
  345. CYL ....                    CYL ...
  346. SPH ....                  - SPH ...
  347. END                      }
  348. DIFFR                  + object {
  349. CYL ....                    CYL ...
  350. SPH ....                  - SPH ...
  351. END                      }
  352. ENDF                  }  
  353.  
  354. Polyray users must follow PoV's CSG format (...sorry!).
  355.  
  356.  
  357. * TEXTURES ON CSG OBJECTS *
  358.  
  359. To put a texture on a CSG object click on ENDF(using the Session command)
  360. to make it the current object (you'll see ENDF at the bottom right part
  361. of the screen) then click on TEXTURE to add the one that you want.
  362.  
  363.  
  364. Transforming CSG /Composite objects
  365.  
  366. At this point it is NOT possible to transform (XFORM) the whole set of
  367. objects.  You may XFORM any of the individual objects that compose a CSG
  368. object.
  369.  
  370.  
  371. Quick Comment
  372.  
  373. If you want to clip an object with 2 planes do the following:
  374. 1) Click on "intersection"
  375. 2) create the object to be clipped
  376. 3) create plane #1
  377. 4) create plane #2
  378. 5) rotate plane #2 so that the normal is facing oposite
  379.    to plane #1's normal.  (When a plane is created, the normal
  380.    is ALWAYS in the + direction of the axis.) Also you must translate
  381.    plane #2 so they're not in the same place. 
  382.  
  383.    Example:
  384.    plane#1: PLANE_Y,Translate_Y = .5 
  385.    plane#2: PLANE_Y,Translate_Y = -.5,Rotate_Z = 180
  386.    
  387.    Plane #1's normal is pointing in the +Y direction, while
  388.    plane #2's normal is in the -Y direction (due to rotation
  389.           about Z of 180 degrees)
  390.  
  391.    Any object placed in the origin will be clipped at Y=0.5 and
  392.    Y=-0.5 . Try it and see!
  393.  
  394.  
  395. Selecting objects with the mouse/ rotations and translations
  396.  
  397. There are different methods for selecting objects so that you may modify them.
  398.  
  399.    1) Clicking on SESSION
  400.       You may click on the SESSION command in the main menu.  This will show
  401.       a list of all objects that are currently in the database.  To select 
  402.       any of them, simply click on the line where it appears, then click on 
  403.       OK. Observe that on the lower right corner, the object selected will be
  404.       displayed(with it's texture).  Now you may use XFORM or click on EDIT
  405.       or use any of the next methods.
  406.  
  407.       The current object always will appear on the lower right corner of the
  408.       screen.  If you wish to reselect a new one, you may either, click on 
  409.       the SESSION command, or click on the scroll bar on the lower right 
  410.       corner to move thru the objects.  The one being shown is the current 
  411.       one.  Any editing command will apply to the current selected object.
  412.  
  413.  
  414.    2) Use of the left button(mouse)
  415.       To select an object, check that the PointsOn/OFF icon is OFF.  Now,
  416.       move the mouse cursor to a point near the center of the object that
  417.       you want to select.  Press, the left button.  The object selected will
  418.       be redrawn in a light color.  If the computer selected the wrong one,
  419.       simply move the mouse to another position near the center point of the 
  420.       object and click.  If still the computer selects the wrong one, you may
  421.       change the current view (Iso,YX,YZ,ZX) to find a better viewpoint.
  422.  
  423.       This command may select the incorrect object when various objects share
  424.       a common center point, or the object you want to select is behind
  425.       another one.  In those cases, change the VIEW and retry.  In the worst  
  426.       case, use the SESSION command to select the object.
  427.  
  428.       * SWEEP and RAW objects can't be selected with the mouse! use the 
  429.        methods explained on step 1) *
  430.  
  431.       * CONEs are selected by clicking on the apex or near it *
  432.  
  433.       Once you click on an object and select it, the object will be drawn in
  434.       a light color. If you click on REDRAW, all the objects will be drawn in 
  435.       black, but the current object will stay current.      
  436.  
  437.   3)  Use of the right button(mouse)
  438.       Once an object has been selected, you may wish to Move,Copy,Copy and
  439.       Rotate or Copy and Translate.  To do this, select and object.  The next
  440.       step depends on the command:
  441.        
  442.     a) Move
  443.        To move the current selected object, move the mouse to the 
  444.        position where you want the object.  Press the right button and 
  445.        select MOVE.
  446.        
  447.     b) Copy
  448.        To copy the current selected object, move the mouse to the 
  449.        position where you want the new object.  Press the right button 
  450.        and select COPY. The texture of the new object will be the same 
  451.        as the old object's.
  452.       
  453.     c) Copy/Rotate
  454.        This command is used to make multiple copies of an object, all of 
  455.        them rotated by a certain amount of degrees.  To use this command, 
  456.        select an object, then move the mouse to the a point that will 
  457.        become the center of rotation.  Click the right button.  Select 
  458.        Copy/Rotate.  Enter the angle between objects (in degrees).  Enter 
  459.        the number of copies to make, NOT including the original one.
  460.  
  461.     d) Copy/Translate
  462.        This command is used to make multiple copies of an object, each 
  463.        one at a certain X,Y,Z distance from the other.  Select an object.  
  464.        Press the right button.  Enter the number of copies and the 
  465.        displacements of the new objects.  The displacement is a 
  466.        cumulative effect, for example:
  467.  
  468.          if a sphere is at (0,0,0) and you enter x=.2,y=.1,z=.5 and enter 
  469.          3 copies then, object #1 will be at (.2,.1,.5) the next one at 
  470.          (.4,.2,1.0)  and the last at (.6,.3,1.5).  
  471.     
  472.        You may enter a value of zero for any of the coordinates.  If you 
  473.        put all zeroes, you'll get multiple copies in the same place!!!  
  474.  
  475.     e) Delete
  476.        This will delete the currented selected object.
  477.  
  478.  
  479. Creating PATH data files for your animations
  480.  
  481. This feature allows you to create data files of paths that may be
  482. used in animations programs.  Simply select the Path menu and select
  483. which curve to create.  These data files can be XFORMed in the same
  484. fashion as any of the objects supported by POVCAD.
  485.  
  486. To create a curve, select the corresponding curve and you'll be asked
  487. for a filename to save the data. This is done to reduce memory
  488. requirements on your system.  The following is a brief description:
  489.  
  490. 0) Load and SAVE
  491.    Load read any 3D point ASCII file and converts it into a path,
  492.    i.e. lines will be drawn to connect the points sequentially.  Your
  493.    data file SHOULD NOT have an extension *.PTH since this is used by
  494.    POVCAD to save the final path files.
  495.  
  496.    SAVE converts your data file, i.e. filename.ext into filename.PTH.
  497.    Initially, filename.ext was a set of 3D points that you created
  498.    yourself or thru POVCAD.  Since you may want to rotate, scale or
  499.    translate the data, POVCAD takes those operations and changes your
  500.    data.  In order to keep the original data intact, POVCAD saves the
  501.    new data with the PTH extension.
  502.  
  503.    The EXPORT to POV function in the FILE menu also creates the *.PTH
  504.    files.  If you haven't created any 3D objects and you don't need to
  505.    create a POV file, simply use the SAVE function in the PATH menu, to
  506.    save your animation files.
  507.  
  508.    To merge 2 or more data files, drop to DOS or load a texteditor
  509.    and simply append one file to the other to create more complicated
  510.    path data files.  It's that simple! (gasp!...I hope it works)
  511.  
  512.  
  513. 1) Freehand
  514.    Converts a set of points created on the screen to a path.  Maximum
  515.    number of points is 50.
  516.  
  517. 2) Linear
  518.    Click 2 points (more than that will be discarded) on the screen.
  519.    The routine will subdivide the line segment into a set of points.
  520.  
  521. 3) Circular
  522.    Creates a circular path.  No points have to be created with the
  523.    mouse.
  524.  
  525. 4) Parabolic
  526.    Follows the curve Y = aX^2 where a is the parabola coefficient
  527.    and the value of Y is the height.  The value of Z is zero but
  528.    you may create this curve from any view.  The routines will swap
  529.    the axis to reflect the view you're in.
  530.  
  531. 5) Helix
  532.    Creates a "spring".  The curve follows :
  533.     x = a cos(2*pi*t)
  534.     y = a sin(2*pi*t)
  535.     z = t
  536.     
  537.     Therefore Z is the "height" of the function.  This depends on the
  538.     current view setting.
  539.  
  540. After creating the curves you may use them to animate your raytraced
  541. images.  POVCAD simply creates the curves and shows them with the
  542. geometry so you have a better understanding of how things might look.
  543. Remember, you can scale, rotate and translate the data like any other
  544. object!  have fun!
  545.  
  546. Creating LightSources
  547.  
  548. To create a light_source object, click on the MISC command in the main
  549. menu, then LIGHT.  Enter the origin coordinates of the light_source (x,y,z).  
  550. To add a color to the light_source, select it (Session) then click on the
  551. Color command in the main menu.  If you wish to move the light_source, click
  552. on XFORM and modify the translate parameters.
  553.  
  554. The rotation angles do not apply to light_sources.  The scale factors will
  555. only affect the size of the light_source symbol (resembles a 3D axis) in
  556. POVCAD, POV does not require a scaling factor.
  557.  
  558. When the scene file is EXPORTed to POV, the definition of the light_source
  559. will also include the spotlight keywords commented out.  If you need to use
  560. your light as a SPOTLIGHT, simply erase the "//" characters and replace the
  561. question marks "?" after each keyword with a proper value. Look at this
  562. example:
  563.        ***** part of a scene created with POVCAD ******
  564. // LIGHT_SOURCE
  565. object {
  566.   light_source{< .1   .2   .3  > color Blue
  567.     // If you need a spotlight, use the statements below
  568.     // replace ? with proper values
  569.     //spotlight
  570.     //point_at < ? ? ? >
  571.     //radius ?
  572.     //falloff ?
  573.     //tightness ?
  574.  }
  575. }
  576.  
  577.  
  578. Grid Spacing command
  579.  
  580. The Grid helps you determine relative distances between points or objects.
  581. To show the Grid, click on the GridOff icon to enable the Grid.  Initially,
  582. the World area will be divided into 20 columns and 20 rows (always equal in
  583. number).  If you wish to modify this number, click on the VIEW menu and
  584. select the GRID SIZE command.  Enter an integer number.  This number will
  585. indicate the amount of rows AND columns, i.e.  10 indicates 10 rows and 
  586. 10 columns.  The higher the number the more precision you'll get.
  587.  
  588. Use the Snap to select only points which are in the grid.  Turning
  589. Snap OFF let's you select any place in the screen.  Experiment with it.
  590.  
  591. The letters "G" and "S" will appear highlighted on the lower right side if
  592. the GRID mode is on and if the SNAP mode is on, respectively.
  593.  
  594.  
  595. How does POVCAD save the objects?
  596.  
  597. POVCAD saves 3 files for every session: {(4) is optional }
  598. 1) *.CAD   This is the object definitions file
  599. 2) *.TEX   file with the textures of each object
  600. 3) *.WRL   world definition of the session
  601. 4) *.PTH   data files to be used in your animation programs
  602. 5) *.DEF   (not saved by POVCAD but read-only) Texture and color names.
  603.  
  604. *.CAD file structure:
  605. This is the format that POVCAD uses for those of you that want to create
  606. external programs to deal with them.  The file is an ASCII file with 
  607. double quotes at the begining and end of each statement:
  608.  
  609. rx,ry,rz = rotations about each axis (absolute)
  610. tx,ty,tz = translations on each axis
  611. sx,sy,sz = scale factors for x,y and z
  612.  
  613. **** IMPORTANT: Each parameter is separated by 1 space.  This is important
  614.        if you're writing utilities for POVCAD.  This space is REQUIRED.
  615.  
  616.  
  617. 1) Plane:    "PLN axis rx ry rz tx ty tz sx sy sz" 
  618.  
  619. Example:
  620. "PLN X 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  621.      
  622. 2) Cylinder  "CYL radius height rx ry rz tx ty tz sx sy sz"
  623.  
  624. Example:
  625. "CYL .2 1 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  626.  
  627. 3) Cone:     "CON radius height rx ry rz tx ty tz sx sy sz"
  628.  
  629. Example:
  630.    "CON .2 1 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  631.  
  632. 4) Sphere:   "SPH radius rx ry rz tx ty tz sx sy sz"
  633.   (tx ty and tz are the center of the sphere)
  634.   (sx sy sz must have the same value)
  635.  
  636. Example:
  637.    "SPH .5 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  638.  
  639. 5) Ellipsoid: "ELI xradius yradius zradius rx ry rz tx ty tz sx sy sz"
  640.  
  641. Example:
  642.    "ELI .5 .2 .3 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  643.    
  644. 6) Torus:     "TOR radius_major radius_minor rx ry rz tx ty tz sx sy sz" 
  645.  
  646. Example:
  647.    "TOR .7 .2 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  648.  
  649. 7) Box:       "BOX rx ry rz tx ty tz sizex sizey sizez"
  650. (the Box is a unit cube that has been scaled to size)
  651.  
  652. Example:
  653.    "BOX 0.0 0.0 0.0 0.0 0.0 0.0 1 2 .1"
  654.  
  655. 8) HeightField "HFL filename.ext rx ry rz tx ty tz sx sy sz"
  656. (POVCAD draws a pyramid to represent it, with dimensions x=1 y=1 z=1, 
  657.  so it must be scaled properly.  Check POV's docs on height_field.)
  658.  
  659. Example
  660.    "HFL mountain.gif 0.0 0.0 0.0 0.0 0.0 0.0 1000 1000 3245"
  661.  
  662. 9) RAW: "RAW filename.ext rx ry rz tx ty tz sx sy sz"
  663.    (Consider using Steve Anger's RAW2POV, it's more efficient. Don't
  664.     say I didn't tell you about it!)
  665. Example:
  666.     "RAW sweep.dat 0.0 0.0 0.0 0.5 1.3 0.0 1 1 1"
  667.  
  668. 10) Sweep
  669.     (same as RAW only that the SWP keyword appears instead of RAW)
  670.  
  671. 11) Extrude 
  672.     (same as RAW)
  673.  
  674. 12) Path
  675.     "PTH filename.ext 0.0 0.0 0.0 0.0 0.0 0.0 1 1 1"
  676.     This command points to a file with the format:
  677.      p1.x p1.y p1.z
  678.      p2.x p2.y p2.z
  679.      ....ect .....
  680.     
  681.     which was created with POVCAD or that you made up yourself.
  682.  
  683. 13) Light Source
  684.     "LTS 0.0 0.0 0.0 X Y Z .25 .25 .25"
  685.     
  686.     Comments: 
  687.      * The first three numbers are not used at all.
  688.      * X Y Z refer to the light source position
  689.      * the three .25 values are scaling factors that only affect
  690.        the drawing on POVCAD.   You may change those numbers to
  691.        suit your needs by using the XFORM command (scale x,y,z).
  692.      * The light_source color is in the *.TEX file.
  693.  
  694.  
  695. The *.TEX file structure:
  696. The *.tex file has a line for every item in the *.cad file.  Some places
  697. may be empty but the file length is the same as the *.cad file.  If you
  698. created light_sources, the colors will appear here also.
  699.  
  700. The *.WRL file structure:
  701. This file has 4 values (if it's not found in your directory, POVCAD
  702. assumes a world definition of (-1,-1)-(1,1) ):
  703.  
  704. WXleft  WYbottom
  705. WXright WYtop
  706.  
  707. These values correspond to the YX plane view.
  708.  
  709. The *.PTH file structure
  710. This is a straight ASCII file with a list of 3D points:
  711.  
  712. p1.x p1.y p1.z
  713. p2.x p2.y p2.z
  714. ... ect...
  715.  
  716. The data has already been transformed by any operations you might have
  717. done inside POVCAD.
  718.  
  719.  
  720. TEXTURES.DEF and COLORS.DEF files
  721.  
  722. These files consist of additional texture and color names not 
  723. included in POVCAD.  Both files follow the same format: 1 name per line.
  724. POVCAD will automatically load them if present in POVCAD's directory.
  725. To facilitate their use, sort them before using with POVCAD.
  726.  
  727.  
  728. Other Stuff
  729. --------------------------------------------------------------------
  730. Limits
  731.  1) At this point up to 100 objects may be created.  You may do complicated
  732.    objects by MERGEing files.  This will change on future versions.
  733.  
  734.  2) All files are saved and read in the current directory.  Due to the user
  735.    interface limitation.
  736.  
  737.  3) There is a limit in size for TEXTURES.DEF and COLORS.DEF of roughly
  738.     150 names on each.  You may modify and later sort the names for easier
  739.     access.  If file is larger, the extra names will not be read.
  740.  
  741.  4) When selecting the OPEN command to read a data file, the list of data
  742.     files (*.CAD) can be up to 50 files.  My suggestion is to work one model
  743.     at a time and then save it to some other directory, while in DOS.
  744.  
  745.  5) VGA mode and a mouse are required.  The code was compiled for a 286 with
  746.     emulation library (no coprocessor required).
  747.  
  748. CSG/COMPOSITE Objects
  749. You can not XFORM the whole CSG/COMPOSITE object...you may XFORM any of
  750. the components.
  751.  
  752. World Coordinates Definition:
  753. POVCAD starts with (-1,-1)-(1,1) => (lowerleftcorner)-(upperleftcorner).
  754. Click on View and then World to change that or use the ZoomIn/Out icons
  755. to scale up or down.  When you ZoomIn the world = world/scalefactor and
  756. when you ZoomOut the world = world * scalefactor.
  757.  
  758. Pan
  759. You can Pan(scroll) in all direction by clicking on the arrows.  You may
  760. change the Pan Step Size to move faster or slower. Experiment with it.
  761.  
  762. Copy (from the Edit menu)
  763. The Copy function will create an exact copy of the current object. That
  764. means that it will be also in the SAME place as the original.  Then XFORM
  765. will be shown and select the transformation necessary to put the new object
  766. where it should be.  Click on redraw to refresh the screen if necessary.
  767.  
  768. Files
  769. The Export to POV creates a POV format file of the current scene.  The
  770. default name is POVCAD.OUT...the name can be changed.  It also creates
  771. any path files (*.PTH) that are in memory.
  772.  
  773.  
  774. Your Suggestions
  775. I do welcome your comments and suggestions!  Registered users have a
  776. better chance of seeing their comments incorporated in the program.
  777. If you like it or not let me know!
  778.  
  779.  
  780. BUG LIST (ugh!) [Check Pi Square BBS for the latest updates!]
  781.         [Windows version....DOS version starts at 5/2/93]
  782. -------------------------------------------------------------------------
  783. Ver 1.0a 2/8/93   (thanks to Bill Martin!)
  784.   - (fixed) error in height_field definition (was totally wrong!)
  785.  
  786.   - added "object { }" and "color" keywords to light_source object
  787.  
  788.   - error on cone definition (not sure what the problem is :( )
  789.  
  790. Ver 1.0b 3/27/93
  791.   - (fixed) You may press [OK] on the SESSION windows without having done
  792.     a selection. (the program used to crash)
  793.  
  794.   - Cone_Y was changed to QCone_Y since Cone_Y was used in an old version
  795.     of the SHAPES.INC include file.  If you have the old version, replace
  796.     QCone_Y with Cone_Y.
  797.  
  798.   - (fixed)The 3D axis was not appearing at the beginning of the program.
  799.  
  800.   - The name of the file now appears at the top of the Window (caption).
  801.     If no file is present, the caption "POVCAD version#" will appear.
  802.  
  803.   - When a POV file is created with the EXPORT function, the name of the
  804.     file, date and time of creation will appear on the top.
  805.  
  806.     (thanks to Phil Long!)
  807.   - (fixed) The copy function was not copying the texture to the new object.
  808.  
  809.   - (fixed) When opening the texture window and color window, you may click
  810.     on the texture or color word to accept it...no need to click on [OK].
  811.  
  812.     (thanks to Bill Martin!)
  813.   - I added a scroll bar at the bottom right area of the screen, near the
  814.     current object and texture info box.  Once an object is created, it will
  815.     appear in the info box.  If you have more than one, simply scroll thru
  816.     each one...no need to use the SESSION dialog box anymore unless you want
  817.     to see more than one object at a time.  The object that appears in the box
  818.     is the current object and may be XFORMed at any time.
  819.  
  820.     (thanks to Peter Jack!)
  821.   - (fixed) Light source was not accepting negative numbers
  822.  
  823. Ver 1.0c 4/2/93
  824.     (thanks to Neil Clark and Kevin Luck!)
  825.   - (fixed) The "SAVE AS.." command was not working properly.
  826.  
  827. Ver 2.0 4/10/93
  828.     (thanks to Phil Long!)
  829.   - Modified RAW data output (format).  Sometimes only "." would appear!
  830.     The new format is "#.###E##".
  831.  
  832.   - (fixed) Bug in the SWEEP command.  The command worked ok only on the YX
  833.     view...the others would give incorrect swept images.
  834.  
  835.     (thanks to Amanda Osborne!)
  836.   - If you create a RAW data file with any other program, be sure to check
  837.     that the first line doesn't have text or an empty line.  If it does,
  838.     POVCAD chokes.  I'll try to check for it on a future minor release.
  839.  
  840. Ver 2.0a 4/24/93
  841.   - (fixed) bug on Open command.  POVCAD would choke if texture (*.tex) file
  842.     was not available.
  843.  
  844.   - added support for the Polyray raytracer.  EXPORT works for PoV and
  845.     Polyray.
  846.  
  847.   - added a viewpoint definition window (similar to PoV's camera).
  848.     It can be found in the MISC menu.
  849.  
  850.   - CSG operations DO NOT work for Polyray at this point.
  851.  
  852.   - modified Export to POV routine to eliminate all rotate <0 0 0>,
  853.     scale <1 1 1>, or translate<0 0 0>...they are not needed.
  854.  
  855.   - more experimentation with the CONE_Y definition...hope it works.
  856.  
  857. Ver 2.0a 5/2/93
  858.   - DOS version was finished.  Similar to Windows version.
  859.  
  860. Ver 2.0a 5/4/93
  861.   - added CSG support for Polyray 
  862.     (thanks to James P. Hawkins!)
  863.   - SWEEP command was bombing out if not points were created.
  864.  
  865. Ver 2.0a 5/8/93
  866.   - added the DELETE icon when the right button is pressed.
  867.   - Incremented point creation limit from 25 to 50.
  868.   - faster scrolling by adding 2 more icons to simulate "page up"/"page down".
  869.     (thanks to Peter Jack!)
  870.   - Fixed bug in the scroll function.   
  871. ------------------------------------------------------------------------
  872.  
  873.     REGISTRATION FORM FOR POVCAD 2.0a  (c) Alfonso Hermida 1993
  874.                DOS VERSION
  875.         COMPLETE THE REQUIRED INFORMATION
  876.             Send check or money order to
  877.              Alfonso Hermida
  878.                9346 Kings Grant Rd
  879.              Laurel MD 20723
  880.  
  881.  
  882. Name   :_________________________________         Date:_________
  883.  
  884. Address:________________________________________________________   
  885.  
  886.     ________________________________________________________
  887.  
  888.     ________________________________________________________
  889.  
  890.  
  891. Phone  :__________________________________
  892.  
  893.  
  894. Your registration entitles you to support thru Pi Square BBS.  Write
  895. a temporary password to add your account to the BBS:
  896.  
  897. BBS password: _________________________
  898.  
  899.  
  900. Registered users of a given version do not have to register for minor 
  901. revisions. For example, if you registered version 1.0, then 1a,1b,1c are 
  902. minor revisions, and version 2.0 will be a major revision.
  903.  
  904. Registration  fee:  Windows version users .......... $ 0.00
  905.             New user........................ $15.00 (USA).
  906.  
  907. Would you be interested in the source code?  Yes[  ]   No[  ]
  908. (written in Borland C/C++ 3.1)
  909.  
  910. Comments:__________________________________________________________
  911.  
  912. ___________________________________________________________________
  913.  
  914. ___________________________________________________________________
  915.  
  916. ----------------------------------------------------------------------
  917.