Copyright: Copyright ©


About TGS

The Standard in Graphics Tools

Template Graphics Software, Inc. (TGS) is a San Diego, California based software company that specializes in PHIGS+, OpenGL, and Open Inventor graphics tools. TGS products are used by application developers in commercial, corporate, academic, and government organizations. Since 1982, TGS has been the premier vendor in providing standards-based graphics tools used in developing applications for CAD/CAM, GIS, AEC, biomedical, multi-media, Internet, and aerospace markets. In addition to core development tools, TGS also delivers integrated programmer productivity and data visualization products to computer graphics professionals.

TGS has been a leader in cross-platform graphics products since 1982 and is a privately held organization. In addition to the corporate and development headquarters in San Diego, TGS has regional sales and support offices in San Jose, Houston, Atlanta, and Boston, as well as significant distribution partners in Europe and Japan.

Template Graphics Software Inc.

9920 Pacific Heights Blvd., Suite 200

San Diego, CA 92121

Phone	(619) 457-5359

Fax:	(619) 452-2547

Sales:	(800) 544-4847 x222

Hotline:	(800) 458-7588

E-mail:	info@tgs.com

WWW:	http://www.sd.tgs.com/~template


Adding Inventor Wizard to the MSVC++ Tools Menu

1.	Pull down the Tools menu item. Select "Customize...".

2.	Select the "Tools" tab.

3.	Press the "Add" button.

4.	Use the "Browse" button to find the Inventor Wizard executable. It will be in the bin directory of the Open Inventor installation, and will have a name something like INVWIZ10.EXE.

5.	Change the text in the "Menu Text Box" to say "Inventor Wizard".

6.	Press the "Close" button.


Contents

Open Inventor	A brief introduction to Open Inventor

TGS Innovations	Special features of TGS's Open Inventor for Windows/NT

SceneViewer	A brief introduction to the SceneViewer

Inventor Wizard	Your Inventor MFC application builder

Inventor Framework	A set of classes which integrate Open Inventor with the Microsoft Foundation Classes (MFC) application development framework.

Classes	Open Inventor classes

Tools	Tools

Demo Programs	Example programs

Technical Support	How to reach technical support

About TGS	Brief company overview

Copyright	Copyright


Copyright

This manual has been prepared for Template Graphics Software, Inc.(TGS™) licensees solely for use in connection with software supplied by TGS and is furnished under a written license agreement. This material may not be used, reproduced or disclosed, in whole or in part, except as permitted in the license agreement or by prior written authorization of TGS.

Users are cautioned that TGS reserves the right to make changes without notice to the specifications and materials contained herein and shall not be responsible for any damages (including consequential) caused by reliance on the materials presented, including but not limited to typographical, arithmetic or listing errors.

FIGARO+, FIGraph, and FIGt are trademarks of Template Graphics Software, Inc. TEMPLATE is a registered trademark of Template Graphics Software, Inc.

OpenGL is a registered trademark of Silicon Graphics, Inc. Open Inventor is a trademark of Silicon Graphics, Inc.

Restricted Rights Legend Use, duplication, or disclosure by the Government of Software or related Documentation is subject to restrictions as set forth in subparagraph (c)(1) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19 or subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 52.227-7013. Contractor/Manufacturer is Template Graphics Software, Inc., San Diego, CA  92121.

Copyright © 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995

Template Graphics Software, Inc.

9920 Pacific Heights Blvd., Suite 200

San Diego, CA 92121

Printed in U.S.A. All Rights Reserved

Confidential, Unpublished Property of Template Graphics Software, Inc.


Introduction to Inventor Wizard

The Inventor Wizard is a utility similar to the Microsoft "AppWizard", which is used within the Visual C++ environment to build an initial framework for an Open Inventor MFC application.  After creating an initial application with the AppWizard, the Inventor Wizard will add the necessary Open Inventor Framework (IVF) classes.  Applications can be created with a simple RenderArea or any of the standard Open Inventor viewers - walk, examiner, and fly-through - including a fully functional SceneViewer.  A SceneViewer application is capable of selecting objects in the scene, attaching manipulators, editing colors and materials, and many other operations.

The following pages show how to build an Open Inventor application using the AppWizard and the Inventor Wizard. Unless otherwise indicated in the text of the following pages, you may choose from any of the options shown on the AppWizard and Inventor Wizard screens.


INVENTOR

NAME

Inventor - a toolkit for writing 3d programs

DESCRIPTION

The Open Inventor 3d Toolkit is an object-oriented toolkit that simplifies and abstracts the task of writing graphics programming into a set of easy to use objects. These objects range from low level data-centered objects such as Sphere, Camera, Material, Light, and Group, to high level application-level objects such as Walkthrough Viewer and Material Editor. The foundation concept in Inventor is the "scene database" which defines the objects to be used in an application.  When using Inventor, a programmer creates, edits, and composes these objects into hierarchical 3d scene graphs (i.e., database).  A variety of fundamental application tasks such as rendering, picking, event handling, and file reading/writing are built-in operations of all objects in the database and thus are simple to invoke.

Since Inventor is object-oriented (written in C++), it encourages programmers to extend the system by writing new objects. Inventor users have created a variety of new objects that are not included in the product, such as: Bezier surfaces, CSG objects, animation objects, special viewers, and many more.

Note that the rendering mechanism inside Inventor objects employs Open GL.  Thus, during rendering each object automatically makes the proper, efficient calls to Open GL.  Furthermore, Inventor rendering supports a caching scheme which automatically generates very fast renderings of the database without traversal overheads.

Inventor picking is extremely efficient and does not utilize rendering. Furthermore, picking returns a varitey of 3d information and detail about what objects were picked.  A sorted list of picked objects and corresponding information is returned to the programmer. Picking is so fast, that programs can perform 3d locate highlighting as the mouse moves across a 3d window.

INTERACTION, EVENTS, AND DEVICES

Inventor defines a event model for writing 3d interaction. This model is window system independent. It is quite easy to use and makes 3d direct manipulation programming possible. Inventor includes a variety of interactive 3d objects and tools for writing interactive objects, such as: Manipulators, Draggers, and Projectors.  The flexible event model encourages programmers to extend the system to support new devices and event types.

FILE FORMAT

The Inventor 3d File Format is SGI's standard for 3d data. The format supports both an ASCII and private binary format. The binary format is network-neutral and thus can be exported across machine boundaries.

BENEFITS

Programming 3d graphics applications with Inventor results in large scale productivity increases.  This also increases with time as more tools utilize the Inventor paradigm, user interfaces, and standard file format.

DOCUMENTATION

"The Inventor Mentor", "The Inventor Toolmaker", and "The Inventor Reference Manual", published by Addison-Wesley Publishing Company, are available in technical bookstores.

SOURCE CODE

The Inventor Toolkit includes source code to NUMEROUS programs and examples.

FILES

%OIVHOME%/data/models/* - Sample 3D data files
%OIVHOME%/src/Inventor/* - Source to Inventor samples and examples

SEE ALSO

drop, gview, SceneViewer, ivcat, ivquicken, maze, noodle, qmorf, revo, textomatic


Inventor Wizard - Finished


Inventor Wizard - Step 1 of 3

Select the make file for the project you just created.


Inventor Wizard - Step 2 of 3


Inventor Wizard - Step 3 of 3


Light Directional Light
Directional Light

The 3D icon allows interactive manipulation of the light's direction.


Light Point Light
Point Light

The 3D icon allows interactive manipulation of the light's position.


Light Spot Light
Spot Light

The 3D icon allows interactive manipulation of the light's position, direction, and cutoff angle.


MFC AppWizard - New Project Information

After you click the OK button, and the AppWizard has completed its work, close your new project.

Do not change any project files or project options until after running the Inventor Wizard.


MFC AppWizard - Step 1 of 6


MFC AppWizard - Step 2 of 6


MFC AppWizard - Step 3 of 6


MFC AppWizard - Step 4 of 6


MFC AppWizard - Step 5 of 6

You must request a Visual C++ makefile, not an external makefile. The Inventor Wizard operates on the Visual C++ makefile.

You must link to the MFC library using a shared DLL.


MFC AppWizard - Step 6 of 6

If you change any of the names listed here, you will have to make the same changes in the corresponding Inventor Wizard dialog boxes.


MFC AppWizard and Inventor Wizard - Final Project


Manip Center Ball
Center Ball Manipulator

Crosshairs (at the ends of the x, y and z axes)

•	Click and drag to translate within the plane of the crosshairs

•	<Shift> click and drag to translate along one axis (determined by next user gesture)

Circles

•	Click and drag to rotate about a constrained axis

•	Click and drag the areas between the circles to rotate freely about the center

Sphere Surface

•	Click and drag to rotate freely


Manip Handle Box
Handle Box Manipulator

Corner Cubes

•	Click and drag to scale uniformly about center

•	<Alt> click and drag to scale uniformly about opposite corner

Center Cubes (on sides of box)

•	Click and drag to scale about center

•	<Alt> click and drag to scale about opposite face

Faces

•	Click and drag to translate freely in plane of face

•	<Shift> click and drag to translate along one axis (determined by next user gesture)

•	<Alt> click and drag to translate perpendicular to that face


Manip Jack
Jack Manipulator

End Cubes

•	Click and drag any cube to scale uniformly

Lines

•	Click and drag along line to rotate freely

Cylinder

•	Click and drag to translate along that axis


Manip Selection
Selection


Manip Tab Box
Tab Box Manipulator

Corner Tabs

•	Click and drag to scale about opposite corner

Edge Tabs

•	Click and drag to scale about opposite edge

Faces

•	Click and drag to translate freely in the plane of the face

•	<Shift> click and drag to translate along one axis (determined by initial gesture)


Manip Trackball
Trackball Manipulator

Stripes

•	Click and drag to rotate around that axis

Sphere Surface

•	Click and drag to rotate freely

<Alt> Surface

•	Click and drag to scale uniformly

<Shift> Surface

•	Click and drag to position user axis (user axis stripe appears)

•	<Shift> click and drag pole to intersection of two normal stripes to remove user axis

User Axis Stripe

•	Click and drag to rotate around user axis


Manip Transform Box
Transform Box Manipulator

Cubes

•	Click and drag to scale uniformly

Edges

•	Click and drag to rotate around axis parallel to that edge

Faces

•	Click and drag to translate freely in plane of face

•	<Shift> click and drag to translate along one axis (determined by initial gesture)


New Project

The first step in building an Open Inventor application is to open a new project.

From the File menu item in the MSVC++ IDE, select "New...". In the window that appears, select "Project" and click on "OK".


SVI Color Editor
Color Editor


SVI Dolly
Dolly

This thumbwheel moves the camera in and out


SVI Edit
Edit

This menu enables copy and paste of 3D data, selecting all objects, and deleting the currently selected objects.


SVI Editors
Editors

This menu launches the material editor and the color editor. An object must be selected for the menu to be active.


SVI File
File

This menu supports file reading and writing, and launches a dialog for printing to a printer or to PostScript file.


SVI Graphics Area
Graphics Area

In the Examiner Viewer you can use the cursor to move and spin objects.

Mouse Usage

Left Mouse:	Rotate the virtual trackball.

Ctrl + Left Mouse:	Used for roll action (rotates around the viewer forward direction).

Middle Mouse:	Translate up, down, left and right.

Alternative to the Middle Mouse button: Shift + Left Mouse

Left + Middle Mouse:	Dolly in and out (gets closer to and further away from the object).

Alternative to the Middle Mouse button: Ctrl + Shift + Left Mouse

Right Mouse:	Open the popup menu.

Predefined Keys

Escape	Toggles between viewing and selection mode

Home	Sets camera to Home position

's'	Activate Seek mode. Press (but do not hold down) the 's' key, then click on a target object.


SVI Help
Help

This menu provides help about the application.


SVI Lights
Lights

This menus allows directional, point and spot lights to be created and edited. It also allows lights to be turned on and off.


SVI Manips
Manips

This menu allows different manipulators to act on the current selection, including the trackball, handle box, jack, center ball, tab box, and transform box. Manipulators can also be turned off, in which case selected objects are surrounded with a red wireframe box highlight.


SVI Material Editor
Material Editor


SVI Rotx
Rotx

In examiner viewer mode, this thumbwheel rotates the model about the screen X axis.


SVI Roty
Roty

In examiner viewer mode, this thumbwheel rotates the model about the screen Y axis.


SVI Selection
Selection

This menu allows the different selection policies to be demonstrated. A selection policy determines how objects get added and removed from the collection of selected objects.


SVI Status Area
Status Area

This area displays status messages.


SVI Tool Bar
Toolbar

This is a standard Windows application toolbar.


SVI View
Viewing

This menu controls viewing options. It allows different viewing paradigms to be employed: the examiner viewer which provides a virtual trackball interface, the fly-through viewer for traveling through expansive data sets, the walk viewer for architectural walk-throughs, and the plane viewer for orthographic projections. The menu also enables different types of transparency, fog effects, antialiasing, and background color controls.


SVI Zoom
Zoom

The zoom slider adjusts the camera's field of view.


SCENEVIEWER

NAME

SceneViewer - 3d editor and viewer for Inventor scenes

SYNOPSIS

SceneViewer [-e env_file] [file]

DESCRIPTION

SceneViewer is a program for viewing and interacting with Inventor scene graph files (the SGI 3D file format standard). SceneViewer was written to demonstrate Inventor features, and serves as the basis for the IRIS Explorer Render Module.

When SceneViewer is run, a window appears containing the Inventor examiner viewer and a menu bar. The viewer allows the user to interactively change the view of the scene through direct manipulation, or indirect slider and push button controls. The menu bar contains the following menus:

File

This menu supports file reading and writing, and launches a dialog for printing to a printer or to PostScript file.

Edit

This menu enables copy and paste of 3D data, selecting all objects, and deleting the currently selected objects.

Viewing

This menu controls viewing options. It allows different viewing paradigms to be employed: the examiner viewer which provides a virtual trackball interface, the fly-through viewer for traveling through expansive data sets, the walk viewer for architectural walk-throughs, and the plane viewer for orthographic projections. The menu also enables different types of transparency, fog effects, antialiasing, and background color controls.

Selection

This menu allows the different selection policies to be demonstrated. A selection policy determines how objects get added and removed from the collection of selected objects.

Editors

This menu launches the material editor and transform sliders. An object must be selected for the menu to be active.

Manips

This menu allows different manipulators to act on the current selection, including the trackball, handle box, jack, center ball, and transform box. Manipulators can also be turned off, in which case selected objects are surrounded with a red wireframe box highlight.

Lights

This menu allows directional, point, and spot lights to be created and edited. It also allows lights to be turned on and off.

For more information on how to use the viewers and editors employed by the scene viewer, please see SceneViewer's runtime help cards.

SOURCE CODE

Note that the source code to SceneViewer comes with the Open Inventor 3d Toolkit.

OPTIONS

The following command line options are allowed:

-e  env_file Read the passed environment file, and use the lights, camera, and environment settings found there.

FILES

%OIVHOME%/data/models/* - Sample 3D data files
%OIVHOME%/src/Inventor/demos/SceneViewer/* - Source to SceneViewer

SEE ALSO

drop, gview, inventor, ivcat, ivquicken, maze, noodle, qmorf, revo, textomatic


SceneViewer Intro

Welcome to the SceneViewer! When SceneViewer is run, a window appears containing the Inventor examiner viewer and a menu bar. The viewer allows the user to interactively change the view of the scene through direct manipulation, or indirect slider and push button controls.

Click on the SceneViewer below for information.

The SceneViewer


Start Inventor Wizard

From the Tools menu, select the Inventor Wizard item.

If there is no Inventor Wizard item in the Tools menu, you will need to add it. This is described in the topic "Adding Inventor Wizard to the MSVC++ Tools Menu."


TGS Innovations

The TGS implementation of Open Inventor for Windows/NT contains a number of innovations specific to the Windows environment.  These are in addition to the functionality of the UNIX Open Inventor toolkit, which is provided in its entirety, to allow porting of applications from one environment to the other.  Unique features of our Open Inventor for Windows/NT include:

1	SoWin Component Classes

A "class for class" equivalent for the SoXt X Windows Component library, adapted for the unique requirements and facilities of the Windows environment.  Just like SoXt, SoWin classes include an OpenGL drawing area, an Open Inventor RenderArea which manages a scene graph, and Open Inventor viewers which add lights, cameras and interactivity to a scene. SoWin classes can be used within any application framework (see Inventor Framework).

2	SoXt Wrapper Classes

A set of classes which, as much as possible, exactly mimic the SoXt classes and are based upon the SoWin Windows classes.  These SoXt wrapper classes provide true portability for Open Inventor programs which do not make direct calls to Window System functions (i.e., Windows, Xlib, Xt, Motif, etc.).  For example, almost all of the standard Inventor Mentor C++ example programs run with essentially no change in the Windows environment.

3	Extensions to Mouse Button Definitions for Viewers

Mouse buttons have predefined meanings in each of the standard Open Inventor viewers (Examiner, Walk, Fly, etc).  The standard definitions for X Windows assume a 3-button mouse.  These definitions are still supported under Windows, but have been extended to accomodate the use of a one or two button mouse.  As a general rule, Shift-Left Button is a substitute for the middle mouse button.

4	Open Inventor Framework (IVF) Classes

A set of classes which integrate Open Inventor with the Microsoft Foundation Classes (MFC) application development framework.  IVF classes are based upon the SoWin component classes but shield the application from this level of detail.  IVF classes also handle much of the complexity of when and where to do various operations within the MFC framework.

5	Inventor Wizard

A utility similar to the Microsoft "AppWizard", which is used within the Visual C++ environment to build an initial framework for an Open Inventor MFC application.  After creating an initial application with the AppWizard, the Inventor Wizard will add the necessary Open Inventor Framework (IVF) classes.  Applications can be created with a simple RenderArea or any of the standard Open Inventor viewers - walk, examiner, and fly-through - including a fully functional SceneViewer.  A SceneViewer application is capable of selecting objects in the scene, attaching manipulators, editing colors and materials, and many other operations.


Technical Support

If You Have a Question...

Questions should be directed to your local site coordinator or hotline contact.

If your hotline contact needs to communicate with TGS, he or she may contact the product hotline for assistance.

Contacting the Hotline

If you are the site coordinator or hotline contact, and your site has a paid-up software support service agreement, you may contact the product hotline using the ways listed below. Please have your customer ID number ready to give the TGS hotline analyst; please include it on all correspondence.

Phone 800-428-7588 (domestic only) 619-457-5359 (international)	Fax 619-452-2547
E-mail hotline@tgs.com This is the preferred method of communication, especially if test programs need to be sent.	Mail Template Graphics Software 9920 Pacific Heights Blvd., Suite 200 San Diego, CA 92121 USA Attn Hotline
International Product Support

International product support is handled by your distributor or local TGS office. Please contact them for assistance. Their numbers are listed below

Europe

France (Paris)	G5G	33-14237-6666	(European Headquarters)

U.K. (Oxford)	NAG Ltd. 	44-865-511245

Germany (Berlin)	GraS	49-30-823-2074

Italy (Bologna)	ARS	39-51-509431

Pacific Rim

Japan	JRI	81-3-3288-4546

Japan (Tokyo)	ISI Dentsu	81-3-3228-6140


Viewer Examiner viewer
Examiner Viewer

The examiner viewer uses a virtual trackball to view the data. By default, the scene viewer comes up in examiner viewer mode.


Viewer Fly-through Viewer
Fly-through Viewer

The fly-through viewer moves the camera through space, with a constant world up.


Viewer Walk Viewer
Walk Viewer

The walk viewer moves the camera in a plane.