IRIT - the polygonal CSG solid modeler
BECAUSE IRIT IS LICENSED FREE OF CHARGE, I PROVIDE ABSOLUTELY NO WARRANTY,
TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT WHEN OTHERWISE STATED
IN WRITING, I GERSHON ELBER PROVIDE IRIT PROGRAM "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
YOU. SHOULD THE IRIT PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
NECESSARY SERVICING, REPAIR OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL GERSHON ELBER,
BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES,
OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR A
FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY GERSHON
ELBER) THE PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
This program is a batch based, polygonal CSG solid modeler. It reads
commands either from keyboard or file and execute their commands in order to
create new 3d polygonal objects. Full description of the commands can be
found in the irit.hlp file which is also available from the solid modeler by
typing 'help("topic");'. Try 'help("");'.
irit [-z] [file[.irt]]
-z : Print version number and current defaults.
The program can be configured using a configuration file named irit.cfg.
Note the version for unix (irit-unx.cfg) is different from the msdos one
(irit-dos.cfg) so rename to correct one to irit.cfg.
This is a plain ascii file you can edit directly and set the parameters
according to the comments there. executing 'irit -z' will show the
current configuration as read from the configuration file. In the msdos
system, this file can be in any directory which is in your path - the same
place as irit.exe is probably a good choice. In a unix environment the
current directory is been checked or if IRIT_PATH environment variable is
set, it is used as the full path (including postfix '/').
This program supports HERCULES and EGA/VGA type of display devices on msdos
and X11R3 on unix systems. On msdos its uses autodetect to select the right
device, and which can be overwrite in the irit.cfg file.
In msdos the program will use 80?87 if it detects one - again uses the
Turbo C 80?87 autodetect, or will run (much!) slower without it...
In msdos the program will use the mouse, if detected. If this detection
fails you can coerce it (to TRUE - exists, or FALSE) in the irit.cfg
configuration file. Mouse is always been used in X11 environment...
The program will read a regular command file if one exists which can be used
to initialize variables/aliases. The file will be searched as irit.cfg will,
and its name is set via the StartFile option in the configuration file.
A session can be logged into a file named LogFile in the configuration file.
see also the logfile command in irit.hlp.
When developing new model, it is extremely convenient to switch between the
solid modeler and an editor of your choice to edit the .irt file. The solid
modeler provides a way to fork to an editor of your choice to edit the
current .irt program you develop. Set EditPrgm (in irit.cfg) to the editor of
your choice, which should be small for fast access. Specify the full path to
that editor. Use the edit command in irit to call it. Only one argument is
given to the editor once forking to it - the .irt file name as given to the
edit command (see edit command in irit.hlp). You can alias the command to
make it even faster as it is done in the current iritinit.irt - irit
initialization file. The above is obviously helpful in msdos system only and
is disabled in the unix version (aliases are functional though).
Unix version only:
Add the following options to your .Xdefaults. Most are self explanatory.
The Trans attributes control the transformation window, while View control
the view window. SubWin control the subwindows within the Transformation
Once fired, the program opens three windows: view, status and input window
(Msdos version only. Unix version has no status window).
Commands are entered through the input window, objects are viewed in the view
window, and the status window is used as an auxiliary window as well.
All the commands are listed in irit.hlp file (you may want to print it),
which is available on line as described above. Some important commands are:
1. include("file.irt"); - will execute the commands in file.irt. Note includes
can be recursive up to 10 levels. To execute the demo (demo.irt) simply
type 'include("demo.irt");'. Another way to run the demo is by typing DEMO
(must be capitalized as this is an alias loaded via the iritinit.irt
initialization file - see the alias command in irit.hlp for more).
2. help(""); - will print all available commands and how to get help on them.
3. exit(); - close everything and exit irit.
Be careful. The operators are overloaded. This means that you can multiply
two scalars (numbers) or two vectors or even two matrices (!) with the same
multiplication symbol (*). The irit.hlp defines the way each operator is
overloaded. To get it on line type 'help("*");'
The best way I can think off, to learn this program (like any other
program...) is by playing with it. Print irit.hlp file and study each of the
commands available. study the programs (*.irt) given as well.
Input from keyboard (msdos) can be edited using full ine editing features:
1. Up arrow : retrieve last typed command (only as first keystroke!).
2. Left/Right arrows : to move left and right along the line.
3. Home/End : to move to beginning/end of line.
4. Delete : to delete character cursor is on.
5. Back space : to delete one char backward.
6. Insert : toggles insert/overwrite mode. Note cursor shape is modified.
7. Esc : clear the entire line.
8. CR : to accept line and quit.
These few lines are much of a manual... Lets see if I can think of some
1. Poly3d-h and poly3d-r are rendering and hidden lines removal programs.
Both assumes input data (such as dumped by gdump command) consists of
convex polygons only. if 'final' is your final geometry model you wish
to dump, issue the command 'final = convex(final)' which will ensure only
convex polygons in the output.
2. The unix version has very limited editing facilities. I found it much
easier to run it from an editor that can fork a shell and execute command
like gnu emacs.
O.k. if you do have any question, suggestion, or even want to report a bug
feel free to send me email (see below)
Feel free to make copies of this program, and distribute them FREE of
charge, provided that all this package is distributed.
I am not going to be responsible for any damage of any kind, that this
package may cause (I always wanted to say that...), but I hope you will
enjoy it as I did my best you will. At list I enjoyed writing it.
Gershon Elber[email protected]