#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 SO__KIT_CATALOG_HEADER | ( | className | ) |
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 | ) |
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 | ) |
SoNodekitCatalog *className::nodekitCatalog = NULL; \ const SoNodekitCatalog **className::parentNodekitCatalogPtr = NULL
#define SO__KIT_EXIT_CLASS | ( | className | ) |
SO__NODE_EXIT_CLASS(className); \ delete nodekitCatalog; nodekitCatalog = NULL;
#define SO__KIT_INHERIT_CATALOG | ( | className | ) |
/* 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 | ) |
SO__NODE_INIT_ABSTRACT_CLASS(className,classPrintName,parentClass); \ parentNodekitCatalogPtr = parentClass::getClassNodekitCatalogPtr()
#define SO__KIT_INIT_CLASS | ( | className, | |||
classPrintName, | |||||
parentClass | ) |
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 | ) |
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 | ) |
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 | ) |
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 | ) |
if (firstInstance) nodekitCatalog->addListItemType(SO__QUOTE(partName), \ SoType::fromName(SO__QUOTE(newListItemClassName)) )
#define SO_KIT_CATALOG_ENTRY_HEADER | ( | partName | ) |
private: \ SoSFNode partName
#define SO_KIT_CHANGE_ENTRY_TYPE | ( | partName, | |||
newPartClassName, | |||||
newDefaultPartClassName | ) |
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 | ) |
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 | ) |
Returns the SoNodekitCatalog for this class.
Returns the SoNodekitCatalog for this instance
#define SO_KIT_INIT_ABSTRACT_CLASS | ( | className, | |||
parentClass, | |||||
parentPrintClass | ) |
SO_NODE_INIT_ABSTRACT_CLASS(className,parentClass,parentPrintClass); \ parentNodekitCatalogPtr = parentClass::getClassNodekitCatalogPtr()
#define SO_KIT_INIT_CLASS | ( | className, | |||
parentClass, | |||||
parentPrintClass | ) |
SO_NODE_INIT_CLASS(className,parentClass,parentPrintClass); \ parentNodekitCatalogPtr = parentClass::getClassNodekitCatalogPtr()
#define SO_KIT_INIT_INSTANCE | ( | ) |
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 | ) |