home *** CD-ROM | disk | FTP | other *** search
-
- ╔══════════════════════════════════════════════════════════════════════════╗
- ║ ║
- ║ ISoft D&M ║
- ║ POB. 5517 ║
- ║ Coralville IA 52241 ║
- ║ U.S.A ║
- ║ ║
- ╚══════════════════════════════════════════════════════════════════════════╝
-
- *******************************************************************************
- * 3dLIB *
- * 3dLIB - 3D Graphic objects library for Turbo-Pascal Programmers. V1.7 *
- * Last Update : Mar. 15, 1992. *
- *******************************************************************************
-
- *******************************************************************************
- * FILE - LIST *
- *******************************************************************************
-
- The distribution package contains the following files :
-
- * .PAS - Pascal sources :
- CTM3D .PAS - Current Transformation Matrix definition.
- PROJECT3.PAS - Projection (3D -> 2D) unit.
- HDR3D .PAS - Header to 3D structures.
- RTOBJ .PAS - 3D Wire-Mesh objects.
- DEMO3D .PAS - A demo program - Dos.
- DEMO3DW .PAS - A demo program - Windows.
- * .3D2 - Demo OBJ3D Type object files :
- 3 .3D2 - A 3 dimensional "3" character.
- BOX .3D2 - A 3D box.
- D .3D2 - A 3 dimensional "d" character.
- PROP .3D2 - A 3D Propeller.
- PYR .3D2 - A Pyramid.
- SUPROP .3D2 - Another 3D Propeller.
- TRAP .3D2 - A 3D Trapeze.
- * .3DS - Demo ComplexObj type object files.
- * .3DD - Demo object definition files.
- 3DLIB .DOC - This file.
- 3DC .EXE - M3D to PAS source file translator.
- 3DCW .EXE - Windows Hosted MDI M3D to PAS generator, and animator.
- 3DC .DOC - 3dC translator documentation.
- 3DA .EXE - 3dA Macro Animator (Interpreter) for the Dos environment.
- 3DO .EXE - 3dO object compiler - Dos.
- 3DO .DOC - 3dO object compiler documentation.
- * .M3D - Sample macro programs.
- DEMO3D .EXE - Demo 3d animation program - Dos.
- DEMO3DW .EXE - Demo 3d animation program - Windows.
- PROGRAMS.TXT - ISoft D&M shareware products description.
- 3DLIB .REG - 3dLIB registration file.
- 3DLIB .RES - 3dLIB resource file for windows programs.
- 3DCW .HLP - 3dCW online windows help file.
- EGAVGA .BGI - BGI driver for EGA/VGA.
-
-
- *******************************************************************************
- * Why Register *
- *******************************************************************************
-
- 3dLIB is a shareware product, if you find this product valuable,
- please register it. This section describes the reasons you should register.
-
- By registering you will receive a diskette with the latest 3dLIB version,
- the 3d environment program, for WYSIWYG object creation, the complete source
- code for the 3d environment program, and - you will help us to create the next
- version of 3dLIB - that will include even more features then the features that
- are currently available!, we might even add YOUR enhancement requests!
-
- *******************************************************************************
- * Notice *
- *******************************************************************************
-
- Please notice that from V1.7 the 3dWC program needs the BWCC DLL supplied with
- Borland Pascal 7.0 or Turbo Pascal for Windows. (As well as some other
- packages), The 3dLib package is distributed in several forms - If you
- downloaded your package from a BBS or archive site, this file will NOT be
- included in the distribution package - it is assumed that you have this
- DLL. (This is done in order to minimize your download expenses).
-
- *******************************************************************************
- * What's New *
- *******************************************************************************
-
- In version 1.7 the help facility of the 3dCW program can be activated from
- the menu, not just from the toolbar.
-
- From this version the extremly important feature of having the author's
- picture in the background of the 3dCW program is added. In this picture the
- author is seen in his Alfa-Romeo Spider 2000. Admit it - this is a feature
- no other 3d graphic library (how many are there?) can offer you.
-
- The Options|Text Color option in the 3dCW program now works properly.
-
- The help database was extended, and received usefull titles in this
- version.
-
- The 3dCW program was converted to work with Borland's BWCC DLL.
-
- Added Help|Using help option in the 3dCW program.
-
- The 3dO object compiler now supports the creation of complex objects, as
- well as simple objects. (Added a complexObject statement to the 3DD langauge).
-
- The SimpleObject statement of the 3DD langauge (3dO object compiler..) now has
- a new optional parameter - NOGEN.
-
- ====
-
- In version 1.6 3dCW users can set the font of the edit window.
-
- The Dos and Windows source library files are combined, and only the
- different parts are seperated by {$ifdef}s (conditional compiles).
-
- Added support for BP7, and upgraded the utilities to BP7.
-
- 3dCW was converted to be a MDI program, with the goodies of a toolbar, etc.
-
- The 'w' and 'b' are handled as they should be in the 3dCW animator from
- this version. (A bug fix).
-
- Added the 3dO object compiler program, that helps with the creation of
- 3d objects from object definition files described in the new object
- definition language. (please refer to 3DO.DOC).
-
- ====
-
- In version 1.5 the 3dC and 3dCW programs generate a getClassName function
- for the generated windows.
-
- Added Animate Command to the 3dCW program, this way macros can be prototyped
- before they are translated into source code.
-
- ====
-
- Version 1.4 adds the 3dA program - an animator for .M3D macro programs,
- in the dos Environment.
-
- Version 1.4 also adds the Windows Hosted 3dCW program - A macro translator
- that runs in the Windows environment.
-
- This version was tested with Turbo Pascal for Windows V1.5 .
-
- ====
-
- Version 1.3 adds the 3dLIB.RES resource file for use in Windows programs
- generated by the 3DC program.
-
- 3dC generated programs include a menu that allows them to be re-animated and
- closed.
-
- ====
-
- Version 1.2 adds support for Turbo Pascal for Windows programmers by including
- a second set of pascal code sources for this compiler.
-
- The supplied 3dC macro compiler has been enhanced to produce code for both
- compilers, by using a switch on the command line. Please notice - The
- same macro source files can be translated into Turbo Pascal 6.0 and
- Turbo Pascal for Windows code, with no change in the macro definition!
-
- The supplied 3dC macro compiler implemented the z, b and w commands that
- were omitted from version 1.1 because of time constraints.
-
- *******************************************************************************
- * INTRODUCTION *
- *******************************************************************************
-
- 3dLIB is a library of pascal units that allows Turbo-Pascal programmers to
- write applications that display and animate 3D wire-mesh objects. The
- library is based on a project developed since 1984 on different platforms.
-
- This package supports both Turbo-Pascal for DOS and Turbo Pascal for Windows.
-
- A package called 3D120 is distributed by ISoft D&M that
- includes a graphic editor, macro interpreter and pascal translator to
- create and use 3D objects. It is highly recommended that any programmer
- trying to use this library will use the 3D program to create
- objects, and understand the animation abilities of the library.
-
- For more help - please consult the provided on-line help database, from
- within the 3dCW program.
-
- *******************************************************************************
- * OBJECTS *
- *******************************************************************************
- The 3D objects are defined as the following TP object-structures :
-
- *******************************************************************************
- * BaseObject *
- *******************************************************************************
- baseObject - defined in the RTOBJ.PAS file, this is the "dummy"
- ancestor object class of the 3D-objects, such an object has a CTM (called
- myCTM), a color, a center of gravity 3D point (location), and other display
- attributes, in order to achieve better animation results, a scrPntUpdt
- boolean variable is used to indicate if the screen 2D points of the
- object has to be re-calculated from the 3D representation.
-
- The object uses a 4X4 "transformation matrix" to represent itself in the
- 3D universe, the move, translate, scale, allScale, rotate, goto3dPos,
- setToOrigin, calcLocation and deleteTransform methods are used to update
- that matrix (the Current Transformation Matrix).
-
- The load, save, writeMe, and readMe methods are used to store and retrieve
- a 3D object from a storage device (a disk..), and the open and close methods
- are used to construct, and destruct the object. The show, hide and paint
- methods display, or erase the object on the 2D screen. One more interesting
- method is the updateScreenPoints method, that transforms the 3D object
- representation to the 2D screen.
-
- *******************************************************************************
- * obj3D *
- *******************************************************************************
- obj3D is a descendant object of the baseObject class, this is a simple
- wire-mesh object, that is built from an array of maxPoints points (change
- this constant in the HDR3D.PAS file to create bigger, or smaller objects)
- in the 3D universe, an array of maxLines lines (a line is a segment in the
- 3D universe that connects 2 3D points), another array holds the 2D screen
- points of the object, calculated from its 3D representation, and the CTM.
- Another interesting aspect of this object is the use of 2 more matrices,
- the reverseRot, and unReverseRot CTM objects, that are used to hold only the
- reverse, and counter reverse of the rotation transformations, these are used
- by complex objects that contain several obj3D objects, where some of them
- has to be rotated, scaled and translated around an arbitrary point in the
- 3D universe, which is not there center of gravity (frame - reference).
-
- This object is refered as simple object in some places in the provided
- documentation.
-
- *******************************************************************************
- * complexObj *
- *******************************************************************************
- The RTOBJ.PAS file contains the definition of the complexObj 3D object,
- this is an object that contains a maxSubObjects (defined in that file)
- array of simple wire-mesh obj3D objects. This object class sometimes
- referred to as the "super - object", allows the user to create complex 3D
- objects that has a common frame - reference (center of gravity), an example
- of such an object might be a Robot, that has a center of gravity, and is
- built of some sub objects that must be able to be transformed both with the
- frame - reference, and by themselves.
-
- The RTOBJ.PAS (for - RunTime object) unit file contains the definition of
- the baseObj, obj3D and the complexObj classes.
-
-
- *******************************************************************************
- * PROJECTIONS *
- *******************************************************************************
-
- The PROJECT3.PAS file contain the code that transforms objects and points
- from the 3D universe, to the 2D coordinates.
-
- Two 3D -> 2D transformations are supported, axonometric projection, and
- perspective projection. This is a short explanation of the difference
- between these 2 projections :
-
- A : axonometric projections, no perspective due to
- distance is performed, the general way
- we can look at the coordinate system is as
- follows :
-
- | z axis
- |
- / \
- x axis / \ y axis
-
- B : perspective projections : the normal eye perspective
- projection is performed, we can look at the 3d
- universe we are referring to as a cube of
- 1000 x 1000 x 1000 integer locations, with
- the x axis, and y axis parallel to the screen
- x, y axis respectively, and the z axis going into
- the screen.
-
- we will look at the coordinate system as follows :
-
- │ Y axis
- │
- Z axis x------ X axis
-
- These units contain a calcPoint procedure that receives a 3D point, and
- transforms it to a 2D screen coordinate, the setPerspective,
- resetPerspective and togglePerspective change from perspective projection
- to axonometric projection, and vice versa.
-
- *******************************************************************************
- * CTM *
- *******************************************************************************
-
- CTM3D.PAS is the file that defines the current transformation matrix that
- is used to position the 3D objects in the universe. The CTM is a 4x4 matrix
- that is multiplied (from the right) by each point of the 3D object whenever
- a new location is desired for the object.
-
- This unit defines all the transformations that can be applied and used
- by a CTM, like rotate, scale, translate etc..
-
- *******************************************************************************
- * 3D2 FORMAT *
- *******************************************************************************
-
- The obj3D object files are files of type real, that has the following
- structure :
-
- 1 Real entry : number of 3D points. (We will call in numOfPoints)
- numOfPoints entries that contain the following information :
- 1 Real Entry : X location in the 3D universe.
- 1 Real Entry : Y location in the 3D universe.
- 1 Real Entry : Z location in the 3D universe.
- 1 Real Entry : number of lines. (We will call it numOfLines)
- numOfLines entries that contain the following information :
- 1 Real Entry : 3D Point Number of "From" edge of the line.
- 1 Real Entry : 3D Point Number of "To" edge of the line.
-
- Please refer to the OBJ3D.README method that deals with reading this
- 3D file format.
-
- To Create object of this kind - Please use the 3dO object compiler provided
- with this package, or the 3D environment program available in a different
- package, or with the registered version.
-
- *******************************************************************************
- * 3DS FORMAT *
- *******************************************************************************
-
- The complexObj object files are files of real type that have the
- following structure :
-
- 1 Real Entry : Number of subobjects the complexObj contain (We will
- call it numOfChilds)
- numOfChilds entries that have the same structure as simple 3D2 files.
-
- To Create object of this kind - Please use the 3dO object compiler provided
- with this package, or the 3D environment program available in a different
- package, or with the registered version.
-
- *******************************************************************************
- * Warranty *
- *******************************************************************************
-
- There is no warranty what so ever, The package is supplied as is,
- The distributor (ISoft D&M), or the author (Loewy Ron), are not,
- and will not be responsible for any damages, lost profits,
- or inconveniences caused by the use, or inability to use this package.
- The use of the package is at your own risk.
- By using (or attempting to use) the package you agree to this.
-
- *******************************************************************************
- * General *
- *******************************************************************************
-
- 3dLIB is distributed by ISoft D&M, P.O.B. 5517 CORALVILLE IA 52241, U.S.A.
-
- 3dLIB is (c) copyrighted by Loewy Ron, 1991,93.
-
- 3dLIB is a shareware package, please register your copy.
- To register your copy of 3dLIB please refer to the supplied
- 3DLIB.REG file.
-
- Other programs distributed by ISoft D&M are described in the supplied
- PROGRAMS.TXT file.
-
- *******************************************************************************
- * Contact *
- *******************************************************************************
-
- Please contact :
-
- ISoft D&M,
- P.O.B 5517
- Coralville IA 52241,
- U.S.A
-
- To contact the author directly :
-
- Contact : Loewy Ron,
- 9 Haneveem st.
- Herzeliya, 46465
- ISRAEL.
-
- *******************************************************************************
- * Credits *
- *******************************************************************************
-
- 3dLIB was written using Turbo Pascal 6.0 & 7.0, as well as
- Turbo Pascal for Windows 1.0, 1.5 and Borland Pascal with objects 7.0.
- These products are trademarks of Borland international.
-
- Windows 3.0 and Windows 3.1 are trademarks of Microsoft Corp.
-
- The Borland Brief v3.1 editor was used to write these programs.
-
- The windows help file was created using the help development kit v2.0
- by Loewy Ron.
-
- The Author's picture (in the 3dCW program) was taken by Allison Bially.
-
-
-