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.