This book is for the advanced programmer and describes how to create new Inventor classes and how to customize existing classes in the Open Inventor Toolkit.
The Inventor Toolmaker contains the two following sets of chapters:
Extending Database Classes:
Chapter 1, Key Concepts, “Key Concepts,” describes important background information on the Open Inventor Toolkit that was not needed in Open Inventor Mentor, 2nd Edition - Volume I. It introduces concepts such as the method list, state and elements, the stack index, caching, runtime typing, and using extender macros. If you are creating any database class (described in Chapters 2 through 6), it is required reading.
Chapter 2, Creating a Node, “Creating a Node,” describes how to create new subclasses of SoNode( C++ | Java | .NET ). Examples show creating a new property node class, shape node class, and group node class.
Chapter 3, Creating a Field, “Creating a Field,” describes how to create new subclasses of SoField( C++ | Java | .NET ), including single-value and multiple-value fields.
Chapter 4, Creating an Action, “Creating an Action,” describes how to create new subclasses of SoAction( C++ | Java | .NET ).
Chapter 5, Creating an Element, “Creating an Element,” describes how to create new subclasses of SoElement( C++ | Java | .NET ).
Chapter 6, Creating an Engine, “Creating an Engine,” describes how to create new subclasses of SoEngine( C++ | Java | .NET ), including new field converters. It also explains how notification of changes in field data propagates through the scene graph.
Chapter 7, Creating a Node Kit, “Creating a Node Kit,” describes how to create new subclasses of SoBaseKit( C++ | Java | .NET ).
Extending Interaction Classes
Chapter 8, Creating Draggers and Manipulators, “Creating Draggers and Manipulators,” describes how to create new subclasses of SoDragger( C++ | Java | .NET ) as well as new manipulators, which are derived from other node classes such as SoTransform( C++ | Java | .NET ), SoLight( C++ | Java | .NET ), or SoCamera( C++ | Java | .NET ). If you are creating a new dragger, you'll need to read Chapter 7, Creating a Node Kit as well, because draggers are node kits.
Chapter 9, Creating a Selection Highlight Style, “Creating a Selection Highlight Style,” describes how to create new subclasses of SoGLRenderAction( C++ | Java | .NET ) to perform selection highlighting. If you're creating a new highlight class, you'll need to read Chapter 4, because highlight classes are derived from an action class, SoGLRenderAction( C++ | Java | .NET ).
Chapter 10, Creating a Component, “Creating a Component,” describes how to create new components. Examples show creating a simple component derived from SoXtRenderArea( C++ ) as well as a simple viewer.
Chapter 11, Creating an Event and Device, “Creating an Event and Device,” describes how to create a new event and a new Xt device. The chapter also describes how to translate X events into Inventor events.
Chapter 12, Creating a gesture event and recognizer, “ Creating an Gesture Event and Recognizer,” describes how to create a new gesture event and its corresponding recognizer.