SGI inventor Frequently Asked Questions (FAQ)


From: sgi-faq@viz.tamu.edu (The SGI FAQ group)
Newsgroups: comp.sys.sgi.misc
Subject: SGI inventor Frequently Asked Questions (FAQ)
Date: 6 Jul 2001 05:59:45 GMT
Message-ID: <inventor_994399215@viz.tamu.edu>
Reply-To: sgi-faq@viz.tamu.edu (The SGI FAQ group)

Archive-name: sgi/faq/inventor
Last-modified: Wed Oct  6  1:00:04 CDT 1999
Posting-Frequency: Twice monthly
URL: http://www-viz.tamu.edu/~sgi-faq/

    SGI inventor Frequently Asked Questions (FAQ)

This is one of the Silicon Graphics FAQ series, which consists of:

    SGI admin FAQ - IRIX system administration
    SGI apps FAQ - Applications and miscellaneous programming
    SGI audio FAQ - Audio applications and programming
    SGI diffs FAQ - Changes to the other FAQs since the last posting
    SGI graphics FAQ - Graphics and user environment customization
    SGI hardware FAQ - Hardware
    SGI impressario FAQ - IRIS Impressario
    SGI inventor FAQ - IRIS Inventor
    SGI misc FAQ - Introduction & miscellaneous information
    SGI movie FAQ - Movies
    SGI performer FAQ - IRIS Performer
    SGI pointer FAQ - Pointer to the other FAQs
    SGI security FAQ - IRIX security

Read the misc FAQ for information about the FAQs themselves. Each FAQ is
posted to comp.sys.sgi.misc and to the news.answers and comp.answers
newsgroups (whose purpose is to store FAQs) twice per month. If you
can't find one of the FAQs with your news program, you can get it from

    ftp://viz.tamu.edu/pub/sgi/faq/
    ftp://rtfm.mit.edu/pub/usenet/news.answers/sgi/faq/

(rtfm.mit.edu is home to many other FAQs and informational documents,
and is a good place to look if you can't find an answer here.) The FAQs
are on the World Wide Web at

    http://www-viz.tamu.edu/~sgi-faq/

If you can't use FTP or WWW, send mail to mail-server@rtfm.mit.edu with
the word 'help' on a line by itself in the text, and it will send you a
document describing how to get files from rtfm.mit.edu by mail. Send the
command 'send usenet/news.answers/sgi/faq/misc' to get the SGI misc FAQ,
and similarly for the other FAQs. Send the command 'send
usenet/news.answers/internet-services/access-via-email' to get the
"Accessing the Internet by E-Mail FAQ".

You may distribute the SGI FAQs freely and we encourage you to do so.
However, you must keep them intact, including headers and this notice,
and you must not charge for or profit from them. Contact us for other
arrangements. We can't be responsible for copies of the SGI FAQs at
sites which we do not control, and copies published on paper or CD-ROM
are certain to be out of date. The contents are accurate as far as we
know, but the usual disclaimers apply. Send additions and changes to
sgi-faq@viz.tamu.edu.

Topics covered in this FAQ:
---------------------------
   -1- GENERAL QUESTIONS
   -2- What is Open Inventor?
   -3- What is IRIS Inventor?
   -4- Is Inventor a format for 3D data?
   -5- Can I use Inventor to create 3D objects?
   -6- Is Inventor a user interface toolkit?
   -7- Is there a performance cost using a software layer on top of GL?
   -8- Does Inventor require C++?
   -9- Does Inventor work with the GNU C++ compiler?
  -10- Does Inventor have a Fortran or Ada API?
  -11- Where can I get detailed, technical information on Inventor?
  -12- How can I order Inventor software and/or documentation?
  -13- How can I learn Inventor Programming?
  -14- QUESTIONS ABOUT OPEN INVENTOR
  -15- What version of Open Inventor runs on which version of IRIX?
  -16- What Silicon Graphics platforms support Open Inventor?
  -17- What are the new features in Open Inventor 2.1?
  -18- How hard is it to port from IRIS Inventor to Open Inventor?
  -19- How hard is it to port from Open Inventor 2.0.1 to Open Inventor
       2.1?
  -20- How can I make my Open Inventor application faster?
  -21- When I compile my Inventor program, I get an error in
       SoDebugError.h.
  -22- QUESTIONS ABOUT IRIS INVENTOR
  -23- What version of IRIS Inventor runs on which version of IRIX?
  -24- Will I be automatically upgraded to Open Inventor if I have IRIS
       Inventor?
  -25- Will my IRIS Inventor programs stop working if I install Open
       Inventor?
  -26- Can I develop Open and IRIS Inventor programs on the same system?
  -27- Prerequisite error installing Inventor 1.1.2
  -28- Why do I get errors compiling the Inventor sample programs?


Subject: -1- GENERAL QUESTIONS Date: 06 May 1995 00:00:01 EST General questions.
Subject: -2- What is Open Inventor? Date: 30 Apr 1994 15:45:00 CDT Open Inventor is an object-oriented 3D toolkit offering a comprehensive solution to interactive graphics programming problems. It presents a programming model based on a 3D scene database that dramatically simplifies graphics programming. It includes a rich set of objects such as cubes, polygons, text, materials, cameras, lights, trackballs, handle boxes, 3D viewers, and editors that speed up your programming time and extend your 3D programming capabilities. Open Inventor: o is built on top of OpenGL o defines a standard file format for 3D data interchange o introduces a simple event model for 3D interaction o provides animation objects called Engines o provides high performance object picking o is window system and platform independent o supports PostScript printing o encourages programmers to create new customized objects o is fun to use
Subject: -3- What is IRIS Inventor? Date: 30 Apr 1994 15:45:00 CDT IRIS Inventor was the first release of Inventor; it is also known as Inventor 1.0 (Open Inventor is Inventor 2.0). It is built on top of IRIS GL rather than OpenGL, and has fewer features.
Subject: -4- Is Inventor a format for 3D data? Date: 30 Apr 1994 15:45:00 CDT Inventor defines a powerful, extensible format for 3D objects and scenes. The Inventor format is the standard for 3D objects on Silicon Graphics machines, and may become the standard for all machines. However, Inventor is more than a 3D object file format; it is a complete toolkit for writing interactive, 3D applications.
Subject: -5- Can I use Inventor to create 3D objects? Date: 30 Apr 1994 15:45:00 CDT Inventor is for programmers writing 3D applications, and does not directly provide any way for users to create 3D objects. Several Inventor applications have been written that create 3D objects. Showcase 3.0, which is bundled with IRIX, is a fairly simple example. A much more sophisticated modeller called Ez3d built on top of Inventor is available from Radiance Software International.
Subject: -6- Is Inventor a user interface toolkit? Date: 30 Apr 1994 15:45:00 CDT Yes and no. Inventor contains mostly 3D objects. There is little in the way of conventional user interface objects such as buttons, dialogs, and menus. However, Inventor includes a full-fledged event model, a framework designed for 2D or 3D user interaction, and some manipulator objects for 3D user interface building. Note that the Inventor Xt Component and Utility Library includes some traditional 2D user interface widgets.
Subject: -7- Is there a performance cost using a software layer on top of GL? Date: 30 Apr 1994 15:45:00 CDT Sometimes. Note that few GL programs achieve peak graphics performance. This is because most applications have natural application overhead, and also because many programmers lack a thorough understanding of the details and eccentricities of GL. If you are writing a simple display-only, immediate-mode GL program, then it will run faster using straight GL, but not much. However, if your program has scene traversal, interactivity, picking, bounding box calculations, and other object space tasks, then Inventor will perform better for you. This is because Inventor is specially tuned to make optimal use of GL on each SGI machine. Furthermore, Inventor supports render caching which results in peak GL performance in most cases. 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.
Subject: -8- Does Inventor require C++? Date: 30 Apr 1994 15:45:00 CDT No. You can use the C API and never see or use C++. However, subclassing to extend the toolkit does require C++.
Subject: -9- Does Inventor work with the GNU C++ compiler? Date: 30 Apr 1994 15:45:00 CDT No, Inventor requires SGI's C++ compiler. The GNU C++ compiler and SGI's C++ compiler produce incompatible code, and Silicon Graphics does not ship an Inventor library compatible with GNU C++.
Subject: -10- Does Inventor have a Fortran or Ada API? Date: 09 Jan 1996 00:00:01 PST No. Silicon Graphics is, however, in the process of creating an Ada95 binding for Open Inventor.
Subject: -11- Where can I get detailed, technical information on Inventor? Date: 30 Apr 1994 15:45:00 CDT The Inventor Mentor, written by Josie Wernecke, is published by Addison-Wesley and is available in technical bookstores (ISBN 0-201-62495-8).
Subject: -12- How can I order Inventor software and/or documentation? Date: 09 Jan 1996 00:00:01 PST On SGI machines, call your local SGI sales representative or, if you are in the United States, call 1-800-800-7441 to order. NeTpower provides Open Inventor for Windows NT for both Intel and MIPS Windows NT platforms. For more information pricing and availability of Open nventor for NT, call NeTpower Sales and Customer Service at: 800-801-0900, or send email to info@netpower.com. Portable Graphics provides (or will soon provide) Open Inventor for the following platforms: * HP Series 700 workstations with Freedom Series * IBM RS/6000 workstations (AIX v3.2.5 and 4.x) * Sun SPARCstations (Solaris 2.3 & 2.4) * Windows NT (Intel platform) * Windows NT (PowerPC platform) * DEC AlphaStation/Digital UNIX * DEC AlphaStation/Windows NT * Linux * Sun SPARCstations with Freedom Series * OS/2 Warp (PowerPC and Intel platforms) * Windows 95 (PowerPC and Intel platforms) * MESA * PowerMac Portable Graphics also supplies: * IRIS Inventor for HP workstations * IRIS Inventor for Sun workstations For product availability and pricing, please contact Portable Graphics at: Portable Graphics "An Evans & Sutherland Company" 3006 Longhorn Blvd., Suite 105 Austin, TX 78758 (512) 719-8000 (512) 832-0752 (fax) Template Graphics Software provides (or will soon provide) Open Inventor on the following platforms: * Sun Solaris (SPARC and X86) * IBM AIX * Windows NT 3.5 (Intel, Alpha, MIPS, PowerPC) * Windows 95 * HP-UX * Apple PowerMac * OS/2 * Digital UNIX For additional information on TGS graphics software visit their web page or send email to info@tgs.com. Template Graphics Software may also be reached at: Template Graphics Software 9920 Pacific Heights Blvd. #200 San Diego, CA 92121 Robert J. Weideman, V.P. Marketing (619)457-5359 x229 (619)452-2547 (fax) robert@tgs.com
Subject: -13- How can I learn Inventor Programming? Date: 09 Jan 1996 00:00:01 PST SGI Technical Education offers a week-long course in Inventor Programming. Call 1-800-800-4SGI to sign up or visit the SGI Technical Education Web Page for a schedule of upcoming classes. Portable Graphics also offers an introductory programming course for Open Inventor. "Introduction to Open Inventor Programming" is a two-day course that covers the material presented in "The Inventor Mentor" using demonstrations, examples and lecture. It includes a copy of "The Inventor Mentor", code examples and course notes. For a course outline and registration information, contact: Phone: (800) 580-1166 Fax: (800) 580-0616 E-mail: inventor@portable.com Template Graphics Software provides developer training in North America, Japan and Europe. For course scheduleplease contact: Template Graphics Software (619)457-5359 x251 E-mail info@tgs.com Web Page http://www.sd.tgs.com/
Subject: -14- QUESTIONS ABOUT OPEN INVENTOR Date: 06 May 1995 00:00:01 EST Questions about Open Inventor.
Subject: -15- What version of Open Inventor runs on which version of IRIX? Date: 09 Jan 1996 00:00:01 PST Inventor 2.0 runs on IRIX 5.2 Inventor 2.0.1 runs on IRIX 5.3 Inventor 2.1.x runs on IRIX 5.3, Irix 6.1 and higher
Subject: -16- What Silicon Graphics platforms support Open Inventor? Date: 09 Jan 1996 00:00:01 PST Open Inventor supports the following SGI graphics platforms: Reality Engine IMPACT Express Graphics (Extreme, Elan, XZ) Indy Graphics VGX, VGXT PI Graphics
Subject: -17- What are the new features in Open Inventor 2.1? Date: 09 Jan 1996 00:00:01 PST New Features for Open Inventor 2.1 are: New and Updated_Documentation Inventor 2.1 includes a new book, the Open Inventor 2.1 Porting and Performance Tips. New File Version The file version has been updated to 2.1 DSO Directories and Versions To avoid problems with incompatible code, the places Inventor searches for Dynamic Shared Objects (DSO) implementing new nodes has been changed. For details please read the release notes of Inventor 2.1. VRML File Supported The SoDB read methods now also read files with the VRML 1.0 header. User-Defined File Headers The SoDB class now includes methods for registering your own file headers. SoOutput::setFloatPrecision() You can now specify a precision to use when writing out floating point numbers. SoDB::readAll() Supports Paths The SoDB::readAll() method now supports reading objects of type SoNode or SoPath. New Nodes Inventor 2.1 now supports the following new nodes. For deatils, please read the release notes of Inventor 2.1. SoVertexProperty SoLOD SoLocateHighlight SoWWWAnchor SoWWWInline SoAsciiText SoFontStyle New Fields Inventor 2.1 now supports the following new fields. For details, please read the release notes of Inventor 2.1 specifically regarding: fields and isA. SoGLRenderAction Render Abort Callback Changes The render abort callback of the SoGLRenderAction no longer returns a simple Boolean value. Instead, it returns an abort code that is one of: CONTINUE, ABORT, PRUNE, or DELAY. CONTINUE is the same as returning FALSE in previous releases, and ABORT is the same as TRUE. New Manipulator for 3D Transformations A new manipulator, SoTransformerManip, has been added to the set of Inventor manipulators. OpenGL Texture Object Extension Open Inventor 2.1 makes use of the OpenGL extension for texture objects. Consequently, on systems where this OpenGL extension is available, you will see improved texture mapping performance. Additional Texture File Formats The Inventor 2.1 SoTexture2 node now supports GIF and JPEG image files. The JPEG files are read using the fifth public release of the Independent JPEG's group free JPEG software. Picking vs. Viewing When in picking mode in any of the viewers, you can now temporarily switch to viewing mode by pressing the key. Note also that the manipulators now use the key as the modifier key, instead of the key. Disabling the Viewer Cursor The application can now set the cursor in the viewer windows directly, if it first disables the viewer cursor using SoXtViewer::setCursorEnabled(). Targets for Copy and Paste The SoXtClipboard supports the following new data targets for copy and paste: INVENTOR_2_1 INVENTOR_2_1_FILE VRML_1_0 VRML_1_0_FILE INVENTOR_2_0 INVENTOR_2_0_FILE The targets INVENTOR and INVENTOR_FILE are supported for backwards compatibility. They are equivalent to INVENTOR_2_0 and INVENTOR_2_0_FILE. File Downgrade Utility A new utility program, /usr/sbin/ivdowngrade, takes an Inventor file and converts it to Inventor version 2.0 or 1.0. Program for Converting Files to Use SoVertexProperty This release includes sample source code for a utility program, ivAddVP, to help convert Inventor files into 2.1 files that use the vertexProperty field for the vertex- based shapes. Program for Optimizing Scene Graphs This release includes a new utility program, /usr/sbin/ivfix that restructures Inventor scene graphs for improved rendering performance. (The ivquicken utility program is no longer supported.) Note that ivfix makes significant changes to the structure of your scene graph. Program for Analyzing Rendering Performance This release includes sample source code for a utility program, ivperf, for analyzing rendering performance. See Open Inventor 2.1 Porting and Peformance Tips for more information on using ivperf
Subject: -18- How hard is it to port from IRIS Inventor to Open Inventor? Date: 30 Apr 1994 15:45:00 CDT Most Inventor programs will be fairly easy to port. The Inventor 2.0 release notes contain detailed information on converting your application. Most of your porting job will be fixing minor syntax changes (e.g. some length() methods were renamed getLength() for consistency with the rest of the toolkit) and fixing #include lines for files under /usr/include/Inventor that were moved around (e.g. all of the Xt components are now under /usr/include/Inventor/Xt). 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.
Subject: -19- How hard is it to port from Open Inventor 2.0.1 to Open Inventor 2.1? Date: 09 Jan 1996 00:00:01 PST Open Inventor 2.1 contains significant performance improvements. However, Inventor 2.1 is not binary compatible with previous releases, and programs will have to be recompiled. Some programs may have to be re-coded to take full advantage of the performance improvements. Programs that extend the toolkit, as described in The Inventor Toolmaker, are more likely to need re-coding because parts of the extender API have changed. For details, please read Open Inventor 2.1 Porting and Performance Tips insight book.
Subject: -20- How can I make my Open Inventor application faster? Date: 09 Jan 1996 00:00:01 PST Read chapter 6 of "Open Inventor 2.1 Porting and Performance Tips" insight book. It describes a step by step method to find out your performance bottleneck and gives you some tips to optimize them.
Subject: -21- When I compile my Inventor program, I get an error in SoDebugError.h. Date: 30 Apr 1994 15:45:00 CDT You, or something you #include, are #include'ing the IRIS GL header file (gl/gl.h). It does: "#define WARNING 2", which conflicts with the enum value called "WARNING" in SoDebugError. You cannot mix Open Inventor with IRIS GL anyway (because you cannot mix OpenGL with IRIS GL), so you should fix your program so it doesn't try to #include <gl/gl.h> it should use <GL/gl.h> the OpenGL include file.
Subject: -22- QUESTIONS ABOUT IRIS INVENTOR Date: 06 May 1995 00:00:01 EST Questions about Iris Inventor.
Subject: -23- What version of IRIS Inventor runs on which version of IRIX? Date: 30 Apr 1994 15:45:00 CDT 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)
Subject: -24- Will I be automatically upgraded to Open Inventor if I have IRIS Inventor? Date: 30 Apr 1994 15:45:00 CDT Customers with software maintenance contracts that have purchased the Inventor 1.0 developer's option will receive the Inventor 2.0 developer's option when they receive IRIX 5.2.
Subject: -25- Will my IRIS Inventor programs stop working if I install Open Inventor? Date: 06 May 1995 00:00:01 EST No. The Inventor 2.0 run-time system (inventor_eoe) contains a complete set of compatibility libraries that will allow existing IRIS Inventor applications to continue to work.
Subject: -26- Can I develop Open and IRIS Inventor programs on the same system? Date: 06 May 1995 00:00:01 EST Yes, as long as your system supports OpenGL (Indy, Indigo, Indigo2, Crimson, and RealityEngine support OpenGL at this time). First, install the 2.0 version of both inventor_dev and inventor_eoe. REALLY IMPORTANT: When installing Inventor 2.0, previous Inventor versions will AUTOMATICALLY be removed. 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.
Subject: -27- Prerequisite error installing Inventor 1.1.2 Date: 06 May 1995 00:00:01 EST Many customers are running into an inst installation prerequisite error when they try to load inventor_dev 1.1.2 onto their IRIX 5.2 system. This error is due to a name change in c and dev subsystems between IRIX 5.1 and 5.2. The new name is c_dev. The fix is to load the *new* inventor_dev 1.1.2 (part # 812-0136-005) made for IRIX 5.2 that came with the Open Inventor 2.0 Development Package. This version is smart enough to do the right thing. Unfortunately, both the *old* and *new* inventor_dev 1.1.2 are barely distinguishable only by their part number and content. The new inventor_dev 1.1.2 has a Copyright of 1992-94 and does not contain inventor_eoe 1.1.2.
Subject: -28- Why do I get errors compiling the Inventor sample programs? Date: 06 May 1995 00:00:01 EST Inventor 1.0.1 requires C++ version 2.*. If you have C++ version 3.* installed on your system, you must specify the -v2 flag to compile Inventor programs. If you are using the Makefiles distributed with Inventor, you should change the line that looks like: LC++OPTS = +p -Wf,-XNp10000 to: 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 XID You 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>. ------------------------------ End of sgi/faq/inventor Digest ****************************** -- The SGI FAQ group <sgi-faq@viz.tamu.edu> http://www-viz.tamu.edu/~sgi-faq/ Finger us for info on the SGI FAQs, or look in ftp://viz.tamu.edu/pub/sgi/.