Inventor/elements/SoSubElement.h File Reference

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

#define SO__ELEMENT_ABSTRACT_METHODS ( className   ) 
#define SO__ELEMENT_ABSTRACT_VARS ( className   ) 
Value:
SoType  className::classTypeId;                         \
  int className::classStackIndex = 0;                     \
  SoElement::SoElementKeyType className::s_classElementKey = SoElement::badElementKey();
#define SO__ELEMENT_METHODS ( className   ) 
#define SO__ELEMENT_VARS ( className   )     SO__ELEMENT_ABSTRACT_VARS(className)
#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;
#define SO_ELEMENT_ABSTRACT_SOURCE ( className   ) 
#define SO_ELEMENT_CHECK_INIT ( className   ) 
Value:
{ \
  if (classTypeId.isBad()) { \
    className::initClass(); \
  } \
}
#define SO_ELEMENT_EXIT_CLASS ( className   ) 
Value:
SoType::removeType(classTypeId.getName()); \
  classTypeId = SoType::badType(); \
  classStackIndex = 0
#define SO_ELEMENT_HEADER ( className   ) 
Value:
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   ) 
Value:
SO_ELEMENT_INIT_CLASS_CHECK_PARENT(className, parentClass); \
    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 ( className,
parentClass   )     SO_ELEMENT_INIT_CLASS_INTERNAL(className, parentClass);
#define SO_ELEMENT_INIT_CLASS_CHECK_PARENT ( className,
parentClass   ) 
Value:
if (parentClass::getClassTypeId().isBad())                                          \
    parentClass::initClass()
#define SO_ELEMENT_INIT_CLASS_INTERNAL ( className,
parentClass   ) 
Value:
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(); \
    } \
    if(s_classElementKey == SoElement::badElementKey()) \
      s_classElementKey = createElementKey();
#define SO_ELEMENT_SOURCE ( className   ) 

Open Inventor Toolkit reference manual, generated on 15 Mar 2023
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/