Open Inventor:
However, Inventor is more than a 3D object file format; it is a complete toolkit for writing interactive, 3D applications.
We have found that in many cases, Inventor programs run FASTER than the original GL program, and that the programmer productivity increases easily outweigh the overhead of the toolkit.
Every SGI machine is shipped with the libraries needed to run Inventor applications (they are part of the inventor_eoe installation subsystem); users that want to run Inventor applications on SGI machines do not need to pay anything extra.
Inventor 2.0 also supports a special option for nodes called alternateRep. It can store a scene graph composed of standard Inventor nodes which will be rendered as a stand-in for your unrecognized node. During writing, the node or engine is written back out. Note that this mechanism works only with Inventor 2.0 files; unrecognized nodes in an Inventor 1.0 file will still generate a read error. This mechanism allows user subclassed nodes to be exportable, renderable, and re- usable.
Inventor programs that contain a lot of IRIS GL code or that made extensive use of Inventor subclassing will be more difficult to port, since they will have to be ported to OpenGL and since the internal structure of Inventor underwent some major changes.
IRIX IRIS Inventor Version -------------------------------- 3.3.* | (Inventor is not available for IRIX 3.*) 4.0.* | 1.0.1 5.0.1 | (bad release... do not use) 5.1.* | 1.1.2 5.2.* | Open Inventor 2.0 (1.1.2 on VGX(T)/GT(X)/PI)
To re-install 1.1.2, you will need to use the 1.1.2 CD* to install 1.1.2 into a different location (so as not to ruin 2.0). Please note that you will have to change the Makefiles of programs that will compile and link with 1.1.2 (-I and -l need to point to your safe locations of Inventor 1.1.2). To install Inventor 1.1.2 under a different root directory than /, so that Inventor 2.0 may be installed under /:
# Install 1.1.2 compatibility library from Inventor 2.0 images inst -f inventor_eoe (get inventor_eoe.sw.1_1) # Create a directory to hold Inventor 1.1.2 mkdir /usr/myroot # Fool inst into thinking you have prerequisites installed mkdir -p /usr/myroot/var/inst cp /var/inst/{c,dev,c_dev,gl_dev,motif_eoe,inventor_eoe} /usr/myroot/var/inst # Install Inventor 1.1.2 under your root directory inst -r /usr/myroot -f inventor_dev To make Inventor 1.1.2 sample programs in this new directory: ln -s /usr/lib/libInventor.so.1 /usr/myroot/usr/lib/libInventor.so cd /usr/myroot/usr/share/src/Inventor/examples/PG1 # Add to the Makefile, after the line: include /usr/include/make/commondefs LC++INCS = -I/usr/myroot/usr/include LCINCS = -I/usr/myroot/usr/include LLDOPTS = -L/usr/myroot/usr/lib
To re-install Inventor 1.0.1, install the subsystem "irix4_inventor_dev", found on the Inventor 2.0 or Inventor 1.1.2 CDs. This will install the 1.0.1 headers and libraries under /usr/irix4. You must change your makefiles to use include and link to this new location.
LC++OPTS = +p -Wf,-XNp10000to:
LC++OPTS = -v2 +p -Wf,-XNp10000
Inventor 1.1.2 and Inventor 2.0 work with C++ 3.*; you must remove the -v2 flag from your Makefiles when you upgrade to those versions of Inventor.
If you receive this error when compiling:
"../../usr/include/X11/X.h", line 44: error: Cursor declared as unsigned short [16] and XIDYou should rearrange the order in which you #include your files so that the Xt files are included before any file that references the IRIS GL include file. For example, be sure to #include <Inventor/SoXt.h> before <Inventor/nodes/SoTexture2.h>.