static XnBool xnIsNodeInstanceMatch(const XnNodeQuery* pQuery, XnNodeHandle hNode) { for (XnUInt i = 0; i < pQuery->nSupportedCapabilities; ++i) { if (!xnIsCapabilitySupported(hNode, pQuery->astrSupportedCapabilities[i])) { return (FALSE); } } for (XnUInt i = 0; i < pQuery->nSupportedMapOutputModes; ++i) { if (!xnIsMapOutputModeSupported(hNode, &pQuery->aSupportedMapOutputModes[i])) { return (FALSE); } } if (pQuery->nMinUserPositions > 0 && xnGetSupportedUserPositionsCount(hNode) < pQuery->nMinUserPositions) { return (FALSE); } return (TRUE); }
XnStatus xnConfigureAlternativeViewPoint(XnNodeHandle hNode, const TiXmlElement* pOpcode) { XnStatus nRetVal = XN_STATUS_OK; if (!xnIsCapabilitySupported(hNode, XN_CAPABILITY_ALTERNATIVE_VIEW_POINT)) { return XN_STATUS_INVALID_OPERATION; } XnContext* pContext = xnGetContextFromNodeHandle(hNode); XnNodeHandle hOther = NULL; nRetVal = xnGetNodeHandleByName(pContext, pOpcode->GetText(), &hOther); XN_IS_STATUS_OK(nRetVal); nRetVal = xnSetViewPoint(hNode, hOther); XN_IS_STATUS_OK(nRetVal); return (XN_STATUS_OK); }