IVF Architecture Overview. More...
Modules | |
AppWizard | |
Ivf Classes |
IVF Architecture Overview.
The purpose of the IVF class library is to simplify integration of functionality provided by the Open Inventor Win32 Classes with MFC-based applications. IVF builds upon the application framework provided by MFC to deliver the additional functionality of Open Inventor in a manner that is familiar to MFC developers. The following discussion assumes familiarity with MFC terminology and the structure of SDI, MDI, and dialog-based MFC applications. In addition, a basic understanding of Open Inventor and the Open Inventor User Interface Component Library (SoWin or SoXt) is assumed.
DEPRECATED:
The IVF classes are no longer supported (since Open Inventor 9.5).
The use of custom viewers is recommended. Examples can be found in section MFC examples user interface of the Reference Manual.
Figure 1.1 illustrates the objects in an IVF SDI application. Note there is no fundamental difference between the object relationships in an IVF application and an MFC application. An IVF application is an MFC application.
Figure 1.1 Objects in an IVF SDI Application. Arrows show direction of communication flow.
In an IVF application, the application, document, main frame window, and view objects have been endowed with additional functionality. The additional functionality enables the standard MFC objects to interact appropriately with the core Open Inventor Library and the Open Inventor User Interface Component Library. The addition of functionality to the standard MFC objects is achieved through the use of multiple inheritance. Figure 1.2 illustrates the class hierarchy of IVF SDI and MDI applications.
Figure 1.2 Class hierarchy of IVF SDI and MDI Applications.
This example diagrams an examiner viewer application. The class hierarchy for all IVF viewer applications is similar, the difference being which IVF viewer class the user view is derived from.
Note that the IVF classes are not derived from Object. This is because the current implementation of MFC does not support the use of Object as a virtual base class. It is important to note in Figure 1.2 that all of the user classes have the MFC class as the first (left most) base class. This is necessary due to the implementation of the MFC run-time typing mechanism. Refer to MFC Technical Note 16 for information about using multiple inheritance with MFC. In IVF SDI and MDI applications, the Open Inventor viewer occupies the entire view window. The details of how the view's window is transformed into an Open Inventor viewer are discussed in later chapters.
IVF also supports MFC dialog-based applications. Figure 1.3 illustrates the class hierarchy of an IVF dialog-based application. In an IVF dialog-based application, any of the dialog's child controls can be turned into an Open Inventor viewer or render area.
Figure 1.3 Class hierarchy of an IVF dialog-based Application.
This example diagrams an examiner viewer application. The class hierarchy for all IVF dialog-based viewer applications is similar, the difference being which IVF viewer class the user dialog is derived from.
The IVF class library is composed of two separate Win32 libraries. The IVF core classes are contained in a Dynamic Link Library (DLL). The IVF viewer classes are provided in a static library. Figure 1.4 illustrates the composition of the IVF core classes and the IVF viewer classes.
Figure 1.4 Composition of the IVF core classes and the IVF viewer classes.