Inventor/nodekits/SoSubKit.h File Reference

#include <Inventor/nodekits/SoBaseKit.h>
#include <Inventor/nodes/SoNode.h>
#include <Inventor/fields/SoSFNode.h>
#include <Inventor/nodekits/SoNodekitCatalog.h>
#include <Inventor/nodekits/SoNodeKitListPart.h>

Go to the source code of this file.

Defines

#define SO__KIT_CATALOG_HEADER(className)
#define SO_KIT_HEADER(className)
#define SO_KIT_ABSTRACT_HEADER(className)
#define SO_KIT_CATALOG_ENTRY_HEADER(partName)
#define SO__KIT_CATALOG_VARS(className)
#define SO__KIT_CATALOG_METHODS(className)
#define SO_KIT_SOURCE(className)
#define SO_KIT_ABSTRACT_SOURCE(className)
#define SO__KIT_INIT_CLASS(className, classPrintName, parentClass)
#define SO__KIT_INIT_ABSTRACT_CLASS(className, classPrintName, parentClass)
#define SO__KIT_EXIT_CLASS(className)
#define SO_KIT_INIT_CLASS(className, parentClass, parentPrintClass)
#define SO_KIT_INIT_ABSTRACT_CLASS(className, parentClass, parentPrintClass)
#define SO__KIT_INHERIT_CATALOG(className)
#define SO_KIT_CONSTRUCTOR(className)
#define SO_KIT_IS_FIRST_INSTANCE()   SO_NODE_IS_FIRST_INSTANCE()
#define SO_KIT_ADD_FIELD(fieldName, defValue)   SO_NODE_ADD_FIELD(fieldName,defValue)
#define SO_KIT_DEFINE_ENUM_VALUE(enumType, enumValue)   SO_NODE_DEFINE_ENUM_VALUE(enumType,enumValue)
#define SO_KIT_SET_MF_ENUM_TYPE(fieldName, enumType)   SO_NODE_SET_MF_ENUM_TYPE(fieldName, enumType)
#define SO_KIT_SET_SF_ENUM_TYPE(fieldName, enumType)   SO_NODE_SET_SF_ENUM_TYPE(fieldName, enumType)
#define SO_KIT_ADD_CATALOG_ENTRY(partName, partClassName, nullByDefault, parentName, rightName, isPublicPart)
#define SO_KIT_ADD_CATALOG_ABSTRACT_ENTRY(partName, partClassName,defaultPartClassName, nullByDefault, parentName,rightName, isPublicPart)
#define SO_KIT_ADD_CATALOG_LIST_ENTRY(partName, listContainerClassName, nullByDefault, parentName, rightName, listItemClassName, isPublicPart)
#define SO_KIT_ADD_LIST_ITEM_TYPE(partName, newListItemClassName)
#define SO_KIT_CHANGE_ENTRY_TYPE(partName, newPartClassName,newDefaultPartClassName)
#define SO_KIT_CHANGE_NULL_BY_DEFAULT(partName, newNullByDefault)
#define SO_KIT_INIT_INSTANCE()

Define Documentation

#define SO__KIT_CATALOG_HEADER ( className   ) 
Value:
private:                                                                    \
    /* design of this class */                                                \
    static SoNodekitCatalog *nodekitCatalog;                 \
    /* parent design */                                                       \
    static const SoNodekitCatalog **parentNodekitCatalogPtr; \
  public:                                                                     \
     \
    static const SoNodekitCatalog *getClassNodekitCatalog();                  \
                         \
    virtual const SoNodekitCatalog *getNodekitCatalog() const;                \
  private:                                                                  \
    static const SoNodekitCatalog **getClassNodekitCatalogPtr()
#define SO__KIT_CATALOG_METHODS ( className   ) 
Value:
const SoNodekitCatalog *                                                      \
className::getNodekitCatalog() const                                          \
{                                                                             \
    return nodekitCatalog;                                                    \
}                                                                             \
                                                                              \
const SoNodekitCatalog *                                                      \
className::getClassNodekitCatalog()                                           \
{                                                                             \
  return nodekitCatalog;                                                      \
}                                                                             \
                                                                              \
const SoNodekitCatalog **                                                     \
className::getClassNodekitCatalogPtr()                                        \
{                                                                             \
  return (const SoNodekitCatalog **)&nodekitCatalog;                          \
}
#define SO__KIT_CATALOG_VARS ( className   ) 
Value:
SoNodekitCatalog   *className::nodekitCatalog = NULL;                          \
const SoNodekitCatalog   **className::parentNodekitCatalogPtr = NULL
#define SO__KIT_EXIT_CLASS ( className   ) 
Value:
SO__NODE_EXIT_CLASS(className); \
  delete nodekitCatalog; nodekitCatalog = NULL;
#define SO__KIT_INHERIT_CATALOG ( className   ) 
Value:
/* get a copy of the catalog from the base class */                       \
  if (firstInstance)                                                          \
  {                                                                           \
    if (parentNodekitCatalogPtr == NULL)  /* only true in SoBaseKit */        \
      nodekitCatalog = new SoNodekitCatalog;                                  \
    else                                                                      \
      nodekitCatalog = (*parentNodekitCatalogPtr)->clone(SoType::fromName(SO__QUOTE(className))); \
  }
#define SO__KIT_INIT_ABSTRACT_CLASS ( className,
classPrintName,
parentClass   ) 
Value:
SO__NODE_INIT_ABSTRACT_CLASS(className,classPrintName,parentClass);         \
  parentNodekitCatalogPtr = parentClass::getClassNodekitCatalogPtr()
#define SO__KIT_INIT_CLASS ( className,
classPrintName,
parentClass   ) 
Value:
SO__NODE_INIT_CLASS(className,classPrintName,parentClass);                  \
  parentNodekitCatalogPtr = parentClass::getClassNodekitCatalogPtr()
#define SO_KIT_ABSTRACT_HEADER ( className   ) 
#define SO_KIT_ABSTRACT_SOURCE ( className   ) 
#define SO_KIT_ADD_CATALOG_ABSTRACT_ENTRY ( partName,
partClassName,
defaultPartClassName,
nullByDefault,
parentName,
rightName,
isPublicPart   ) 
Value:
SO_KIT_ADD_FIELD(partName,(NULL));                                         \
   if (firstInstance && !nodekitCatalog->addEntry(SO__QUOTE(partName),        \
                    SoType::fromName(SO__QUOTE(partClassName)),               \
                    SoType::fromName(SO__QUOTE(defaultPartClassName)), nullByDefault,\
                    SO__QUOTE(parentName), SO__QUOTE(rightName), FALSE,       \
                    SoType::badType(), SoType::badType(), isPublicPart  ))    \
        catalogError()
#define SO_KIT_ADD_CATALOG_ENTRY ( partName,
partClassName,
nullByDefault,
parentName,
rightName,
isPublicPart   ) 
Value:
SO_KIT_ADD_FIELD(partName,(NULL));                                         \
   if (firstInstance && !nodekitCatalog->addEntry(SO__QUOTE(partName),        \
                    SoType::fromName(SO__QUOTE(partClassName)),               \
                    SoType::fromName(SO__QUOTE(partClassName)), nullByDefault,\
                    SO__QUOTE(parentName),                                    \
                    SO__QUOTE(rightName), FALSE, SoType::badType(),           \
                    SoType::badType(), isPublicPart  ))                       \
        catalogError()
#define SO_KIT_ADD_CATALOG_LIST_ENTRY ( partName,
listContainerClassName,
nullByDefault,
parentName,
rightName,
listItemClassName,
isPublicPart   ) 
Value:
SO_KIT_ADD_FIELD(partName,(NULL));                                        \
    if (firstInstance && !nodekitCatalog->addEntry(SO__QUOTE(partName),       \
                  SoNodeKitListPart::getClassTypeId(),                        \
                  SoNodeKitListPart::getClassTypeId(), nullByDefault,         \
                  SO__QUOTE(parentName), SO__QUOTE(rightName), TRUE,          \
                  SoType::fromName(SO__QUOTE(listContainerClassName)),        \
                  SoType::fromName(SO__QUOTE(listItemClassName)), isPublicPart)) \
        catalogError()
#define SO_KIT_ADD_FIELD ( fieldName,
defValue   )     SO_NODE_ADD_FIELD(fieldName,defValue)
#define SO_KIT_ADD_LIST_ITEM_TYPE ( partName,
newListItemClassName   ) 
Value:
if (firstInstance) nodekitCatalog->addListItemType(SO__QUOTE(partName), \
          SoType::fromName(SO__QUOTE(newListItemClassName)) )
#define SO_KIT_CATALOG_ENTRY_HEADER ( partName   ) 
Value:
private:                                                                  \
    SoSFNode partName
#define SO_KIT_CHANGE_ENTRY_TYPE ( partName,
newPartClassName,
newDefaultPartClassName   ) 
Value:
if (firstInstance) nodekitCatalog->narrowTypes(SO__QUOTE(partName),      \
           SoType::fromName(SO__QUOTE(newPartClassName)),                     \
           SoType::fromName(SO__QUOTE(newDefaultPartClassName)))
#define SO_KIT_CHANGE_NULL_BY_DEFAULT ( partName,
newNullByDefault   ) 
Value:
if (firstInstance) nodekitCatalog->setNullByDefault(SO__QUOTE(partName),   \
        newNullByDefault)
#define SO_KIT_CONSTRUCTOR ( className   ) 
#define SO_KIT_DEFINE_ENUM_VALUE ( enumType,
enumValue   )     SO_NODE_DEFINE_ENUM_VALUE(enumType,enumValue)
#define SO_KIT_HEADER ( className   ) 
Value:

Returns the SoNodekitCatalog for this class.

Returns the SoNodekitCatalog for this instance

#define SO_KIT_INIT_ABSTRACT_CLASS ( className,
parentClass,
parentPrintClass   ) 
Value:
SO_NODE_INIT_ABSTRACT_CLASS(className,parentClass,parentPrintClass);        \
  parentNodekitCatalogPtr = parentClass::getClassNodekitCatalogPtr()
#define SO_KIT_INIT_CLASS ( className,
parentClass,
parentPrintClass   ) 
Value:
SO_NODE_INIT_CLASS(className,parentClass,parentPrintClass);                 \
  parentNodekitCatalogPtr = parentClass::getClassNodekitCatalogPtr()
 
#define SO_KIT_INIT_INSTANCE (  ) 
Value:
createNodekitPartsList(); \
   createDefaultParts()
 
#define SO_KIT_IS_FIRST_INSTANCE (  )     SO_NODE_IS_FIRST_INSTANCE()
#define SO_KIT_SET_MF_ENUM_TYPE ( fieldName,
enumType   )     SO_NODE_SET_MF_ENUM_TYPE(fieldName, enumType)
#define SO_KIT_SET_SF_ENUM_TYPE ( fieldName,
enumType   )     SO_NODE_SET_SF_ENUM_TYPE(fieldName, enumType)
#define SO_KIT_SOURCE ( className   ) 

Open Inventor Toolkit reference manual, generated on 18 Apr 2021
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/