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);
65 static void initClass(
void);
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
int getLength(void) const
Definition: SbPList.h:94
virtual void copyContents(const SoFieldContainer *fromfc, SbBool copyconnections)
Definition: SoBaseKit.cpp:1593
static SoType badType(void)
Definition: SoType.cpp:664
void replaceChild(int index, SoNode *newChild)
Definition: SoNodeKitListPart.cpp:371
The SoNodekitCatalog class is a container for nodekit layouts.
Definition: SoNodekitCatalog.h:36
int getNumFields(void) const
Definition: SoFieldData.cpp:288
virtual void search(SoSearchAction *action)
Definition: SoNode.cpp:1120
SbBool set(const char *namevaluepairliststring)
Definition: SoBaseKit.cpp:851
void printSubDiagram(const SbName &rootname, int level)
Definition: SoBaseKit.cpp:1430
virtual void GLRender(SoGLRenderAction *action)
Definition: SoBaseKit.cpp:1007
SbBool shouldWrite(void)
Definition: SoBase.cpp:1040
virtual SbBool setAnyPart(const SbName &partname, SoNode *from, SbBool anypart=1)
Definition: SoBaseKit.cpp:1901
void set(const int index, SoNode *const node)
Definition: SoChildList.cpp:220
virtual SoField * getField(const SbName &name) const
Definition: SoFieldContainer.cpp:364
The SbName class stores strings by reference.
Definition: SbName.h:31
virtual void rayPick(SoRayPickAction *action)
Definition: SoNode.cpp:1087
virtual void setDefaultOnNonWritingFields(void)
Definition: SoBaseKit.cpp:1277
SbBool isList(int part) const
Definition: SoNodekitCatalog.cpp:328
SoNode * getChild(int index) const
Definition: SoNodeKitListPart.cpp:325
const SbName & getName(int part) const
Definition: SoNodekitCatalog.cpp:110
void append(SoNode *const ptr)
Definition: SoNodeList.cpp:80
The SoChildList class is a container for node children.
Definition: SoChildList.h:33
virtual SoNode * getAnyPart(const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0)
Definition: SoBaseKit.cpp:1722
The SoWriteAction class writes a scene graph to file.
Definition: SoWriteAction.h:31
void setCenter(const SbVec3f ¢er, const SbBool transformcenter)
Definition: SoGetBoundingBoxAction.cpp:529
SbBool isDefault(void) const
Definition: SoField.cpp:669
void resetCenter(void)
Definition: SoGetBoundingBoxAction.cpp:571
const SoDetail * getDetail(const SoNode *const node=NULL) const
Definition: SoPickedPoint.cpp:199
The SoOutput class is an abstraction of an output stream.
Definition: SoOutput.h:42
virtual SbBool setUpConnections(SbBool onoff, SbBool doitalways=0)
Definition: SoBaseKit.cpp:2071
SbBool isNullByDefault(int part) const
Definition: SoNodekitCatalog.cpp:168
SbBool forceChildDrivenWriteRefs(SoOutput *out)
Definition: SoBaseKit.cpp:1329
virtual SoNode * getPart(const SbName &partname, SbBool makeifneeded)
Definition: SoBaseKit.cpp:699
The SoNodeKitPath class is a path that contains only nodekit nodes.
Definition: SoNodeKitPath.h:33
virtual void GLRender(SoGLRenderAction *action)
Definition: SoNode.cpp:904
void countMyFields(SoOutput *out)
Definition: SoBaseKit.cpp:1180
Type pop(void)
Definition: SbList.h:161
static void rayPickS(SoAction *action, SoNode *node)
Definition: SoNode.cpp:1067
SbBool enableNotify(const SbBool flag)
Definition: SoFieldContainer.cpp:443
SoGroup * getContainerNode(void)
Definition: SoNodeKitListPart.cpp:548
virtual SbName getName(void) const
Definition: SoBase.cpp:730
virtual void handleEvent(SoHandleEventAction *action)
Definition: SoBaseKit.cpp:1059
int getRightSiblingPartNumber(int part) const
Definition: SoNodekitCatalog.cpp:303
int getParentPartNumber(int part) const
Definition: SoNodekitCatalog.cpp:252
SbString getSubString(int startidx, int endidx=-1) const
Definition: SbString.h:73
SbBool shouldWrite(void) const
Definition: SoField.cpp:1569
void addIntString(const int value)
Definition: SbString.h:84
void remove(const int index)
Definition: SoChildList.cpp:141
The SoSearchAction class provides methods for searching through scene graphs.
Definition: SoSearchAction.h:32
static void postWarning(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:324
The SoAction class is the base class for all traversal actions.
Definition: SoAction.h:67
The SoCallback class is a node type which provides a means of setting callback hooks in the scene gra...
Definition: SoCallback.h:31
The SoFullPath class allows examination of hidden children in paths.
Definition: SoFullPath.h:29
const SbVec3f & getCenter(void) const
Definition: SoGetBoundingBoxAction.cpp:332
void set(const int i, SoBase *const ptr)
Definition: SoBaseList.cpp:270
virtual void getPrimitiveCount(SoGetPrimitiveCountAction *action)
Definition: SoNode.cpp:846
virtual SoNodeKitPath * createPathToPart(const SbName &partname, SbBool makeifneeded, const SoPath *pathtoextend=NULL)
Definition: SoBaseKit.cpp:784
virtual void addChild(SoNode *node)
Definition: SoGroup.cpp:393
virtual SbBool readInstance(SoInput *in, unsigned short flags)
Definition: SoNode.cpp:1438
static SoFieldContainer * checkCopy(const SoFieldContainer *orig)
Definition: SoFieldContainer.cpp:797
void pop(void)
Definition: SoFullPath.h:48
void setPartName(const SbName &name)
Definition: SoNodeKitDetail.cpp:143
virtual const SoFieldData * getFieldData(void) const
Definition: SoBaseKit.cpp:573
static void addMethod(const SoType type, SoActionMethod method)
Definition: SoAudioRenderAction.cpp:74
void addChildType(SoType typeToAdd)
Definition: SoNodeKitListPart.cpp:199
void append(const Type item)
Definition: SbList.h:98
The SbString class is a string class with convenience functions for string operations.
Definition: SbString.h:42
SoNode * getTail(void) const
Definition: SoFullPath.cpp:74
static SbBool isSearchingChildren(void)
Definition: SoBaseKit.cpp:1527
void printDiagram(void)
Definition: SoBaseKit.cpp:1416
virtual void getBoundingBox(SoGetBoundingBoxAction *action)
Definition: SoBaseKit.cpp:1014
SoType getListContainerType(int part) const
Definition: SoNodekitCatalog.cpp:352
SbBool isDerivedFrom(const SoType type) const
Definition: SoType.cpp:687
SbBool writeHeader(SoOutput *out, SbBool isgroup, SbBool isengine) const
Definition: SoBase.cpp:1315
virtual void getPrimitiveCount(SoGetPrimitiveCountAction *action)
Definition: SoBaseKit.cpp:1375
virtual void callback(SoCallbackAction *action)
Definition: SoNode.cpp:974
void catalogError(void)
Definition: SoBaseKit.cpp:2055
void unref(void) const
Definition: SoBase.cpp:627
void push(const Type item)
Definition: SbList.h:157
void lockTypes(void)
Definition: SoNodeKitListPart.cpp:268
virtual ~SoBaseKit()
Definition: SoBaseKit.cpp:669
int findNode(const SoNode *const node) const
Definition: SoPath.cpp:587
SbString getPartString(const SoBase *part)
Definition: SoBaseKit.cpp:709
The SoField class is the top-level abstract base class for fields.
Definition: SoField.h:38
virtual SbBool readInstance(SoInput *in, unsigned short flags)
Definition: SoBaseKit.cpp:2078
The SoPath class is a container class for traversal path descriptions.
Definition: SoPath.h:43
virtual void addWriteReference(SoOutput *out, SbBool isfromfield=0)
Definition: SoBaseKit.cpp:1162
void setDefault(SbBool def)
Definition: SoField.cpp:650
The SoGetMatrixAction class is an action for accumulating the transformation matrix of a subgraph.
Definition: SoGetMatrixAction.h:35
The SoType class is the basis for the run-time type system in Coin.
Definition: SoType.h:50
virtual void callback(SoCallbackAction *action)
Definition: SoBaseKit.cpp:1000
const char * getString(void) const
Definition: SbName.cpp:278
static void postInfo(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:334
const SbName & getParentName(int part) const
Definition: SoNodekitCatalog.cpp:228
virtual void getMatrix(SoGetMatrixAction *action)
Definition: SoNode.cpp:1001
SoBaseKit(void)
Definition: SoBaseKit.cpp:632
The SoPickedPointList class is a container for pointers to SoPickedPoint objects.
Definition: SoPickedPointList.h:31
int getLength(void) const
Definition: SbList.h:145
SbBool isLeaf(int part) const
Definition: SoNodekitCatalog.cpp:199
SoType getType(int part) const
Definition: SoNodekitCatalog.cpp:123
const SoTypeList & getListItemTypes(int part) const
Definition: SoNodekitCatalog.cpp:379
The SoNodeKitListPart class is a container node.
Definition: SoNodeKitListPart.h:36
static SoNode * typeCheck(const SbName &partname, const SoType &parttype, SoNode *node)
Definition: SoBaseKit.cpp:1549
The SoTypeList class is a container class for arrays of SoType objects.
Definition: SoTypeList.h:30
The SoFieldData class is a container for a prototype set of fields.
Definition: SoFieldData.h:39
virtual void addWriteReference(SoOutput *out, SbBool isfromfield=0)
Definition: SoBase.cpp:1002
PathCode getPathCode(int &numindices, const int *&indices)
Definition: SoAction.cpp:890
SoOutput * getOutput(void) const
Definition: SoWriteAction.cpp:160
void setNodeKit(SoBaseKit *kit)
Definition: SoNodeKitDetail.cpp:102
The SoBase class is the top-level superclass for a number of class-hierarchies.
Definition: SoBase.h:41
void addChild(SoNode *child)
Definition: SoNodeKitListPart.cpp:288
virtual SoType getTypeId(void) const
Definition: SoBaseKit.cpp:573
void insert(SoNode *const ptr, const int addbefore)
Definition: SoChildList.cpp:116
void setPart(SoNode *part)
Definition: SoNodeKitDetail.cpp:123
int getNumChildren(void) const
Definition: SoNodeKitListPart.cpp:343
void append(const int childindex)
Definition: SoPath.cpp:191
const SoType getParent(void) const
Definition: SoType.cpp:652
The SoFieldContainer class is a base class for all classes that contain fields.
Definition: SoFieldContainer.h:35
void append(SoNode *const node)
Definition: SoChildList.cpp:94
void ref(void) const
Definition: SoBase.cpp:574
static void setSearchingChildren(const SbBool newval)
Definition: SoBaseKit.cpp:1537
SbBool isPublic(int part) const
Definition: SoNodekitCatalog.cpp:406
The SoEventCallback class provides functionality for catching events.
Definition: SoEventCallback.h:43
virtual SoNodeKitPath * createPathToAnyPart(const SbName &partname, SbBool makeifneeded, SbBool leafcheck=0, SbBool publiccheck=0, const SoPath *pathtoextend=NULL)
Definition: SoBaseKit.cpp:1814
virtual void insertChild(SoNode *child, int newchildindex)
Definition: SoGroup.cpp:406
The SbVec3f class is a 3 dimensional vector with floating point coordinates.
Definition: SbVec3f.h:37
const SbList< SoSFNode * > & getCatalogInstances(void) const
Definition: SoBaseKit.cpp:2045
The SoNodeKitDetail class is yet to be documented.
Definition: SoNodeKitDetail.h:34
void addField(SoFieldContainer *base, const char *name, const SoField *field)
Definition: SoFieldData.cpp:200
The SoGetBoundingBoxAction class calculates bounding boxes for nodes and subgraphs.
Definition: SoGetBoundingBoxAction.h:34
static void addCopy(const SoFieldContainer *orig, const SoFieldContainer *copy)
Definition: SoFieldContainer.cpp:765
virtual void replaceChild(int index, SoNode *newchild)
Definition: SoGroup.cpp:719
void * createInstance(void) const
Definition: SoType.cpp:803
virtual SoChildList * getChildren(void) const
Definition: SoNode.cpp:1265
SoPath * copy(const int startfromnodeindex=0, int numnodes=0) const
Definition: SoPath.cpp:673
SbString & sprintf(const char *formatstr,...)
Definition: SbString.h:105
virtual void rayPick(SoRayPickAction *action)
Definition: SoBaseKit.cpp:1066
virtual SoNode * addToCopyDict(void) const
Definition: SoNode.cpp:1334
SbBool isCenterSet(void) const
Definition: SoGetBoundingBoxAction.cpp:561
SbBool connectionsSetUp
Definition: SoBaseKit.h:142
The SoCallbackAction class invokes callbacks at specific nodes.
Definition: SoCallbackAction.h:70
virtual void createDefaultParts(void)
Definition: SoBaseKit.cpp:2009
static void addMethod(const SoType type, SoActionMethod method)
Definition: SoRayPickAction.cpp:225
SbBool isConnectionEnabled(void) const
Definition: SoField.cpp:721
virtual SoType getTypeId(void) const =0
SoType getDefaultType(int part) const
Definition: SoNodekitCatalog.cpp:145
Stage getStage(void) const
Definition: SoOutput.cpp:744
The SoPickedPoint class is used for specifying picked points.
Definition: SoPickedPoint.h:39
SbBool addEntry(const SbName &name, SoType type, SoType defaulttype, SbBool isdefaultnull, const SbName &parent, const SbName &rightsibling, SbBool islist, SoType listcontainertype, SoType listitemtype, SbBool ispublic)
Definition: SoNodekitCatalog.cpp:472
The SoInteractionKit class is a base class for draggers.
Definition: SoInteractionKit.h:41
The SoSFNode class is a container for a single node.
Definition: SoSFNode.h:38
virtual void handleEvent(SoHandleEventAction *action)
Definition: SoNode.cpp:1031
int findChild(SoNode *child) const
Definition: SoNodeKitListPart.cpp:334
The SoSeparator class is a state-preserving group node.
Definition: SoSeparator.h:34
virtual void write(SoOutput *out, const SbName &name) const
Definition: SoField.cpp:1923
int getPartNumber(const SbName &name) const
Definition: SoNodekitCatalog.cpp:100
virtual const SoNodekitCatalog * getNodekitCatalog(void) const
Definition: SoBaseKit.cpp:573
SbBool set(const char *const fielddata)
Definition: SoFieldContainer.cpp:291
SoGroup * getContainerNode(const SbName &listname, SbBool makeifneeded=1)
Definition: SoBaseKit.cpp:1667
void printTable(void)
Definition: SoBaseKit.cpp:1488
virtual void write(SoWriteAction *action)
Definition: SoNode.cpp:1189
int getIndex(const int index) const
Definition: SoPath.cpp:436
const SbName & getFieldName(int index) const
Definition: SoFieldData.cpp:297
void writeFooter(SoOutput *out) const
Definition: SoBase.cpp:1428
The SoNodeList class is a container for pointers to SoNode objects.
Definition: SoNodeList.h:31
virtual void removeAllChildren(void)
Definition: SoGroup.cpp:704
void assertAlive(void) const
Definition: SoBase.cpp:546
virtual void write(SoWriteAction *action)
Definition: SoBaseKit.cpp:1115
SoNode * getNode(const int index) const
Definition: SoPath.cpp:402
int find(void *item) const
Definition: SbPList.cpp:212
virtual const SoFieldData * getFieldData(void) const
Definition: SoFieldContainer.cpp:663
The SoBaseKit class is the toplevel superclass for nodekits.
Definition: SoBaseKit.h:57
virtual SoChildList * getChildren(void) const
Definition: SoBaseKit.cpp:1382
SoChildList * children
Definition: SoBaseKit.h:141
virtual void removeChild(int childindex)
Definition: SoGroup.cpp:426
SbBool isOfType(SoType type) const
Definition: SoBase.cpp:710
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
virtual SbBool isSame(const SoField &f) const =0
SbName getName(void) const
Definition: SoType.cpp:628
virtual SoNode * addToCopyDict(void) const
Definition: SoBaseKit.cpp:1572
The SoHandleEventAction class distributes user events to the scene.
Definition: SoHandleEventAction.h:36
int getLength(void) const
Definition: SoFullPath.cpp:106
The SoGroup class is a node which managed other node instances.
Definition: SoGroup.h:31
SbBool isConnected(void) const
Definition: SoField.cpp:1139
void traverse(SoAction *const action)
Definition: SoChildList.cpp:404
virtual void addWriteReference(SoOutput *out, SbBool isfromfield=0)
Definition: SoFieldContainer.cpp:605
SbBool readFieldDescriptions(SoInput *in, SoFieldContainer *object, int numdescriptionsexpected, const SbBool readfieldvalues=1) const
Definition: SoFieldData.cpp:785
The SoRayPickAction class does ray intersection with scene graphs.
Definition: SoRayPickAction.h:40
void createNodekitPartsList(void)
Definition: SoBaseKit.cpp:1974
virtual void doAction(SoAction *action)
Definition: SoBaseKit.cpp:986
virtual void search(SoSearchAction *action)
Definition: SoBaseKit.cpp:1083
void unrefNoDelete(void) const
Definition: SoBase.cpp:665
void setDetail(SoDetail *detail, SoNode *node)
Definition: SoPickedPoint.cpp:339
const char * getString(void) const
Definition: SbString.h:71
SoPath * getPath() const
Definition: SoPickedPoint.cpp:178
virtual void doAction(SoAction *action)
Definition: SoNode.cpp:761
SbBool containsNode(const SoNode *const node) const
Definition: SoPath.cpp:601
SoField * getField(const SoFieldContainer *object, int index) const
Definition: SoFieldData.cpp:307
virtual void getBoundingBox(SoGetBoundingBoxAction *action)
Definition: SoNode.cpp:817
SbBool hasMultipleWriteRefs(void) const
Definition: SoBase.cpp:1286
const SoNodekitParts * getNodekitPartsList(void) const
Definition: SoBaseKit.cpp:2034
int getNumEntries(void) const
Definition: SoNodekitCatalog.cpp:89
SbBool read(SoInput *in, SoFieldContainer *object, SbBool erroronunknownfield, SbBool ¬builtin) const
Definition: SoFieldData.cpp:446
The SoGLRenderAction class renders the scene graph with OpenGL calls.
Definition: SoGLRenderAction.h:39
The SoGetPrimitiveCountAction class counts the primitives in a scene.
Definition: SoGetPrimitiveCountAction.h:32
virtual SbBool setPart(const SbName &partname, SoNode *from)
Definition: SoBaseKit.cpp:793
void setContainerType(SoType newContainerType)
Definition: SoNodeKitListPart.cpp:137
virtual void getMatrix(SoGetMatrixAction *action)
Definition: SoBaseKit.cpp:1037
void traverseInPath(SoAction *const action, const int numindices, const int *indices)
Definition: SoChildList.cpp:253
virtual void copyContents(const SoFieldContainer *from, SbBool copyconnections)
Definition: SoNode.cpp:1382
SbBool isFound(void) const
Definition: SoSearchAction.cpp:376
void createFieldList(void)
Definition: SoBaseKit.cpp:1987
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Wed Jul 24 2019 for Coin by Doxygen. 1.8.17