277        { 
return nodekitCatalog; }
 
 
  372                    bool makeIfNeeded, 
const SoPath *pathToExtend = NULL );
 
  403    bool set(
char *nameValuePairListString);
 
  404    bool set(
char *partNameString, 
char *parameterString);
 
  441                                          bool isFromField = 
FALSE);
 
  445    friend class SoV1BaseKit;
 
  467                                     bool copyConnections);
 
  472                               bool makeIfNeeded = 
TRUE );
 
  479                        bool leafCheck = 
FALSE, 
bool publicCheck = 
FALSE );
 
  482                    bool leafCheck = 
FALSE, 
bool publicCheck = 
FALSE,
 
  483                   const SoPath *pathToExtend = NULL );
 
  485                       bool anyPart = 
TRUE );
 
  498                            { 
return nodekitPartsList; };
 
 
  555    void skipWhiteSpace(
char *&
string);
 
  559    bool isNodeFieldValuesImportant( 
SoNode *n );
 
  563    void createFieldDataForWriting();
 
  579    void undoSetDefaultOnFieldsThatMustWrite();
 
  582    int  getNumChildren()
 const { 
return (children->
getLength()); }
 
  583    void removeChild( 
int index );
 
  584    void removeChild( 
SoNode *child  ) { removeChild(findChild(child)); }
 
  585    void addChild( 
SoNode *child );
 
  586    int  findChild( 
const SoNode *child ) 
const;
 
  587    void insertChild( 
SoNode *child, 
int newChildIndex );
 
  588    SoNode *getChild( 
int index)
 const { 
return (*children)[index]; }
 
  589    void replaceChild( 
int index, 
SoNode *newChild);
 
  591        { replaceChild(findChild(oldChild),newChild); }
 
  593    static bool searchingChildren;
 
 
  611#define SO_GET_PART( kitContainingPart, partName, partClassName )              \ 
  612        ((partClassName *) SoBaseKit::typeCheck( partName,                     \ 
  613                               partClassName::getClassTypeId(),               \ 
  614                               kitContainingPart->getPart( partName, TRUE ))) 
  616#define SO_CHECK_PART( kitContainingPart, partName, partClassName )            \ 
  617        ((partClassName *) SoBaseKit::typeCheck( partName,                    \ 
  618                               partClassName::getClassTypeId(),               \ 
  619                               kitContainingPart->getPart( partName, FALSE ))) 
  621#define SO_GET_ANY_PART( kitContainingPart, partName, partClassName )         \ 
  622        ((partClassName *) SoBaseKit::typeCheck( partName,                    \ 
  623                partClassName::getClassTypeId(),                              \ 
  624                kitContainingPart->getAnyPart( partName, TRUE, FALSE, FALSE ))) 
  626#define SO_CHECK_ANY_PART( kitContainingPart, partName, partClassName )       \ 
  627        ((partClassName *) SoBaseKit::typeCheck( partName,                    \ 
  628                partClassName::getClassTypeId(),                              \ 
  629                kitContainingPart->getAnyPart( partName, FALSE, FALSE, FALSE ))) 
  632#define SO_GET_PART( kitContainingPart, partName, partClassName )             \ 
  633        ((partClassName *) kitContainingPart->getPart( partName, TRUE )) 
 
  634#define SO_CHECK_PART( kitContainingPart, partName, partClassName )           \ 
  635        ((partClassName *) kitContainingPart->getPart( partName, FALSE )) 
 
  636#define SO_GET_ANY_PART( kitContainingPart, partName, partClassName )        \ 
  637        ((partClassName *) kitContainingPart->getAnyPart( partName, TRUE,    \ 
 
  639#define SO_CHECK_ANY_PART( kitContainingPart, partName, partClassName )      \ 
  640        ((partClassName *) kitContainingPart->getAnyPart( partName, FALSE,   \ 
 
#define SoEXTENDER
Provide inline template functions for abs, swap, min, max, and clamp.
 
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
 
#define SO_NODE_HEADER(className)
Non-abstract classes have everything abstract classes have, plus a way to create an instance.
 
This is a dictionary mapping (size_t) integer keys to (void *) data pointers.
 
Character string stored in a hash table.
 
int getLength() const
Returns number of pointers in list.
 
Class for smart character strings.
 
Abstract base class for all actions.
 
Base class for all node kits.
 
static const SoNodekitCatalog ** getClassNodekitCatalogPtr()
...end of contents of SO_KIT_HEADER
 
virtual void handleEvent(SoHandleEventAction *action)
 
virtual void search(SoSearchAction *action)
 
void createNodekitPartsList()
called during construction to create parts list
 
void printSubDiagram(const SbName &rootName, int level)
 
SoGroup * getContainerNode(const SbName &listName, bool makeIfNeeded=TRUE)
Returns the containerNode within the SoNodeKitListPart given by listName.
 
virtual bool setUpConnections(bool onOff, bool doItAlways=FALSE)
detach/attach any sensors, callbacks, and/or field connections.
 
static bool isSearchingChildren()
Sets and queries if nodekit children are searched during SoSearchAction traversal.
 
virtual const SoNodekitCatalog * getNodekitCatalog() const
Returns the SoNodekitCatalog for this instance of SoBaseKit.
 
virtual void rayPick(SoRayPickAction *action)
 
virtual void GLRender(SoGLRenderAction *action)
These virtual functions implement all of the actions for nodes, Most of the default implementations d...
 
virtual void copyContents(const SoFieldContainer *fromFC, bool copyConnections)
Copies the contents of the given nodekit into this instance.
 
bool set(char *partNameString, char *parameterString)
 
const SoNodekitParts * getNodekitPartsList() const
Return the node's partsList.
 
virtual void createDefaultParts()
called during construction to create any parts that are created by default (such as the cube in the S...
 
SO_KIT_CATALOG_ENTRY_HEADER(callbackList)
Define fields for the new parts of the kit...
 
virtual SoChildList * getChildren() const
Returns pointer to children.
 
virtual SoNode * addToCopyDict() const
Redefines this to add this node and all part nodes to the dictionary.
 
virtual bool readInstance(SoInput *in, unsigned short flags)
Reads in from file. Takes care of setting parts and stuff.
 
static void setSearchingChildren(bool newVal)
Sets and queries if nodekit children are searched during SoSearchAction traversal.
 
virtual SoNodeKitPath * createPathToAnyPart(const SbName &partName, bool makeIfNeeded, bool leafCheck=FALSE, bool publicCheck=FALSE, const SoPath *pathToExtend=NULL)
 
bool forceChildDrivenWriteRefs(SoOutput *out)
This returns TRUE if the nodekit intends to write out.
 
virtual void addWriteReference(SoOutput *out, bool isFromField=FALSE)
Overrides the default method to use countMyFields() instead of the regular SoFieldData writing mechan...
 
virtual bool setPart(const SbName &partName, SoNode *from)
Inserts the given node (not a copy) as the new part specified by partName.
 
SoNodekitParts * nodekitPartsList
parts list.
 
virtual void getMatrix(SoGetMatrixAction *action)
 
static SoNode * typeCheck(const SbName &partName, const SoType &partType, SoNode *node)
 
virtual void doAction(SoAction *action)
This method performs the "typical" operation of a node for any action.
 
virtual void callback(SoCallbackAction *action)
These functions implement all actions for nodekits.
 
virtual void setDefaultOnNonWritingFields()
This is called during countMyFields() method.
 
virtual void write(SoWriteAction *action)
 
virtual SoNode * getPart(const SbName &partName, bool makeIfNeeded)
Searches the nodekit catalog (and those of all nested nodekits) for the part named partName.
 
virtual void getBoundingBox(SoGetBoundingBoxAction *action)
 
void countMyFields(SoOutput *out)
This is called during addWriteReference() to write the fields.
 
void catalogError()
Prints an Error when there's trouble building a catalog.
 
virtual bool setAnyPart(const SbName &partName, SoNode *from, bool anyPart=TRUE)
 
bool set(char *nameValuePairListString)
SETTING FIELDS OF PARTS.
 
virtual SoNodeKitPath * createPathToPart(const SbName &partName, bool makeIfNeeded, const SoPath *pathToExtend=NULL)
Returns a path that begins at this nodekit and ends at partName.
 
SbString getPartString(const SoBase *part)
Given a node or a path to a node, checks if the part exists in the nodekit, in a nested nodekit,...
 
virtual SoNode * getAnyPart(const SbName &partName, bool makeIfNeeded, bool leafCheck=FALSE, bool publicCheck=FALSE)
like their public versions, but are allowed access to non-leaf and private parts.
 
static const SoNodekitCatalog * getClassNodekitCatalog()
Returns the SoNodekitCatalog for the class SoBaseKit.
 
Base class for all nodes, paths, and engines.
 
Performs a generic traversal of the scene graph.
 
This class maintains a list of child nodes for any node.
 
Abstract base class for objects that contain fields.
 
The SoFieldData class holds data about fields of an object: the number of fields the object has,...
 
Renders a scene graph using OpenGL.
 
Computes bounding box of a scene.
 
Computes transformation matrix for subgraph.
 
Base class for all group nodes.
 
Allows nodes in a graph to receive input events.
 
Path that points to a list of hierarchical nodekits.
 
Abstract base class for all database nodes.
 
an internal class that should be accessed only by an SoNodekitCatalog
 
Used to write Inventor data files.
 
Path that points to a list of hierarchical nodes.
 
Intersects objects with a ray cast into scene.
 
Searches for nodes in a scene graph.
 
Group node that saves and restores traversal state.
 
SoType has no virtual functions to keep it small...
 
Writes a scene graph to a file.