1 #ifndef COIN_SOBASEKIT_H
2 #define COIN_SOBASEKIT_H
27 #include <Inventor/nodekits/SoSubKit.h>
28 #include <Inventor/nodes/SoNode.h>
31 #else // !COIN_INTERNAL
33 #include <Inventor/SoNodeKitPath.h>
34 #include <Inventor/misc/SoChildList.h>
35 #endif // !COIN_INTERNAL
44 #define SO_GET_PART(_kit_, _name_, _classname_) \
45 ((_classname_ *)_kit_->getPart(_name_, TRUE))
47 #define SO_CHECK_PART(_kit_, _name_, _classname_) \
48 ((_classname_ *)_kit_->getPart(_name_, FALSE))
50 #define SO_GET_ANY_PART(_kit_, _name_, _classname_) \
51 ((_classname_ *)_kit_->getAnyPart(_name_, TRUE, FALSE, FALSE))
53 #define SO_CHECK_ANY_PART(_kit_, _name_, _classname_) \
54 ((_classname_ *)_kit_->getAnyPart(_name_, FALSE, FALSE, FALSE))
62 SO_KIT_CATALOG_ENTRY_HEADER(callbackList);
71 virtual SoNode * getPart(
const SbName & partname, SbBool makeifneeded);
75 const SoPath * pathtoextend = NULL);
76 virtual SbBool setPart(
const SbName & partname,
SoNode * from);
77 SbBool
set(
const char * namevaluepairliststring);
78 SbBool
set(
const char * partnamestring,
const char * parameterstring);
93 void printDiagram(
void);
94 void printSubDiagram(
const SbName & rootname,
int level);
95 void printTable(
void);
98 SbBool forceChildDrivenWriteRefs(
SoOutput * out);
100 static SbBool isSearchingChildren(
void);
101 static void setSearchingChildren(
const SbBool newval);
113 SbBool copyconnections);
116 SbBool makeifneeded = TRUE);
117 virtual SoNode * getAnyPart(
const SbName & partname, SbBool makeifneeded,
118 SbBool leafcheck = FALSE,
119 SbBool publiccheck = FALSE);
122 SbBool leafcheck = FALSE,
123 SbBool publiccheck = FALSE,
124 const SoPath * pathtoextend = NULL);
125 virtual SbBool setAnyPart(
const SbName & partname,
SoNode * from,
126 SbBool anypart = TRUE);
127 void createNodekitPartsList(
void);
128 void createFieldList(
void);
129 virtual void createDefaultParts(
void);
130 const SoNodekitParts * getNodekitPartsList(
void)
const;
133 void catalogError(
void);
134 virtual SbBool setUpConnections(SbBool onoff, SbBool doitalways = FALSE);
136 virtual void setDefaultOnNonWritingFields(
void);
139 virtual SbBool setPart(
const int partNum,
SoNode * node);
147 int & partnum, SbBool & islist,
int & listidx,
148 const SbBool makeifneeded,
SoPath * path = NULL,
149 const SbBool recsearch = FALSE);
150 static void atexit_cleanupkit(
void);
152 SbBool makePart(
const int partnum);
153 int getRightSiblingIndex(
const int partnum);
154 int findNodeInThisKit(
SoNode *node,
const int parentnum = -1)
const;
158 static SbBool searchchildren;
160 class SoBaseKitP * pimpl;
161 friend class SoBaseKitP;
164 #endif // !COIN_SOBASEKIT_H