SoQtObject − The SoQtObject class is the common superclass for all SoQt component classes.
#include <Inventor/Qt/SoQtObject.h>
Inherited by SoQtComponent, and SoQtDevice.
virtual SoType
getTypeId (void) const =0
SbBool isOfType (SoType type) const
static void
initClass (void)
static SoType getClassTypeId (void)
static void init (void)
The SoQtObject class is the common superclass for all SoQt component classes.
The purpose of making this class the superclass of all SoQt device, component and viewer classes is to be able to do runtime 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 provide the necessary definitions for setting up a runtime 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 source code file to include the necessary code for the runtime 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.
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 runtime 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
}
}
Implemented in SoQtComponent.
Returns TRUE if the type of this object is either of the same type or inherited from type.
Initialize the type system of SoQtObject, all SoQt device classes and all SoQt components (including viewers).
Generated automatically by Doxygen for SoQt from the source code.