Path: bloom-beacon.mit.edu!hookup!news.mathworks.com!zombie.ncsc.mil!news.duke.edu!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!cs.utexas.edu!news.tamu.edu!sgi-faq From: sgi-faq@viz.tamu.edu (The SGI FAQ group) Newsgroups: comp.sys.sgi.misc,comp.answers,news.answers Subject: SGI inventor Frequently Asked Questions (FAQ) Supersedes: Followup-To: comp.sys.sgi.misc Date: 9 Apr 1995 19:13:31 GMT Organization: Visualization Lab, Texas A&M University Lines: 424 Approved: news-answers-request@mit.edu Expires: 7 May 1995 18:50:11 GMT Message-ID: Reply-To: sgi-faq@viz.tamu.edu (The SGI FAQ group) NNTP-Posting-Host: viz.tamu.edu Originator: sgi-faq@viz Xref: bloom-beacon.mit.edu comp.sys.sgi.misc:18106 comp.answers:11109 news.answers:38725 Archive-name: sgi/faq/inventor Last-modified: Sat Dec 17 12:14:17 CST 1994 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 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 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 by anonymous FTP from one of these sites: viz.tamu.edu:/pub/sgi/faq/ rtfm.mit.edu:/pub/usenet/news.answers/sgi/faq/ ftp.uu.net:/usenet/news.answers/sgi/faq/ Note that 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. If you can't use FTP, 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. Finally, the FAQs are on the World Wide Web at http://www.cis.ohio-state.edu/hypertext/faq/usenet/sgi/top.html The SGI FAQs are freely distributable and we encourage wide circulation. You MUST keep the FAQs intact, including headers and this notice. The contents are accurate as far as we know, but the usual disclaimers apply. (In particular, copies of the SGI FAQs published on paper or CD-ROM are certain to be out of date!) Please send additions and changes to sgi-faq@viz.tamu.edu. Topics covered in this FAQ: --------------------------- -1- What is Open Inventor? -2- What is IRIS Inventor? -3- Is Inventor a format for 3D data? -4- Can I use Inventor to create 3D objects? -5- Is Inventor a user interface toolkit? -6- Is there a performance cost using a software layer on top of GL? -7- Does Inventor require C++? -8- Does Inventor work with the GNU C++ compiler? -9- Does Inventor have a Fortran or Ada API? -10- Where can I get detailed, technical information on Inventor? -11- How much does Inventor cost? -12- How can I order Inventor software and/or documentation? -13- How can I learn Inventor Programming? -14- What version of Open Inventor runs on which version of IRIX? -15- Why isn't Open Inventor available on the VGX/PI/GTX or GT? -16- What new features are in Open Inventor that weren't in IRIS Inventor? -17- Will my IRIS Inventor programs stop working if I install Open Inventor? -18- How hard is it to port from IRIS Inventor to Open Inventor? -19- When I compile my Inventor program, I get an error in SoDebugError.h. -20- What version of IRIS Inventor runs on which version of IRIX? -21- Will I be automatically upgraded to Open Inventor if I have IRIS Inventor? -22- Why do I get errors compiling the Inventor sample programs? ---------------------------------------------------------------------- Subject: -1- What is Open Inventor? Date: 30 Apr 94 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: -2- What is IRIS Inventor? Date: 30 Apr 94 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: -3- Is Inventor a format for 3D data? Date: 30 Apr 94 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: -4- Can I use Inventor to create 3D objects? Date: 30 Apr 94 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 Movieola built on top of Inventor is available from Radiance Software International. ------------------------------ Subject: -5- Is Inventor a user interface toolkit? Date: 30 Apr 94 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: -6- Is there a performance cost using a software layer on top of GL? Date: 30 Apr 94 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: -7- Does Inventor require C++? Date: 30 Apr 94 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: -8- Does Inventor work with the GNU C++ compiler? Date: 30 Apr 94 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: -9- Does Inventor have a Fortran or Ada API? Date: 30 Apr 94 15:45:00 CDT No. ------------------------------ Subject: -10- Where can I get detailed, technical information on Inventor? Date: 30 Apr 94 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: -11- How much does Inventor cost? Date: 30 Apr 94 15:45:00 CDT If you want to write Inventor applications on SGI machines, you need the Inventor developer's option. This option costs $995 for the Open Inventor release and $495 for the IRIS Inventor releases. There are no royalties for distributing applications based on Inventor. 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. ------------------------------ Subject: -12- How can I order Inventor software and/or documentation? Date: 30 Apr 94 15:45:00 CDT Call your local SGI sales representative or 1-800-800-7441 to order. ------------------------------ Subject: -13- How can I learn Inventor Programming? Date: 30 Apr 94 15:45:00 CDT SGI Technical Education offers a week-long course in Inventor Programming. Call 1-800-800-4SGI to sign up. ------------------------------ Subject: -14- What version of Open Inventor runs on which version of IRIX? Date: 30 Apr 94 15:45:00 CDT Inventor 2.0 runs on IRIX 5.2 and higher only. ------------------------------ Subject: -15- Why isn't Open Inventor available on the VGX/PI/GTX or GT? Date: 30 Apr 94 15:45:00 CDT Open Inventor requires OpenGL, which is not currently available on older SGI machines. ------------------------------ Subject: -16- What new features are in Open Inventor that weren't in IRIS Inventor? Date: 30 Apr 94 15:45:00 CDT Some of the main features that are new with Open Inventor are: Open Inventor Licensing Open Inventor 2.0 represents the first release of Inventor that is licensed to third parties to run on other platforms (e.g., Sun, HP). The Inventor Mentor and The Inventor Toolmaker Since Open Inventor has been licensed to run on other platforms, the programming guides have been published and distributed by Addison-Wesley Publishing Company. The books are typically available through bookstores that offer a good technical book selection. The Inventor Mentor is volume I of the programming guide and describes the fundamentals of Inventor programming (ISBN 0-201-62495-8). The Inventor Toolmaker is volume II and provides advanced information for programmers who want to extend Inventor. Automatic caching Open Inventor supports intelligent, automatic caching on the parts of the database that are not changing. Previously, caching was either `on' or `off' (set at SoSeparator nodes). Inventor 2.0 supports a third setting, `auto'. This SIGNIFICANTLY improves performance and simplifies programming. Error handling Inventor now supports a formal error handling system. Note that the API was not affected by this change. All Inventor error messages are now posted to an SoError class. The application can supply its own error handlers, thus making it possible to route error messages to dialogs, as well as stderr or stdout. All handlers are called by the SoError::handleError() method. When debugging, you can set a breakpoint on this method to stop right before an error is handled. Geometry primitives and SoCallbackAction A new feature has been added to the generic Inventor traversal action, SoCallbackAction, that allows for shapes to return primitives (triangles, lines, points, normals, texture coords, etc.) describing the object. Naming Nodes, paths, and engines can have names (strings) associated with them. There are methods on SoBase::setName() and getName() to set/get names. To search for objects by name, see SoNode::getByName(), SoPath::getByName(), and SoEngine::getByName(). Also, the SoSearchAction can now search based on the name. OpenGL rendering Open Inventor 2.0 uses OpenGL for all rendering; there are no calls to Iris GL in Inventor 2.0. If you have written derived node classes in 1.0, the Iris GL code must be re-written to OpenGL. Printing Printing has been completely reimplemented using OpenGL rendering to an off-screen image. All rendering features can now be printed (e.g. textures and transparency). Render Culling Inventor now supports object level culling to the viewport. Culling, like caching, is controlled by SoSeparators. Unknown nodes Inventor 2.0 reads unrecognized node classes from file and attempts to use them. When an unknown class is read, Inventor will search for an accompanying DSO file and use it, (uses environment variable LD_LIBRARY_PATH to search for file classname.so) If none is found, an SoUnknownNode or SoUnknownEngine is created and used instead. 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. SoEngine A new class of objects used for animation and behavior. Engines are lightweight objects that are connected between nodes, the clock, and other engines to form interesting behaviorial objects (e.g. spinning windmill). Engines can be written to file along with the 3d scene. ------------------------------ Subject: -17- Will my IRIS Inventor programs stop working if I install Open Inventor? Date: 30 Apr 94 15:45:00 CDT 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. If necessary, it is possible to install both the Inventor 2.0 and Inventor 1.1.2 development environments on the same machine; see the Inventor 2.0 release notes for details. ------------------------------ Subject: -18- How hard is it to port from IRIS Inventor to Open Inventor? Date: 30 Apr 94 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- When I compile my Inventor program, I get an error in SoDebugError.h. Date: 30 Apr 94 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 it should use the OpenGL include file. ------------------------------ Subject: -20- What version of IRIS Inventor runs on which version of IRIX? Date: 30 Apr 94 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/GTX/GT/PI) ------------------------------ Subject: -21- Will I be automatically upgraded to Open Inventor if I have IRIS Inventor? Date: 30 Apr 94 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: -22- Why do I get errors compiling the Inventor sample programs? Date: 30 Apr 94 15:45:00 CDT 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. Inventor 1.1.2 and Inventor 2.0 work with C++ 3.*. ------------------------------ End of sgi/faq/inventor Digest ****************************** -- The SGI FAQ group sgi-faq@viz.tamu.edu Finger us for info on the SGI FAQs, or look in viz.tamu.edu:/pub/sgi.