OpenNI 1.5.4
Enumerating possible production chains

The following code shows how to fine control the enumeration process. It enumerates Production Chains for producing User output, reducing the options using a basic query, and then chooses the first one from all possibilities.

// Build a query object
xn::Query query;
nRetVal = query.SetVendor("MyVendor");
// TODO: check error code
// TODO: check error code
// Enumerate
xn::NodeInfoList possibleChains;
nRetVal = context.EnumerateProductionTrees(XN_NODE_TYPE_USER, &query, possibleChains, NULL);
// TODO: check error code
// No errors so far. This means list has at least one item. Take the first one
xn::NodeInfo selected = *possibleChains.Begin();
// Create it
nRetVal = context.CreateProductionTree(selected);
// TODO: check error code
// Take the node
nRetVal = selected.GetInstance(userGen);
// TODO: check error code
// Now we can start to use it
#define XN_CAPABILITY_SKELETON
Definition XnTypes.h:318
@ XN_NODE_TYPE_USER
Definition XnTypes.h:118
Definition XnCppWrapper.h:1803
XnStatus GetInstance(ProductionNode &node) const
Definition XnCppWrapper.h:9752
Definition XnCppWrapper.h:2145
Iterator Begin() const
Definition XnCppWrapper.h:2337
Definition XnCppWrapper.h:1977
XnStatus SetVendor(const XnChar *strVendor)
Sets in the Query object the vendor name to search for.
Definition XnCppWrapper.h:2006
XnStatus AddSupportedCapability(const XnChar *strNeededCapability)
Sets in the Query object a capability that the Node Alternative must support.
Definition XnCppWrapper.h:2068
Definition XnCppWrapper.h:7666