![]() |
http://www.sim.no http://www.coin3d.org |
#include <Inventor/Qt/SoQtObject.h>
Inheritance diagram for SoQtObject:
The purpose of making this class the superclass of all SoQt device, component and viewer classes is to be able to do run-time type checking of the SoQt objects.
You can place the macro SOQT_OBJECT_HEADER(classname,parentname) within a class definition header for SoQt extension components to automatically make the necessary definitions for setting up a run-time type system for your extension classes:
#ifndef MYSPECIALVIEWER_H #define MYSPECIALVIEWER_H class MySpecialViewer : public SoQtExaminerViewer { SOQT_OBJECT_HEADER(MySpecialViewer, SoQtExaminerViewer); // [rest of class definition follows] }; #endif // !MYSPECIALVIEWER_H
Then put the SOQT_OBJECT_SOURCE(classname) macro within the actual implementation sourcecode file to include the necessary code for the run-time type system:
#include <MySpecialViewer.h> SOQT_OBJECT_SOURCE(MySpecialViewer); // [rest of class implementation]
See also the documentation of the SoType class in Coin or Inventor.
Public Member Functions | |
virtual SoType | getTypeId (void) const =0 |
SbBool | isOfType (SoType type) const |
Static Public Member Functions | |
static void | initClass (void) |
static SoType | getClassTypeId (void) |
static void | init (void) |
|
Sets up initialization for data common to all instances of this class, submitting necessary information to the internal SoQt type system. |
|
This static method returns the SoType object associated with objects of this class. |
|
Returns the type identification of an object derived from a class inheriting SoQtObject. This is used for run-time type checking and "downward" casting. Usage example:
void foo(SoQtViewer * comp) { if (comp->getTypeId() == SoQtExaminerViewer::getClassTypeId()) { // safe downward cast, knows the type SoQtExaminerViewer * exviewer = (SoQtExaminerViewer *)comp; } else if (comp->getTypeId().isOfType(SoQtFlyViewer::getClassTypeId())) { // safe downward cast, knows the type SoQtFlyViewer * flyviewer = (SoQtFlyViewer *)comp; // then something else } } |
|
Returns |
|
Initialize the type system of SoQtObject, all SoQt device classes and all SoQt components (including viewers). |
Copyright © 1998-2005 by Systems in Motion AS. All rights reserved.
Generated on Mon Mar 27 00:38:52 2006 for SoQt by Doxygen. 1.4.6