343 SO_KIT_CATALOG_ENTRY_HEADER(callbackList);
413 template<
typename PartType>
416 SoNode* part =
getPart( partName, TRUE );
418 part = typeCheck<PartType>( partName, part );
420 return static_cast<PartType*
>(part);
442 template<
typename PartType>
445 SoNode* part =
getPart( partName, FALSE );
447 part = typeCheck<PartType>( partName, part );
449 return static_cast<PartType*
>(part);
471 SbBool makeIfNeeded,
const SoPath *pathToExtend = NULL );
515 SoNONUNICODE
SbBool set(
char *nameValuePairListString);
552 SoNONUNICODE
SbBool set(
const char *partNameString,
const char *parameterString);
592 inline virtual SbBool isBoundingBoxIgnoring()
const
595 virtual void doAction(
SoAction *action );
598 virtual void GLRender( SoGLRenderAction *action );
599 virtual void getBoundingBox( SoGetBoundingBoxAction *action );
600 virtual void getMatrix(SoGetMatrixAction *action );
601 virtual void handleEvent( SoHandleEventAction *action );
602 virtual void rayPick( SoRayPickAction *action );
603 virtual void search( SoSearchAction *action );
604 virtual void write( SoWriteAction *action );
605 virtual void getPrimitiveCount (SoGetPrimitiveCountAction *action);
608 static void initClass();
609 static void exitClass();
615 SbBool set(
char *partNameString,
char *parameterString)
616 {
return set((
const char*)partNameString, (
const char*)parameterString); };
621 static SoNode *typeCheck(
const SbName &partName,
const SoType &partType,
625 template<
typename PartType>
626 static SoNode* typeCheck(
const SbName& partName, SoNode* node )
628 return typeCheck( partName, PartType::getClassTypeId(), node );
632 void printSubDiagram(
const SbName &rootName,
int level );
656 static void enableNotification(
SbBool);
657 static SbBool isEnabledNotification();
659 virtual SbBool setAnyPart(
const SbName &partName, SoNode *from,
SbBool anyPart = TRUE );
661 SoNode *internalGetAnyPart(
const SbName &partName,
SbBool makeIfNeeded,
665 virtual void internalRemoveChild(
int index ) { removeChild(index); }
666 virtual void internalRemoveChild(
SoNode *child ) { removeChild(findChild(child)); }
667 virtual void internalRemoveAllChildren() { removeAllChildren(); }
668 virtual void internalAddChild( SoNode *child ) { addChild(child); }
669 virtual int internalFindChild(
const SoNode *child )
const {
return findChild(child); }
670 virtual void internalInsertChild( SoNode *child,
int newChildIndex ) { insertChild(child, newChildIndex); }
671 virtual SoNode *internalGetChild(
int index)
const {
return getChild(index); }
672 virtual void internalReplaceChild(
int index, SoNode *newChild) { replaceChild(index, newChild); }
673 virtual void internalReplaceChild( SoNode *oldChild, SoNode *newChild) { replaceChild(oldChild,newChild); }
676 virtual SoNode * addToCopyDict()
const;
679 virtual void copyContents(
const SoFieldContainer *fromFC,
688 SoGroup *getContainerNode(
const SbName &listName,
689 SbBool makeIfNeeded = TRUE );
695 virtual SoNode *getAnyPart(
const SbName &partName,
SbBool makeIfNeeded,
717 template<
typename PartType>
718 PartType* getAnyPart(
const SbName& partName )
720 SoNode* part = getAnyPart( partName, TRUE, FALSE, FALSE );
722 part = typeCheck<PartType>( partName, part );
724 return static_cast<PartType*
>(part);
746 template<
typename PartType>
747 PartType* checkAnyPart(
const SbName& partName )
749 SoNode* part = getAnyPart( partName, FALSE, FALSE, FALSE );
751 part = typeCheck<PartType>( partName, part );
753 return static_cast<PartType*
>(part);
756 virtual SoNodeKitPath *createPathToAnyPart(
const SbName &partName,
759 const SoPath *pathToExtend = NULL );
765 void createNodekitPartsList();
768 virtual void createDefaultParts();
772 {
return nodekitPartsList; };
791 virtual SbBool readInstance(SoInput *in,
unsigned short flags);
803 virtual void setDefaultOnNonWritingFields();
824 void countMyFields(SoOutput *out);
828 static SbBool m_enableBaseKitNotification;
833 void endWrite( SoOutput* out );
836 void skipWhiteSpace(
char *&
string);
840 SbBool isNodeFieldValuesImportant( SoNode *n );
844 void createFieldDataForWriting();
848 SoFieldData *fieldDataForWriting;
856 SbBool readMyFields(SoInput *in, SoFieldData *&unknownFieldData );
866 void undoSetDefaultOnFieldsThatMustWrite();
869 int getNumChildren()
const {
return (children->getLength()); }
870 void removeChild(
int index );
871 void removeChild( SoNode *child ) { removeChild(findChild(child)); }
872 void removeAllChildren();
873 void addChild( SoNode *child );
874 int findChild(
const SoNode *child )
const;
875 void insertChild( SoNode *child,
int newChildIndex );
876 SoNode *getChild(
int index)
const {
return (*children)[index]; }
877 void replaceChild(
int index, SoNode *newChild);
878 void replaceChild( SoNode *oldChild, SoNode *newChild)
879 { replaceChild(findChild(oldChild),newChild); }
881 static SbBool searchingChildren;