51#ifndef  _SO_NODEKIT_CATALOG 
   52#define  _SO_NODEKIT_CATALOG 
   59#define SO_CATALOG_NAME_NOT_FOUND -1 
   60#define SO_CATALOG_THIS_PART_NUM   0 
   62#ifndef HIDDEN_FROM_DOC 
   95  SoNodekitCatalogEntry(
const SbName &theName, 
 
   98                        const SbName &theParentName, 
const SbName &theRightSiblingName, 
 
  104  SoNodekitCatalogEntry *clone() 
const;           
 
  105  SoNodekitCatalogEntry *clone( 
SoType newType,
 
  106                                SoType newDefaultType ) 
const; 
 
  109  const SbName  &getName()
 const { 
return name; };
 
  111  SoType  getDefaultType()
 const { 
return defaultType; };
 
  112  SbBool  isNullByDefault()
 const { 
return nullByDefault; };
 
  113  SbBool  isLeaf()
 const { 
return leafPart; };
 
  114  const SbName  &getParentName()
 const { 
return parentName; };
 
  115  const SbName  &getRightSiblingName()
 const { 
return rightSiblingName; };
 
  116  SbBool  isList()
 const { 
return listPart; };
 
  117  SoType  getListContainerType()
 const {
return listContainerType;};
 
  118  const SoTypeList &getListItemTypes()
 const { 
return listItemTypes; };
 
  119  SbBool  isPublic()
 const { 
return publicPart; };
 
  122  void addListItemType( 
SoType typeToAdd );
 
  124  void setNullByDefault( 
SbBool newNullByDefault ) 
 
  125    { nullByDefault = newNullByDefault; }
 
  128  void setPublic( 
SbBool newPublic ) { publicPart = newPublic; }
 
  129  void setLeaf( 
SbBool newLeafPart ) { leafPart = newLeafPart; }
 
  130  void setRightSiblingName( 
const SbName &newN ) { rightSiblingName = newN; }
 
  134    { type = newType; defaultType = newDefaultType; }
 
  141  void printCheck() 
const; 
 
  194  static void initClass();
 
  195  static void exitClass();
 
  339                  const SbName &theParentName, 
 
  341                  SoType theListContainerType,
 
  346  void addListItemType(
int thePartNumber, 
SoType typeToAdd);
 
  347  void addListItemType(
const SbName &theName,   
SoType typeToAdd);
 
  361  void narrowTypes( 
const SbName &theName, 
SoType newType, 
 
  364  void setNullByDefault( 
const SbName &theName, 
SbBool newNullByDefault );
 
  370  SbBool recursiveSearch( 
int partNumber, 
const SbName &nameToFind, 
 
  373  void printCheck() 
const; 
 
  376  static const SbName *emptyName;
 
  381  SoNodekitCatalogEntry **entries;    
 
  390                                  const SbName &theParentName, 
 
  391                                  SoNodekitCatalogEntry *& parentEntry );
 
  392  SbBool    checkAndGetSiblings(  
const SbName &theParentName, 
 
  393                                  const SbName &theRightSiblingName, 
 
  394                                  SoNodekitCatalogEntry *& leftEntry,
 
  395                                  SoNodekitCatalogEntry *& rightEntry );
 
  398                                  SoType theListContainerType );
 
 
virtual SoGLGraphicDevice::DeviceType getType()=0
Returns the type of device.
Character string stored in a hash table.
SoType getListContainerType(int thePartNumber) const
Returns the list container type of the specified part.
SoType getListContainerType(const SbName &theName) const
Returns the list container type of the specified part.
SoType getType(int thePartNumber) const
Returns the type of the specified part.
const SoTypeList & getListItemTypes(const SbName &theName) const
Returns a list of the types of nodes that the specified part can contain.
SoType getDefaultType(const SbName &theName) const
Returns the default type of the specified part.
SoType getDefaultType(int thePartNumber) const
Returns the default type of the specified part.
int getNumEntries() const
Returns the number of entries in the catalog.
int getParentPartNumber(const SbName &theName) const
Returns the part number of the parent of the specified part.
SbBool isLeaf(int thePartNumber) const
Returns TRUE if the specified part is a leaf node.
const SbName & getParentName(const SbName &theName) const
Returns the parent of the specified part.
SbBool isList(const SbName &theName) const
Returns TRUE if the specified part is a parts list.
const SbName & getRightSiblingName(int thePartNumber) const
Returns the name of the right sibling of the specified part.
const SbName & getRightSiblingName(const SbName &theName) const
Returns the name of the right sibling of the specified part.
int getRightSiblingPartNumber(const SbName &theName) const
Returns the part number of the right sibling of the specified part.
SbBool isLeaf(const SbName &theName) const
Returns TRUE if the specified part is a leaf node.
SbBool isPublic(const SbName &theName) const
Returns TRUE if the specified part is public.
SbBool isList(int thePartNumber) const
Returns TRUE if the specified part is a parts list.
const SbName & getParentName(int thePartNumber) const
Returns the parent of the specified part.
const SoTypeList & getListItemTypes(int thePartNumber) const
Returns a list of the types of nodes that the specified part can contain.
SoType getType(const SbName &theName) const
Returns the type of the specified part.
SbBool isNullByDefault(int thePartNumber) const
Returns TRUE if the specified part is null by default.
int getParentPartNumber(int thePartNumber) const
Returns the part number of the parent of the specified part.
int getPartNumber(const SbName &theName) const
Given the name of a part, returns its part number in the catalog.
SbBool isPublic(int thePartNumber) const
Returns TRUE if the specified part is public.
SbBool isNullByDefault(const SbName &theName) const
Returns TRUE if the specified part is null by default.
const SbName & getName(int thePartNumber) const
Given the part number of a part, returns its name in the catalog.
int getRightSiblingPartNumber(int thePartNumber) const
Returns the part number of the right sibling of the specified part.
Stores runtime type information.
Maintains a list of SoTypes.