|
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListAllocate (XnNodeInfoList **ppList) |
| XN_C_API void XN_C_DECL | xnNodeInfoListFree (XnNodeInfoList *pList) |
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListAdd (XnNodeInfoList *pList, const XnProductionNodeDescription *pDescription, const XnChar *strCreationInfo, XnNodeInfoList *pNeededNodes) |
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListAddEx (XnNodeInfoList *pList, const XnProductionNodeDescription *pDescription, const XnChar *strCreationInfo, XnNodeInfoList *pNeededNodes, const void *pAdditionalData, XnFreeHandler pFreeHandler) |
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListAddNode (XnNodeInfoList *pList, XnNodeInfo *pNode) |
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListAddNodeFromList (XnNodeInfoList *pList, XnNodeInfoListIterator otherListIt) |
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListRemove (XnNodeInfoList *pList, XnNodeInfoListIterator it) |
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListClear (XnNodeInfoList *pList) |
| XN_C_API XnStatus XN_C_DECL | xnNodeInfoListAppend (XnNodeInfoList *pList, XnNodeInfoList *pOther) |
| XN_C_API XnBool XN_C_DECL | xnNodeInfoListIsEmpty (XnNodeInfoList *pList) |
| XN_C_API XnNodeInfoListIterator XN_C_DECL | xnNodeInfoListGetFirst (XnNodeInfoList *pList) |
| XN_C_API XnNodeInfoListIterator XN_C_DECL | xnNodeInfoListGetLast (XnNodeInfoList *pList) |
| XN_C_API XnBool XN_C_DECL | xnNodeInfoListIteratorIsValid (XnNodeInfoListIterator it) |
| XN_C_API XnNodeInfo *XN_C_DECL | xnNodeInfoListGetCurrent (XnNodeInfoListIterator it) |
| XN_C_API XnNodeInfoListIterator XN_C_DECL | xnNodeInfoListGetNext (XnNodeInfoListIterator it) |
| XN_C_API XnNodeInfoListIterator XN_C_DECL | xnNodeInfoListGetPrevious (XnNodeInfoListIterator it) |
This page details functions for handling production nodes lists. The lists are implemented as doubly-linked lists, but it's not recommended to access the list members directly. instead, use the provided functions for handling the list.
Adding and Removing Node Info Objects
Nodes can be added to the list using xnNodeInfoListAdd(). Note that once an info object is part of the list, it will be freed if that list is freed. A node can be removed by calling xnNodeInfoListRemove(), which also frees that element.
A short example:
struct XnNodeInfoList XnNodeInfoList
Definition XnTypes.h:189
XN_C_API XnStatus XN_C_DECL xnNodeInfoListAllocate(XnNodeInfoList **ppList)
XN_C_API XnStatus XN_C_DECL xnNodeInfoListAdd(XnNodeInfoList *pList, const XnProductionNodeDescription *pDescription, const XnChar *strCreationInfo, XnNodeInfoList *pNeededNodes)
Enumeration
Forward Iteration:
{
...
}
struct XnNodeInfo XnNodeInfo
Definition XnTypes.h:179
XN_C_API XnBool XN_C_DECL xnNodeInfoListIteratorIsValid(XnNodeInfoListIterator it)
XN_C_API XnNodeInfoListIterator XN_C_DECL xnNodeInfoListGetNext(XnNodeInfoListIterator it)
XN_C_API XnNodeInfo *XN_C_DECL xnNodeInfoListGetCurrent(XnNodeInfoListIterator it)
XN_C_API XnNodeInfoListIterator XN_C_DECL xnNodeInfoListGetFirst(XnNodeInfoList *pList)
Backwards Iteration:
{
...
}
XN_C_API XnNodeInfoListIterator XN_C_DECL xnNodeInfoListGetLast(XnNodeInfoList *pList)
XN_C_API XnNodeInfoListIterator XN_C_DECL xnNodeInfoListGetPrevious(XnNodeInfoListIterator it)