#include <Inventor/elements/SoElement.h>
Go to the source code of this file.
Defines | |
#define | SO_ELEMENT_ABSTRACT_HEADER(className) |
#define | SO_ELEMENT_HEADER(className) |
#define | SO__ELEMENT_ABSTRACT_VARS(className) |
#define | SO__ELEMENT_VARS(className) SO__ELEMENT_ABSTRACT_VARS(className) |
#define | SO_ELEMENT_CHECK_INIT(className) |
#define | SO__ELEMENT_ABSTRACT_METHODS(className) |
#define | SO__ELEMENT_METHODS(className) |
#define | SO_ELEMENT_ABSTRACT_SOURCE(className) |
#define | SO_ELEMENT_SOURCE(className) |
#define | SO_ELEMENT_INIT_CLASS_CHECK_PARENT(className, parentClass) |
#define | SO_ELEMENT_INIT_ABSTRACT_CLASS_INTERNAL(className, parentClass) |
#define | SO_ELEMENT_INIT_ABSTRACT_CLASS(className, parentClass) SO_ELEMENT_INIT_ABSTRACT_CLASS_INTERNAL(className, parentClass); |
#define | SO_ELEMENT_INIT_CLASS_INTERNAL(className, parentClass) |
#define | SO_ELEMENT_INIT_CLASS(className, parentClass) SO_ELEMENT_INIT_CLASS_INTERNAL(className, parentClass); |
#define | SO_ELEMENT_EXIT_CLASS(className) |
#define SO__ELEMENT_ABSTRACT_METHODS | ( | className | ) |
\ className::className() \ { \ SO_ELEMENT_CHECK_INIT(className); \ commonInit() ; \ } \ \ SoType \ className::getClassTypeId() \ { \ return classTypeId; \ } \ \ int \ className::getClassStackIndex() \ { \ return classStackIndex; \ } \ \ int \ className::getClassStackIndexInternal() const \ { \ return className::classStackIndex; \ }
#define SO__ELEMENT_ABSTRACT_VARS | ( | className | ) |
SoType className::classTypeId; \ int className::classStackIndex = 0;
#define SO__ELEMENT_METHODS | ( | className | ) |
#define SO_ELEMENT_ABSTRACT_HEADER | ( | className | ) |
public: \ \ static SoType getClassTypeId(); \ \ static int getClassStackIndex(); \ private: \ \ virtual int getClassStackIndexInternal() const; \ private: \ className(); \ private: \ static int classStackIndex; \ static SoType classTypeId
#define SO_ELEMENT_ABSTRACT_SOURCE | ( | className | ) |
#define SO_ELEMENT_CHECK_INIT | ( | className | ) |
{ \ if (classTypeId.isBad()) { \ className::initClass(); \ } \ }
#define SO_ELEMENT_EXIT_CLASS | ( | className | ) |
SoType::removeType(classTypeId.getName()); \ classTypeId = SoType::badType(); \ classStackIndex = 0
#define SO_ELEMENT_HEADER | ( | className | ) |
SO_ELEMENT_ABSTRACT_HEADER(className); \ private: \ static void *createInstance(SoType* dynamicType = NULL)
Returns the type identifier for this class.
Returns the stack id for this element. \ Returns the stack id for this element.
#define SO_ELEMENT_INIT_ABSTRACT_CLASS | ( | className, | |||
parentClass | ) | SO_ELEMENT_INIT_ABSTRACT_CLASS_INTERNAL(className, parentClass); |
#define SO_ELEMENT_INIT_ABSTRACT_CLASS_INTERNAL | ( | className, | |||
parentClass | ) |
SO_ELEMENT_INIT_CLASS_CHECK_PARENT(className, parentClass); \ classTypeId = SoType::createType( parentClass::getClassTypeId(), \ SO__QUOTE(className), \ NULL); \ classStackIndex = parentClass::getClassStackIndex();
#define SO_ELEMENT_INIT_CLASS | ( | className, | |||
parentClass | ) | SO_ELEMENT_INIT_CLASS_INTERNAL(className, parentClass); |
#define SO_ELEMENT_INIT_CLASS_CHECK_PARENT | ( | className, | |||
parentClass | ) |
if (parentClass::getClassTypeId().isBad()) \ parentClass::initClass()
#define SO_ELEMENT_INIT_CLASS_INTERNAL | ( | className, | |||
parentClass | ) |
SO_ELEMENT_INIT_CLASS_CHECK_PARENT(className, parentClass); \ classTypeId = SoType::createType( parentClass::getClassTypeId(), \ SO__QUOTE(className), \ &className::createInstance); \ if (classStackIndex == 0) \ { \ if (parentClass::getClassStackIndex() < 0) \ classStackIndex = createStackIndex(classTypeId); \ else \ classStackIndex = parentClass::getClassStackIndex(); \ }
#define SO_ELEMENT_SOURCE | ( | className | ) |