OpenNI 1.5.4
|
XnPrdNode.h
Go to the documentation of this file.
00001 /**************************************************************************** 00002 * * 00003 * OpenNI 1.x Alpha * 00004 * Copyright (C) 2011 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * OpenNI is free software: you can redistribute it and/or modify * 00009 * it under the terms of the GNU Lesser General Public License as published * 00010 * by the Free Software Foundation, either version 3 of the License, or * 00011 * (at your option) any later version. * 00012 * * 00013 * OpenNI is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00016 * GNU Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public License * 00019 * along with OpenNI. If not, see <http://www.gnu.org/licenses/>. * 00020 * * 00021 ****************************************************************************/ 00022 #ifndef __XN_PRD_NODE_H__ 00023 #define __XN_PRD_NODE_H__ 00024 00031 //--------------------------------------------------------------------------- 00032 // Includes 00033 //--------------------------------------------------------------------------- 00034 #include <XnTypes.h> 00035 00036 //--------------------------------------------------------------------------- 00037 // Functions 00038 //--------------------------------------------------------------------------- 00039 00054 XN_C_API XnNodeInfo* XN_C_DECL xnGetNodeInfo(XnNodeHandle hNode); 00055 00061 XN_C_API const XnChar* XN_C_DECL xnGetNodeName(XnNodeHandle hNode); 00062 00069 XN_C_API XnContext* XN_C_DECL xnGetRefContextFromNodeHandle(XnNodeHandle hNode); 00070 00071 typedef XnContext* XnContextPtr; 00072 XN_C_API XnContextPtr XN_API_DEPRECATED("Please use xnGetRefContextFromNodeHandle() instead") XN_C_DECL xnGetContextFromNodeHandle(XnNodeHandle hNode); 00073 00080 XN_C_API XnBool XN_C_DECL xnIsCapabilitySupported(XnNodeHandle hInstance, const XnChar* strCapabilityName); 00081 00089 XN_C_API XnStatus XN_C_DECL xnSetIntProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue); 00097 XN_C_API XnStatus XN_C_DECL xnSetRealProperty(XnNodeHandle hInstance, const XnChar* strName, XnDouble dValue); 00105 XN_C_API XnStatus XN_C_DECL xnSetStringProperty(XnNodeHandle hInstance, const XnChar* strName, const XnChar* strValue); 00114 XN_C_API XnStatus XN_C_DECL xnSetGeneralProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer); 00115 00123 XN_C_API XnStatus XN_C_DECL xnGetIntProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue); 00131 XN_C_API XnStatus XN_C_DECL xnGetRealProperty(XnNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue); 00140 XN_C_API XnStatus XN_C_DECL xnGetStringProperty(XnNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize); 00149 XN_C_API XnStatus XN_C_DECL xnGetGeneralProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer); 00150 00157 XN_C_API XnStatus XN_C_DECL xnLockNodeForChanges(XnNodeHandle hInstance, XnLockHandle* phLock); 00158 00165 XN_C_API XnStatus XN_C_DECL xnUnlockNodeForChanges(XnNodeHandle hInstance, XnLockHandle hLock); 00166 00176 XN_C_API XnStatus XN_C_DECL xnLockedNodeStartChanges(XnNodeHandle hInstance, XnLockHandle hLock); 00177 00184 XN_C_API XnStatus XN_C_DECL xnLockedNodeEndChanges(XnNodeHandle hInstance, XnLockHandle hLock); 00185 00192 XN_C_API XnStatus XN_C_DECL xnAddNeededNode(XnNodeHandle hInstance, XnNodeHandle hNeededNode); 00193 00203 XN_C_API XnStatus XN_C_DECL xnRemoveNeededNode(XnNodeHandle hInstance, XnNodeHandle hNeededNode); 00204 00207 //--------------------------------------------------------------------------- 00208 // Device 00209 //--------------------------------------------------------------------------- 00210 00228 XN_C_API XnStatus XN_C_DECL xnCreateDevice(XnContext* pContext, XnNodeHandle* phDevice, XnNodeQuery* pQuery, XnEnumerationErrors* pErrors); 00229 00232 //--------------------------------------------------------------------------- 00233 // Device Identification Capability 00234 //--------------------------------------------------------------------------- 00235 00256 XN_C_API XnStatus XN_C_DECL xnGetDeviceName(XnNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00257 00269 XN_C_API XnStatus XN_C_DECL xnGetVendorSpecificData(XnNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00270 00282 XN_C_API XnStatus XN_C_DECL xnGetSerialNumber(XnNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00283 00286 //--------------------------------------------------------------------------- 00287 // ErrorState Capability 00288 //--------------------------------------------------------------------------- 00289 00311 XN_C_API XnStatus XN_C_DECL xnGetNodeErrorState(XnNodeHandle hInstance); 00312 00321 XN_C_API XnStatus XN_C_DECL xnRegisterToNodeErrorStateChange 00322 (XnNodeHandle hInstance, XnStateChangedHandler handler, 00323 void* pCookie, XnCallbackHandle* phCallback); 00324 00331 XN_C_API void XN_C_DECL xnUnregisterFromNodeErrorStateChange 00332 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 00333 00336 //--------------------------------------------------------------------------- 00337 // GeneralIntCapability 00338 //--------------------------------------------------------------------------- 00339 00380 XN_C_API XnStatus XN_C_DECL xnGetGeneralIntRange(XnNodeHandle hNode, const XnChar* strCap, XnInt32* pnMin, XnInt32* pnMax, XnInt32* pnStep, XnInt32* pnDefault, XnBool* pbIsAutoSupported); 00381 00389 XN_C_API XnStatus XN_C_DECL xnGetGeneralIntValue(XnNodeHandle hNode, const XnChar* strCap, XnInt32* pnValue); 00390 00398 XN_C_API XnStatus XN_C_DECL xnSetGeneralIntValue(XnNodeHandle hNode, const XnChar* strCap, XnInt32 nValue); 00399 00409 XN_C_API XnStatus XN_C_DECL xnRegisterToGeneralIntValueChange 00410 (XnNodeHandle hNode, const XnChar* strCap, XnStateChangedHandler handler, 00411 void* pCookie, XnCallbackHandle* phCallback); 00412 00420 XN_C_API void XN_C_DECL xnUnregisterFromGeneralIntValueChange 00421 (XnNodeHandle hNode, const XnChar* strCap, XnCallbackHandle hCallback); 00422 00425 //--------------------------------------------------------------------------- 00426 // Generators 00427 //--------------------------------------------------------------------------- 00428 00451 XN_C_API XnStatus XN_C_DECL xnStartGenerating(XnNodeHandle hInstance); 00452 00460 XN_C_API XnBool XN_C_DECL xnIsGenerating(XnNodeHandle hInstance); 00461 00469 XN_C_API XnStatus XN_C_DECL xnStopGenerating(XnNodeHandle hInstance); 00470 00479 XN_C_API XnStatus XN_C_DECL xnRegisterToGenerationRunningChange 00480 (XnNodeHandle hInstance, XnStateChangedHandler handler, 00481 void* pCookie, XnCallbackHandle* phCallback); 00482 00489 XN_C_API void XN_C_DECL xnUnregisterFromGenerationRunningChange 00490 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 00491 00493 00510 XN_C_API XnStatus XN_C_DECL xnRegisterToNewDataAvailable 00511 (XnNodeHandle hInstance, XnStateChangedHandler handler, 00512 void* pCookie, XnCallbackHandle* phCallback); 00513 00520 XN_C_API void XN_C_DECL xnUnregisterFromNewDataAvailable 00521 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 00522 00529 XN_C_API XnBool XN_C_DECL xnIsNewDataAvailable(XnNodeHandle hInstance, XnUInt64* pnTimestamp); 00530 00532 00545 XN_C_API XnStatus XN_C_DECL xnWaitAndUpdateData(XnNodeHandle hInstance); 00546 00548 00560 XN_C_API XnBool XN_C_DECL xnIsDataNew(XnNodeHandle hInstance); 00561 00569 XN_C_API const void* XN_C_DECL xnGetData(XnNodeHandle hInstance); 00570 00578 XN_C_API XnUInt32 XN_C_DECL xnGetDataSize(XnNodeHandle hInstance); 00579 00587 XN_C_API XnUInt64 XN_C_DECL xnGetTimestamp(XnNodeHandle hInstance); 00588 00596 XN_C_API XnUInt32 XN_C_DECL xnGetFrameID(XnNodeHandle hInstance); 00597 00602 //--------------------------------------------------------------------------- 00603 // Mirror Capability 00604 //--------------------------------------------------------------------------- 00605 00621 XN_C_API XnStatus XN_C_DECL xnSetMirror(XnNodeHandle hInstance, XnBool bMirror); 00622 00628 XN_C_API XnBool XN_C_DECL xnIsMirrored(XnNodeHandle hInstance); 00629 00638 XN_C_API XnStatus XN_C_DECL xnRegisterToMirrorChange 00639 (XnNodeHandle hInstance, XnStateChangedHandler handler, 00640 void* pCookie, XnCallbackHandle* phCallback); 00641 00648 XN_C_API void XN_C_DECL xnUnregisterFromMirrorChange 00649 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 00650 00653 //--------------------------------------------------------------------------- 00654 // Alternative View Point Capability 00655 //--------------------------------------------------------------------------- 00656 00677 XN_C_API XnBool XN_C_DECL xnIsViewPointSupported(XnNodeHandle hInstance, XnNodeHandle hOther); 00678 00685 XN_C_API XnStatus XN_C_DECL xnSetViewPoint(XnNodeHandle hInstance, XnNodeHandle hOther); 00686 00692 XN_C_API XnStatus XN_C_DECL xnResetViewPoint(XnNodeHandle hInstance); 00693 00700 XN_C_API XnBool XN_C_DECL xnIsViewPointAs(XnNodeHandle hInstance, XnNodeHandle hOther); 00701 00710 XN_C_API XnStatus XN_C_DECL xnRegisterToViewPointChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 00711 00718 XN_C_API void XN_C_DECL xnUnregisterFromViewPointChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 00719 00722 //--------------------------------------------------------------------------- 00723 // FrameSync Capability 00724 //--------------------------------------------------------------------------- 00725 00743 XN_C_API XnBool XN_C_DECL xnCanFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00744 00751 XN_C_API XnStatus XN_C_DECL xnFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00752 00759 XN_C_API XnStatus XN_C_DECL xnStopFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00760 00767 XN_C_API XnBool XN_C_DECL xnIsFrameSyncedWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00768 00777 XN_C_API XnStatus XN_C_DECL xnRegisterToFrameSyncChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 00778 00785 XN_C_API void XN_C_DECL xnUnregisterFromFrameSyncChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 00786 00789 //--------------------------------------------------------------------------- 00790 // Map Generators 00791 //--------------------------------------------------------------------------- 00792 00808 XN_C_API XnUInt32 XN_C_DECL xnGetSupportedMapOutputModesCount(XnNodeHandle hInstance); 00809 00820 XN_C_API XnStatus XN_C_DECL xnGetSupportedMapOutputModes(XnNodeHandle hInstance, XnMapOutputMode* aModes, XnUInt32* pnCount); 00821 00830 XN_C_API XnStatus XN_C_DECL xnSetMapOutputMode(XnNodeHandle hInstance, const XnMapOutputMode* pOutputMode); 00831 00840 XN_C_API XnStatus XN_C_DECL xnGetMapOutputMode(XnNodeHandle hInstance, XnMapOutputMode* pOutputMode); 00841 00852 XN_C_API XnStatus XN_C_DECL xnRegisterToMapOutputModeChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 00853 void* pCookie, XnCallbackHandle* phCallback); 00854 00861 XN_C_API void XN_C_DECL xnUnregisterFromMapOutputModeChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 00862 00870 XN_C_API XnUInt32 XN_C_DECL xnGetBytesPerPixel(XnNodeHandle hInstance); 00871 00874 //--------------------------------------------------------------------------- 00875 // Cropping Capability 00876 //--------------------------------------------------------------------------- 00877 00878 00899 XN_C_API XnStatus XN_C_DECL xnSetCropping(XnNodeHandle hInstance, const XnCropping* pCropping); 00900 00909 XN_C_API XnStatus XN_C_DECL xnGetCropping(XnNodeHandle hInstance, XnCropping* pCropping); 00910 00919 XN_C_API XnStatus XN_C_DECL xnRegisterToCroppingChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 00920 void* pCookie, XnCallbackHandle* phCallback); 00921 00928 XN_C_API void XN_C_DECL xnUnregisterFromCroppingChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 00929 00932 //--------------------------------------------------------------------------- 00933 // Anti Flicker Capability 00934 //--------------------------------------------------------------------------- 00935 00950 XN_C_API XnStatus XN_C_DECL xnSetPowerLineFrequency(XnNodeHandle hGenerator, XnPowerLineFrequency nFrequency); 00951 00958 XN_C_API XnPowerLineFrequency XN_C_DECL xnGetPowerLineFrequency(XnNodeHandle hGenerator); 00959 00968 XN_C_API XnStatus XN_C_DECL xnRegisterToPowerLineFrequencyChange 00969 (XnNodeHandle hGenerator, XnStateChangedHandler handler, 00970 void* pCookie, XnCallbackHandle* phCallback); 00971 00978 XN_C_API void XN_C_DECL xnUnregisterFromPowerLineFrequencyChange 00979 (XnNodeHandle hGenerator, XnCallbackHandle hCallback); 00980 00983 //--------------------------------------------------------------------------- 00984 // Depth Generators 00985 //--------------------------------------------------------------------------- 00986 01003 XN_C_API XnStatus XN_C_DECL xnCreateDepthGenerator( 01004 XnContext* pContext, 01005 XnNodeHandle* phDepthGenerator, 01006 XnNodeQuery* pQuery, 01007 XnEnumerationErrors* pErrors); 01008 01016 XN_C_API XnDepthPixel XN_C_DECL xnGetDeviceMaxDepth(XnNodeHandle hInstance); 01017 01026 XN_C_API XnStatus XN_C_DECL xnGetDepthFieldOfView(XnNodeHandle hInstance, XnFieldOfView* pFOV); 01027 01038 XN_C_API XnStatus XN_C_DECL xnRegisterToDepthFieldOfViewChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 01039 void* pCookie, XnCallbackHandle* phCallback); 01040 01047 XN_C_API void XN_C_DECL xnUnregisterFromDepthFieldOfViewChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01048 01059 XN_C_API XnStatus XN_C_DECL xnConvertProjectiveToRealWorld( 01060 XnNodeHandle hInstance, XnUInt32 nCount, const XnPoint3D* aProjective, XnPoint3D* aRealWorld); 01061 01072 XN_C_API XnStatus XN_C_DECL xnConvertRealWorldToProjective( 01073 XnNodeHandle hInstance, XnUInt32 nCount, const XnPoint3D* aRealWorld, XnPoint3D* aProjective); 01074 01082 XN_C_API XnDepthPixel* XN_C_DECL xnGetDepthMap(XnNodeHandle hInstance); 01083 01090 XN_C_API void XN_C_DECL xnGetDepthMetaData(XnNodeHandle hInstance, XnDepthMetaData* pMetaData); 01091 01094 //--------------------------------------------------------------------------- 01095 // User Position Capability 01096 //--------------------------------------------------------------------------- 01097 01113 XN_C_API XnUInt32 XN_C_DECL xnGetSupportedUserPositionsCount(XnNodeHandle hInstance); 01114 01124 XN_C_API XnStatus XN_C_DECL xnSetUserPosition(XnNodeHandle hInstance, XnUInt32 nIndex, const XnBoundingBox3D* pPosition); 01125 01135 XN_C_API XnStatus XN_C_DECL xnGetUserPosition(XnNodeHandle hInstance, XnUInt32 nIndex, XnBoundingBox3D* pPosition); 01136 01147 XN_C_API XnStatus XN_C_DECL xnRegisterToUserPositionChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 01148 void* pCookie, XnCallbackHandle* phCallback); 01149 01156 XN_C_API void XN_C_DECL xnUnregisterFromUserPositionChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01157 01160 //--------------------------------------------------------------------------- 01161 // Image Generators 01162 //--------------------------------------------------------------------------- 01163 01181 XN_C_API XnStatus XN_C_DECL xnCreateImageGenerator( 01182 XnContext* pContext, 01183 XnNodeHandle* phImageGenerator, 01184 XnNodeQuery* pQuery, 01185 XnEnumerationErrors* pErrors 01186 ); 01187 01196 XN_C_API XnRGB24Pixel* XN_C_DECL xnGetRGB24ImageMap(XnNodeHandle hInstance); 01197 01206 XN_C_API XnYUV422DoublePixel* XN_C_DECL xnGetYUV422ImageMap(XnNodeHandle hInstance); 01207 01216 XN_C_API XnGrayscale8Pixel* XN_C_DECL xnGetGrayscale8ImageMap(XnNodeHandle hInstance); 01217 01226 XN_C_API XnGrayscale16Pixel* XN_C_DECL xnGetGrayscale16ImageMap(XnNodeHandle hInstance); 01227 01240 XN_C_API XnUInt8* XN_C_DECL xnGetImageMap(XnNodeHandle hInstance); 01241 01248 XN_C_API XnBool XN_C_DECL xnIsPixelFormatSupported(XnNodeHandle hInstance, XnPixelFormat Format); 01249 01258 XN_C_API XnStatus XN_C_DECL xnSetPixelFormat(XnNodeHandle hInstance, XnPixelFormat Format); 01259 01267 XN_C_API XnPixelFormat XN_C_DECL xnGetPixelFormat(XnNodeHandle hInstance); 01268 01279 XN_C_API XnStatus XN_C_DECL xnRegisterToPixelFormatChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 01280 void* pCookie, XnCallbackHandle* phCallback); 01281 01288 XN_C_API void XN_C_DECL xnUnregisterFromPixelFormatChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01289 01296 XN_C_API void XN_C_DECL xnGetImageMetaData(XnNodeHandle hInstance, XnImageMetaData* pMetaData); 01297 01300 //--------------------------------------------------------------------------- 01301 // IR Generators 01302 //--------------------------------------------------------------------------- 01303 01320 XN_C_API XnStatus XN_C_DECL xnCreateIRGenerator( 01321 XnContext* pContext, 01322 XnNodeHandle* phIRGenerator, 01323 XnNodeQuery* pQuery, 01324 XnEnumerationErrors* pErrors 01325 ); 01326 01334 XN_C_API XnIRPixel* XN_C_DECL xnGetIRMap(XnNodeHandle hInstance); 01335 01342 XN_C_API void XN_C_DECL xnGetIRMetaData(XnNodeHandle hInstance, XnIRMetaData* pMetaData); 01343 01346 //--------------------------------------------------------------------------- 01347 // Gesture Generators 01348 //--------------------------------------------------------------------------- 01349 01366 XN_C_API XnStatus XN_C_DECL xnCreateGestureGenerator( 01367 XnContext* pContext, 01368 XnNodeHandle* phGestureGenerator, 01369 XnNodeQuery* pQuery, 01370 XnEnumerationErrors* pErrors 01371 ); 01372 01380 XN_C_API XnStatus XN_C_DECL xnAddGesture(XnNodeHandle hInstance, const XnChar* strGesture, XnBoundingBox3D* pArea); 01387 XN_C_API XnStatus XN_C_DECL xnRemoveGesture(XnNodeHandle hInstance, const XnChar* strGesture); 01395 XN_C_API XnStatus XN_C_DECL xnGetActiveGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt16* nGestures); 01404 XN_C_API XnStatus XN_C_DECL xnGetAllActiveGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01412 XN_C_API XnStatus XN_C_DECL xnEnumerateGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt16* nGestures); 01421 XN_C_API XnStatus XN_C_DECL xnEnumerateAllGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01422 01429 XN_C_API XnUInt16 XN_C_DECL xnGetNumberOfAvailableGestures(XnNodeHandle hInstance); 01430 01431 01438 XN_C_API XnBool XN_C_DECL xnIsGestureAvailable(XnNodeHandle hInstance, const XnChar* strGesture); 01445 XN_C_API XnBool XN_C_DECL xnIsGestureProgressSupported(XnNodeHandle hInstance, const XnChar* strGesture); 01455 XN_C_API XnStatus XN_C_DECL xnRegisterGestureCallbacks(XnNodeHandle hInstance, XnGestureRecognized RecognizedCB, XnGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01462 XN_C_API void XN_C_DECL xnUnregisterGestureCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01471 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01478 XN_C_API void XN_C_DECL xnUnregisterFromGestureChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01479 01488 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureIntermediateStageCompleted(XnNodeHandle hInstance, XnGestureIntermediateStageCompleted handler, void* pCookie, XnCallbackHandle* phCallback); 01495 XN_C_API void XN_C_DECL xnUnregisterFromGestureIntermediateStageCompleted(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01504 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureReadyForNextIntermediateStage(XnNodeHandle hInstance, XnGestureReadyForNextIntermediateStage handler, void* pCookie, XnCallbackHandle* phCallback); 01511 XN_C_API void XN_C_DECL xnUnregisterFromGestureReadyForNextIntermediateStage(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01514 //--------------------------------------------------------------------------- 01515 // Scene Analysis 01516 //--------------------------------------------------------------------------- 01517 01534 XN_C_API XnStatus XN_C_DECL xnCreateSceneAnalyzer( 01535 XnContext* pContext, 01536 XnNodeHandle* phSceneAnalyzer, 01537 XnNodeQuery* pQuery, 01538 XnEnumerationErrors* pErrors 01539 ); 01540 01546 XN_C_API const XnLabel* XN_C_DECL xnGetLabelMap(XnNodeHandle hInstance); 01553 XN_C_API XnStatus XN_C_DECL xnGetFloor(XnNodeHandle hInstance, XnPlane3D* pPlane); 01554 01561 XN_C_API void XN_C_DECL xnGetSceneMetaData(XnNodeHandle hInstance, XnSceneMetaData* pMetaData); 01562 01565 //--------------------------------------------------------------------------- 01566 // User Generator 01567 //--------------------------------------------------------------------------- 01568 01585 XN_C_API XnStatus XN_C_DECL xnCreateUserGenerator( 01586 XnContext* pContext, 01587 XnNodeHandle* phUserGenerator, 01588 XnNodeQuery* pQuery, 01589 XnEnumerationErrors* pErrors 01590 ); 01591 01597 XN_C_API XnUInt16 XN_C_DECL xnGetNumberOfUsers(XnNodeHandle hInstance); 01605 XN_C_API XnStatus XN_C_DECL xnGetUsers(XnNodeHandle hInstance, XnUserID* pUsers, XnUInt16* pnUsers); 01613 XN_C_API XnStatus XN_C_DECL xnGetUserCoM(XnNodeHandle hInstance, XnUserID user, XnPoint3D* pCoM); 01626 XN_C_API XnStatus XN_C_DECL xnGetUserPixels(XnNodeHandle hInstance, XnUserID user, XnSceneMetaData* pScene); 01636 XN_C_API XnStatus XN_C_DECL xnRegisterUserCallbacks(XnNodeHandle hInstance, XnUserHandler NewUserCB, XnUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback); 01643 XN_C_API void XN_C_DECL xnUnregisterUserCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01644 01653 XN_C_API XnStatus XN_C_DECL xnRegisterToUserExit(XnNodeHandle hInstance, XnUserHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01660 XN_C_API void XN_C_DECL xnUnregisterFromUserExit(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01669 XN_C_API XnStatus XN_C_DECL xnRegisterToUserReEnter(XnNodeHandle hInstance, XnUserHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01676 XN_C_API void XN_C_DECL xnUnregisterFromUserReEnter(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01679 //--------------------------------------------------------------------------- 01680 // Skeleton Capability 01681 //--------------------------------------------------------------------------- 01682 01697 XN_C_API XnBool XN_C_DECL xnIsJointAvailable(XnNodeHandle hInstance, XnSkeletonJoint eJoint); 01704 XN_C_API XnBool XN_C_DECL xnIsProfileAvailable(XnNodeHandle hInstance, XnSkeletonProfile eProfile); 01711 XN_C_API XnStatus XN_C_DECL xnSetSkeletonProfile(XnNodeHandle hInstance, XnSkeletonProfile eProfile); 01719 XN_C_API XnStatus XN_C_DECL xnSetJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint, XnBool bState); 01726 XN_C_API XnBool XN_C_DECL xnIsJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint); 01735 XN_C_API XnStatus XN_C_DECL xnRegisterToJointConfigurationChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01742 XN_C_API void XN_C_DECL xnUnregisterFromJointConfigurationChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01750 XN_C_API XnStatus XN_C_DECL xnEnumerateActiveJoints(XnNodeHandle hInstance, XnSkeletonJoint* pJoints, XnUInt16* pnJoints); 01759 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJoint(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint); 01768 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJointPosition(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint); 01777 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJointOrientation(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint); 01784 XN_C_API XnBool XN_C_DECL xnIsSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01791 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrated(XnNodeHandle hInstance, XnUserID user); 01798 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrating(XnNodeHandle hInstance, XnUserID user); 01806 XN_C_API XnStatus XN_C_DECL xnRequestSkeletonCalibration(XnNodeHandle hInstance, XnUserID user, XnBool bForce); 01813 XN_C_API XnStatus XN_C_DECL xnAbortSkeletonCalibration(XnNodeHandle hInstance, XnUserID user); 01821 XN_C_API XnStatus XN_C_DECL xnSaveSkeletonCalibrationDataToFile(XnNodeHandle hInstance, XnUserID user, const XnChar* strFileName); 01829 XN_C_API XnStatus XN_C_DECL xnLoadSkeletonCalibrationDataFromFile(XnNodeHandle hInstance, XnUserID user, const XnChar* strFileName); 01837 XN_C_API XnStatus XN_C_DECL xnSaveSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot); 01845 XN_C_API XnStatus XN_C_DECL xnLoadSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot); 01852 XN_C_API XnStatus XN_C_DECL xnClearSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot); 01859 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot); 01866 XN_C_API XnStatus XN_C_DECL xnStartSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01873 XN_C_API XnStatus XN_C_DECL xnStopSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01880 XN_C_API XnStatus XN_C_DECL xnResetSkeleton(XnNodeHandle hInstance, XnUserID user); 01886 XN_C_API XnBool XN_C_DECL xnNeedPoseForSkeletonCalibration(XnNodeHandle hInstance); 01893 XN_C_API XnStatus XN_C_DECL xnGetSkeletonCalibrationPose(XnNodeHandle hInstance, XnChar* strPose); 01900 XN_C_API XnStatus XN_C_DECL xnSetSkeletonSmoothing(XnNodeHandle hInstance, XnFloat fFactor); 01910 XN_C_API XnStatus XN_API_DEPRECATED("Please use RegisterToCalibrationStart/Complete") XN_C_DECL xnRegisterCalibrationCallbacks(XnNodeHandle hInstance, XnCalibrationStart CalibrationStartCB, XnCalibrationEnd CalibrationEndCB, void* pCookie, XnCallbackHandle* phCallback); 01917 XN_C_API void XN_API_DEPRECATED("Please use UnregisterFromCalibrationStart/Complete") XN_C_DECL xnUnregisterCalibrationCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01926 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationStart(XnNodeHandle hInstance, XnCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback); 01933 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationStart(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01934 01943 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationInProgress(XnNodeHandle hInstance, XnCalibrationInProgress handler, void* pCookie, XnCallbackHandle* phCallback); 01950 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationInProgress(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01959 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationComplete(XnNodeHandle hInstance, XnCalibrationComplete handler, void* pCookie, XnCallbackHandle* phCallback); 01966 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationComplete(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01969 //--------------------------------------------------------------------------- 01970 // Pose Detection Capability 01971 //--------------------------------------------------------------------------- 01972 01986 XN_C_API XnUInt32 XN_C_DECL xnGetNumberOfPoses(XnNodeHandle hInstance); 01994 XN_C_API XnStatus XN_C_DECL xnGetAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32* pnPoses); 02003 XN_C_API XnStatus XN_C_DECL xnGetAllAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses); 02004 02012 XN_C_API XnBool XN_C_DECL xnIsPoseSupported(XnNodeHandle hInstance, const XnChar* strPose); 02013 02027 XN_C_API XnStatus xnGetPoseStatus(XnNodeHandle hInstance, XnUserID userID, const XnChar* poseName, XnUInt64* poseTime, XnPoseDetectionStatus* eStatus, XnPoseDetectionState* eState); 02035 XN_C_API XnStatus XN_C_DECL xnStartPoseDetection(XnNodeHandle hInstance,const XnChar* strPose, XnUserID user); 02042 XN_C_API XnStatus XN_C_DECL xnStopPoseDetection(XnNodeHandle hInstance, XnUserID user); 02050 XN_C_API XnStatus XN_C_DECL xnStopSinglePoseDetection(XnNodeHandle hInstance, XnUserID user, const XnChar* strPose); 02060 XN_C_API XnStatus XN_API_DEPRECATED("Please use PoseDetected and/or OutOfPose callbacks") XN_C_DECL xnRegisterToPoseCallbacks(XnNodeHandle hInstance, XnPoseDetectionCallback PoseDetectionStartCB, XnPoseDetectionCallback PoseDetectionEndCB, void* pCookie, XnCallbackHandle* phCallback); 02067 XN_C_API void XN_API_DEPRECATED("Please use PoseDetected and/or OutOfPose callbacks") XN_C_DECL xnUnregisterFromPoseCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02068 02077 XN_C_API XnStatus xnRegisterToPoseDetected(XnNodeHandle hInstance, XnPoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 02084 XN_C_API void xnUnregisterFromPoseDetected(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02085 02094 XN_C_API XnStatus xnRegisterToOutOfPose(XnNodeHandle hInstance, XnPoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 02101 XN_C_API void xnUnregisterFromOutOfPose(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02102 02111 XN_C_API XnStatus XN_C_DECL xnRegisterToPoseDetectionInProgress(XnNodeHandle hInstance, XnPoseDetectionInProgress handler, void* pCookie, XnCallbackHandle* phCallback); 02118 XN_C_API void XN_C_DECL xnUnregisterFromPoseDetectionInProgress(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02119 02122 //--------------------------------------------------------------------------- 02123 // Hands Generator 02124 //--------------------------------------------------------------------------- 02125 02142 XN_C_API XnStatus XN_C_DECL xnCreateHandsGenerator( 02143 XnContext* pContext, 02144 XnNodeHandle* phHandsGenerator, 02145 XnNodeQuery* pQuery, 02146 XnEnumerationErrors* pErrors 02147 ); 02148 02159 XN_C_API XnStatus XN_C_DECL xnRegisterHandCallbacks(XnNodeHandle hInstance, XnHandCreate CreateCB, XnHandUpdate UpdateCB, XnHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback); 02166 XN_C_API void XN_C_DECL xnUnregisterHandCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02173 XN_C_API XnStatus XN_C_DECL xnStopTracking(XnNodeHandle hInstance, XnUserID user); 02179 XN_C_API XnStatus XN_C_DECL xnStopTrackingAll(XnNodeHandle hInstance); 02186 XN_C_API XnStatus XN_C_DECL xnStartTracking(XnNodeHandle hInstance, const XnPoint3D* pPosition); 02193 XN_C_API XnStatus XN_C_DECL xnSetTrackingSmoothing(XnNodeHandle hInstance, XnFloat fFactor); 02196 //--------------------------------------------------------------------------- 02197 // Hand Touching FOV Edge Capability 02198 //--------------------------------------------------------------------------- 02199 02215 XN_C_API XnStatus XN_C_DECL xnRegisterToHandTouchingFOVEdge(XnNodeHandle hInstance, XnHandTouchingFOVEdge handler, void* pCookie, XnCallbackHandle* phCallback); 02222 XN_C_API void XN_C_DECL xnUnregisterFromHandTouchingFOVEdge(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02225 //--------------------------------------------------------------------------- 02226 // Audio Generator 02227 //--------------------------------------------------------------------------- 02228 02245 XN_C_API XnStatus XN_C_DECL xnCreateAudioGenerator( 02246 XnContext* pContext, 02247 XnNodeHandle* phAudioGenerator, 02248 XnNodeQuery* pQuery, 02249 XnEnumerationErrors* pErrors 02250 ); 02251 02252 XN_C_API XnUChar* XN_C_DECL xnGetAudioBuffer(XnNodeHandle hInstance); 02253 XN_C_API XnUInt32 XN_C_DECL xnGetSupportedWaveOutputModesCount(XnNodeHandle hInstance); 02254 XN_C_API XnStatus XN_C_DECL xnGetSupportedWaveOutputModes(XnNodeHandle hInstance, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount); 02255 XN_C_API XnStatus XN_C_DECL xnSetWaveOutputMode(XnNodeHandle hInstance, const XnWaveOutputMode* OutputMode); 02256 XN_C_API XnStatus XN_C_DECL xnGetWaveOutputMode(XnNodeHandle hInstance, XnWaveOutputMode* OutputMode); 02257 XN_C_API XnStatus XN_C_DECL xnRegisterToWaveOutputModeChanges(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 02258 XN_C_API void XN_C_DECL xnUnregisterFromWaveOutputModeChanges(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02259 02266 XN_C_API void XN_C_DECL xnGetAudioMetaData(XnNodeHandle hInstance, XnAudioMetaData* pMetaData); 02267 02270 //--------------------------------------------------------------------------- 02271 // Mocks 02272 //--------------------------------------------------------------------------- 02273 02280 XN_C_API XnStatus XN_C_DECL xnMockDepthSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnDepthPixel* pData); 02281 XN_C_API XnStatus XN_C_DECL xnMockImageSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData); 02282 XN_C_API XnStatus XN_C_DECL xnMockIRSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnIRPixel* pData); 02283 XN_C_API XnStatus XN_C_DECL xnMockAudioSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData); 02284 XN_C_API XnStatus XN_C_DECL xnMockRawSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const void* pData); 02285 02288 //--------------------------------------------------------------------------- 02289 // Codecs 02290 //--------------------------------------------------------------------------- 02291 02300 XN_C_API XnStatus XN_C_DECL xnCreateCodec(XnContext* pContext, XnCodecID codecID, XnNodeHandle hInitializerNode, XnNodeHandle* phCodec); 02301 XN_C_API XnCodecID XN_C_DECL xnGetCodecID(XnNodeHandle hCodec); 02302 XN_C_API XnStatus XN_C_DECL xnEncodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 02303 void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 02304 XN_C_API XnStatus XN_C_DECL xnDecodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 02305 void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 02306 02309 //--------------------------------------------------------------------------- 02310 // Recorder 02311 //--------------------------------------------------------------------------- 02327 XN_C_API XnStatus XN_C_DECL xnCreateRecorder(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phRecorder); 02328 02336 XN_C_API XnStatus XN_C_DECL xnSetRecorderDestination(XnNodeHandle hRecorder, XnRecordMedium destType, const XnChar* strDest); 02337 02346 XN_C_API XnStatus XN_C_DECL xnGetRecorderDestination(XnNodeHandle hRecorder, XnRecordMedium* pDestType, XnChar* strDest, XnUInt32 nBufSize); 02347 02358 XN_C_API XnStatus XN_C_DECL xnAddNodeToRecording(XnNodeHandle hRecorder, XnNodeHandle hNode, XnCodecID compression); 02359 02367 XN_C_API XnStatus XN_C_DECL xnRemoveNodeFromRecording(XnNodeHandle hRecorder, XnNodeHandle hNode); 02368 02374 XN_C_API XnStatus XN_C_DECL xnRecord(XnNodeHandle hRecorder); 02375 02381 XN_C_API const XnChar* XN_C_DECL xnGetRecorderFormat(XnNodeHandle hRecorder); 02382 02385 //--------------------------------------------------------------------------- 02386 // Player 02387 //--------------------------------------------------------------------------- 02388 02404 XN_C_API XnStatus XN_C_DECL xnCreatePlayer(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phPlayer); 02405 02415 XN_C_API XnStatus XN_C_DECL xnSetPlayerRepeat(XnNodeHandle hPlayer, XnBool bRepeat); 02416 02428 XN_C_API XnStatus XN_C_DECL xnSetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium sourceType, const XnChar* strSource); 02429 02440 XN_C_API XnStatus XN_C_DECL xnGetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium* pSourceType, XnChar* strSource, XnUInt32 nBufSize); 02441 02449 XN_C_API XnStatus XN_C_DECL xnPlayerReadNext(XnNodeHandle hPlayer); 02450 02468 XN_C_API XnStatus XN_C_DECL xnSeekPlayerToTimeStamp(XnNodeHandle hPlayer, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin); 02469 02489 XN_C_API XnStatus XN_C_DECL xnSeekPlayerToFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin); 02490 02497 XN_C_API XnStatus XN_C_DECL xnTellPlayerTimestamp(XnNodeHandle hPlayer, XnUInt64* pnTimestamp); 02498 02508 XN_C_API XnStatus XN_C_DECL xnTellPlayerFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrame); 02509 02517 XN_C_API XnStatus XN_C_DECL xnGetPlayerNumFrames(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrames); 02518 02525 XN_C_API const XnChar* XN_C_DECL xnGetPlayerSupportedFormat(XnNodeHandle hPlayer); 02526 02536 XN_C_API XnStatus XN_C_DECL xnEnumeratePlayerNodes(XnNodeHandle hPlayer, XnNodeInfoList** ppList); 02537 02546 XN_C_API XnBool XN_C_DECL xnIsPlayerAtEOF(XnNodeHandle hPlayer); 02547 02558 XN_C_API XnStatus XN_C_DECL xnRegisterToEndOfFileReached 02559 (XnNodeHandle hPlayer, XnStateChangedHandler handler, 02560 void* pCookie, XnCallbackHandle* phCallback); 02561 02568 XN_C_API void XN_C_DECL xnUnregisterFromEndOfFileReached 02569 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 02570 02582 XN_C_API XnStatus XN_C_DECL xnSetPlaybackSpeed(XnNodeHandle hInstance, XnDouble dSpeed); 02583 02590 XN_C_API XnDouble XN_C_DECL xnGetPlaybackSpeed(XnNodeHandle hInstance); 02591 02594 //--------------------------------------------------------------------------- 02595 // ScriptNode 02596 //--------------------------------------------------------------------------- 02597 02606 XN_C_API XnStatus XN_C_DECL xnCreateScriptNode(XnContext* pContext, const XnChar* strFormat, XnNodeHandle* phScript); 02607 XN_C_API const XnChar* XN_C_DECL xnScriptNodeGetSupportedFormat(XnNodeHandle hScript); 02608 XN_C_API XnStatus XN_C_DECL xnLoadScriptFromFile(XnNodeHandle hScript, const XnChar* strFileName); 02609 XN_C_API XnStatus XN_C_DECL xnLoadScriptFromString(XnNodeHandle hScript, const XnChar* strScript); 02610 XN_C_API XnStatus XN_C_DECL xnScriptNodeRun(XnNodeHandle hScript, XnEnumerationErrors* pErrors); 02611 02614 #endif // __XN_PRD_NODE_H__
Generated on Wed May 16 2012 10:16:05 for OpenNI 1.5.4 by 1.7.5.1