Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoSubElement.h File Reference

Go to the source code of this file.

Macros

#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)
 

Macro Definition Documentation

◆ SO__ELEMENT_ABSTRACT_METHODS

#define SO__ELEMENT_ABSTRACT_METHODS (   className)

Definition at line 142 of file SoSubElement.h.

◆ SO__ELEMENT_ABSTRACT_VARS

#define SO__ELEMENT_ABSTRACT_VARS (   className)
Value:
SoType className::classTypeId; \
int className::classStackIndex = 0; \
SoElement::SoElementKeyType className::s_classElementKey = SoElement::badElementKey();
Stores runtime type information.
Definition SoType.h:98

Definition at line 112 of file SoSubElement.h.

◆ SO__ELEMENT_METHODS

#define SO__ELEMENT_METHODS (   className)

Definition at line 185 of file SoSubElement.h.

◆ SO__ELEMENT_VARS

#define SO__ELEMENT_VARS (   className)    SO__ELEMENT_ABSTRACT_VARS(className)

Definition at line 117 of file SoSubElement.h.

◆ SO_ELEMENT_ABSTRACT_HEADER

#define SO_ELEMENT_ABSTRACT_HEADER (   className)
Value:
public: \ \
static SoType getClassTypeId(); \ \
static int getClassStackIndex(); \
private: \ \
static SoElement::SoElementKeyType getClassElementKey(); \
virtual SoElement::SoElementKeyType getElementKey() const; \
virtual int getClassStackIndexInternal() const; \
private: \
className(); \
private: \
static int classStackIndex; \
static SoType classTypeId; \
static SoElement::SoElementKeyType s_classElementKey;
static int getClassStackIndex()
Returns the stack id for this element.

Definition at line 75 of file SoSubElement.h.

◆ SO_ELEMENT_ABSTRACT_SOURCE

#define SO_ELEMENT_ABSTRACT_SOURCE (   className)
Value:
SO__ELEMENT_ABSTRACT_METHODS(className)
#define SO__ELEMENT_ABSTRACT_VARS(className)

Definition at line 238 of file SoSubElement.h.

◆ SO_ELEMENT_CHECK_INIT

#define SO_ELEMENT_CHECK_INIT (   className)
Value:
{ \
if (classTypeId.isBad()) { \
className::initClass(); \
} \
}

Definition at line 132 of file SoSubElement.h.

◆ SO_ELEMENT_EXIT_CLASS

#define SO_ELEMENT_EXIT_CLASS (   className)
Value:
SoType::removeType(classTypeId.getName()); \
classTypeId = SoType::badType(); \
classStackIndex = 0
static SoType badType()
Returns an always-illegal type.
Definition SoType.h:124

Definition at line 310 of file SoSubElement.h.

◆ SO_ELEMENT_HEADER

#define SO_ELEMENT_HEADER (   className)
Value:
private: \
static void *createInstance(SoType* dynamicType = NULL)
#define SO_ELEMENT_ABSTRACT_HEADER(className)

Definition at line 96 of file SoSubElement.h.

◆ SO_ELEMENT_INIT_ABSTRACT_CLASS

#define SO_ELEMENT_INIT_ABSTRACT_CLASS (   className,
  parentClass 
)     SO_ELEMENT_INIT_ABSTRACT_CLASS_INTERNAL(className, parentClass);

Definition at line 276 of file SoSubElement.h.

◆ SO_ELEMENT_INIT_ABSTRACT_CLASS_INTERNAL

#define SO_ELEMENT_INIT_ABSTRACT_CLASS_INTERNAL (   className,
  parentClass 
)
Value:
classTypeId = SoType::createType( parentClass::getClassTypeId(), \
SO__QUOTE(className), \
NULL); \
classStackIndex = parentClass::getClassStackIndex(); \
if(s_classElementKey == SoElement::badElementKey()) \
s_classElementKey = createElementKey();
#define SO_ELEMENT_INIT_CLASS_CHECK_PARENT(className, parentClass)

Definition at line 267 of file SoSubElement.h.

◆ SO_ELEMENT_INIT_CLASS

#define SO_ELEMENT_INIT_CLASS (   className,
  parentClass 
)     SO_ELEMENT_INIT_CLASS_INTERNAL(className, parentClass);

Definition at line 294 of file SoSubElement.h.

◆ SO_ELEMENT_INIT_CLASS_CHECK_PARENT

#define SO_ELEMENT_INIT_CLASS_CHECK_PARENT (   className,
  parentClass 
)
Value:
if (parentClass::getClassTypeId().isBad()) \
parentClass::initClass()

Definition at line 262 of file SoSubElement.h.

◆ SO_ELEMENT_INIT_CLASS_INTERNAL

#define SO_ELEMENT_INIT_CLASS_INTERNAL (   className,
  parentClass 
)
Value:
classTypeId = SoType::createType( parentClass::getClassTypeId(), \
SO__QUOTE(className), \
&className::createInstance); \
if (classStackIndex == 0) \
{ \
if (parentClass::getClassStackIndex() < 0) \
classStackIndex = createStackIndex(classTypeId); \
else \
classStackIndex = parentClass::getClassStackIndex(); \
} \
if(s_classElementKey == SoElement::badElementKey()) \
s_classElementKey = createElementKey();

Definition at line 279 of file SoSubElement.h.

◆ SO_ELEMENT_SOURCE

#define SO_ELEMENT_SOURCE (   className)
Value:
SO__ELEMENT_METHODS(className)
#define SO__ELEMENT_VARS(className)

Definition at line 242 of file SoSubElement.h.