Pryan -- A Mike Open Tools (MOT) library -- Mikael Bourges-Sevenier (c) 1997 mail : bourges@int-evry.fr phone: +33 1.60.76.46.74 +33 2.99.83.82.85 This library is released to public domain under the terms and conditions of the GNU public license. Among these, permission to use, to copy and to modify the code is granted to anyone for non-commercial applications. This code must not be redistributed if modified, contact the author (mail above) first. Idem if your application is commercial. 0. What is this ? ----------------- Pryan is a C++ library encapsulating GL orders. It is similar to OpenInventor and 100% compatible with its syntax. It supports OpenInventor file format and VRML 1.0 format. You can render 3D objects and move around your scene and zoom just by moving your mouse. With Pryan, you can use different kind of rendering, save a screenshot of your 3D world. Pryan uses heavily Qt and its signal/slot mecanism. Thus, you can combine Pryan's viewers and your favorite GUI to create a modeler for example. Pryan has a very fast mecanism to handle 3D objects made of polygons, lines, textures. It uses GL display lists. If you have OpenGL and an accelerated 3D card, this will be nearly real-time for complex objects. Pryan has been tested with Qt 1.2 and the QGLWidget. It has been tested on the following plateforms: - PC: P-90/16 Mb, P-200/32 Mb, under Linux, with Mesa 2.0 to 2.2, - SUN: SparcStation 5,10,20, UltraSparc 2, with Mesa 2.0 to 2.2, - SGI: Indy, Indigo 2, O2, Onyx, with OpenGL. All are under X11R5 or X11R6. For the currently available objects, Pryan is faster than OpenInventor for the same functionnalities and actions. 1. Installation --------------- The installation is quite easy I hope. But of course, you need to install Qt 1.2, Mesa 2.2 and doc++ 3.0 or later. doc++ is not required, it is needed if you want to modify the classes and to update the documentation in HTML or LaTeX form. Refer to these softwares for their installation for your machine. My way of installing these softwares is to compile them in my user directory and to set these environment variables: setenv MESAHOME path_to_Mesa_directory setenv QTDIR path_to_Qt setenv MOTHOME path_to_Pryan_directory setenv LD_LIBRARY_PATH ${MESAHOME}\lib:${QTDIR}\lib I use these variables in the Config file of MOT. This is particularly useful when you are not root of your machine an that you can not or don't wish to put these software under the /usr tree. The last variable (LD_LIBRARY_PATH) is where the system will find the shared libraries of these softwares. Ah yes, remember to always compile the shared libraries not the static ones! I will now talk about the specific installation procedure of Pryan which suppose you have install these librairies and set correctly these variables. Edit the Config file with your favorite editor (vi, emacs, ...) and checks the compiler options: compiler used : CPPDRIVER compiler flags: CPPFLAGS and paths: GL directory : GLDIR = where OpenGL is or Mesa, MOT directory : MOTDIR = the path where is the Config file, COOL directory: COOLDIR, not to be changed; it is included in MOTDIR, QT directory : QTLIB = where libqt.{a,so} is, GL lib directory: GLLIB, not to be changed; it is where libGL or libMesaGL is. There are some prerequisite: 1. you need to install Qt 1.2 (http://www.troll.no), 2. you need to compile the QGLWidget lirary in opengl directory of Qt's distribution, 3. you may need to compile and install Doc++ for the documentation. This excellent utility processes the C/C++ headers (.h) files and creates a HTML and LaTeX documentation. 4. do not forget to refer the Pryan's library path in your LD_LIBRARY_PATH: setenv LD_LIBRARY_PATH ${path to Pryan directory}/lib:$LD_LIBRARY_PATH To compile the Pryan library and examples type: gmake clean gmake To make the documentation with Doc++, type: gmake Doc This documentation is Pryan's objects documentation. You don't need to do that since it is already included in the doc directory in HTML form. To view it, use your favorite web browser and go to Pryan/doc/HIER.html. The documentation is in the directory report. It is in postscript: MOT.ps. Note that you may have a lot of warnings during the compilation. This is because some functions are declared but not implemented yet. If you use g++, you may have warnings at link stage because of the explicit template instanciation. If one knows how to do that better, please tell me! 2. Using the viewer ------------------- When your scene is displayed, you can click the left button (and hold it) and move the mouse to rotate the camera around the scene. To zoom, click on middle button. To have a menu of options click on right button. For those with a 2-mouse buttons, click on left and right buttons to simulate the middle button. Enjoy! 3. Comments, upgrades... ------------------------ Pryan tries to be extensible and as it is young, lots of improvements, of missing functions can be added. If you want to add or to correct any part of it, feel free to contact myself (bourges@int-evry.fr). I wish many of you, graphics fans, will contribute to this library and make it grow bigger and bigger. Pryan can be viewed as a building block for some higher level applications: modelers, animators, virtual reality engines... With the help of Qt, one can derive very powerful applications mixing 2D images and 3D world objects (that's what I do). Because of the signal/slot connection scheme in Qt, it is very easy to connect various objects for a complex GUI. I'm sure you will find a strong interest in using Qt and Pryan and you will build very interesting virtual reality applications. Keep me informed and promote freeware! And, remember: if you like it, if you use it, then please cite it! Mikael Bourges-Sevenier