8.4.5. Open Inventor: 3D Scene Graph

Author(s): Fu Jie Huang

This is a full interface to the industry-standard 3D scene graph library Open Inventor.

Informations about Open Inventor are available at: http://oss.sgi.com/projects/inventor/

The book The Inventor Mentor is a good start to get familiar with this library.



8.4.5.0. Installation


The Lush interface is built and tested with Open Inventor version 2.1.5-9 . It also works with version 2.1.5-10 , which is the latest version as of 2003.

To build Open Inventor 2.1.5-10 on RedHat 9.0 is straightforward. The only thing that may cause confusing is the font library. The font library libFL works as an abstraction layer, and can be wired to either libfreetype or the default font library:

                             ./libFL
       |------------------------|--------------------|
  /ang/libFL.a                        /src/libFL_i386.a (precompiled)
  (to be compiled from source)        (pre-compiled)
  (use FreeType)                      (use default font library)

The pre-compiled font library file ./libFL/src/libFL_i386.a has trouble to be linked with glibc-2.3.2 on RH9. The easiest way is to re-compile it and force it to use the FreeType interface by setting the environment variable FREETYPE to 1. Here is a sample:

su
IVROOT=/; LIBTYPE=debug; FREETYPE=1;
export IVROOT LIBTYPE FREETYPE
gmake install

To build 2.1.5-9 source code with GCC3.2 and higher (typical on RedHat 8.0 and higher) is tricky. We need to hack some source code to make the compiler happy:

 modify  ./lib/database/src/so/nodes/nurbs/head/mystdio.h:
         remove all the conditional defines of dprintf, and add:
        "#include <stdio.h>
        #define dprintf printf"
 modify  ./apps/demos/GNUmakefile: 
       remove SceneViewer from SUBDIRS list

The reason for the above changes is that dprintf is defined in GCC3.2 differently from what Open Inventor meant to use it.

Start Lush, and type:

? (libload "inventor/inventor")