OpenNI 1.3.2
|
00001 /**************************************************************************** 00002 * * 00003 * OpenNI 1.1 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); 01428 XN_C_API XnBool XN_C_DECL xnIsGestureAvailable(XnNodeHandle hInstance, const XnChar* strGesture); 01435 XN_C_API XnBool XN_C_DECL xnIsGestureProgressSupported(XnNodeHandle hInstance, const XnChar* strGesture); 01445 XN_C_API XnStatus XN_C_DECL xnRegisterGestureCallbacks(XnNodeHandle hInstance, XnGestureRecognized RecognizedCB, XnGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01452 XN_C_API void XN_C_DECL xnUnregisterGestureCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01461 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01468 XN_C_API void XN_C_DECL xnUnregisterFromGestureChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01469 01478 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureIntermediateStageCompleted(XnNodeHandle hInstance, XnGestureIntermediateStageCompleted handler, void* pCookie, XnCallbackHandle* phCallback); 01485 XN_C_API void XN_C_DECL xnUnregisterFromGestureIntermediateStageCompleted(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01494 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureReadyForNextIntermediateStage(XnNodeHandle hInstance, XnGestureReadyForNextIntermediateStage handler, void* pCookie, XnCallbackHandle* phCallback); 01501 XN_C_API void XN_C_DECL xnUnregisterFromGestureReadyForNextIntermediateStage(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01504 //--------------------------------------------------------------------------- 01505 // Scene Analysis 01506 //--------------------------------------------------------------------------- 01507 01524 XN_C_API XnStatus XN_C_DECL xnCreateSceneAnalyzer( 01525 XnContext* pContext, 01526 XnNodeHandle* phSceneAnalyzer, 01527 XnNodeQuery* pQuery, 01528 XnEnumerationErrors* pErrors 01529 ); 01530 01536 XN_C_API const XnLabel* XN_C_DECL xnGetLabelMap(XnNodeHandle hInstance); 01543 XN_C_API XnStatus XN_C_DECL xnGetFloor(XnNodeHandle hInstance, XnPlane3D* pPlane); 01544 01551 XN_C_API void XN_C_DECL xnGetSceneMetaData(XnNodeHandle hInstance, XnSceneMetaData* pMetaData); 01552 01555 //--------------------------------------------------------------------------- 01556 // User Generator 01557 //--------------------------------------------------------------------------- 01558 01575 XN_C_API XnStatus XN_C_DECL xnCreateUserGenerator( 01576 XnContext* pContext, 01577 XnNodeHandle* phUserGenerator, 01578 XnNodeQuery* pQuery, 01579 XnEnumerationErrors* pErrors 01580 ); 01581 01587 XN_C_API XnUInt16 XN_C_DECL xnGetNumberOfUsers(XnNodeHandle hInstance); 01595 XN_C_API XnStatus XN_C_DECL xnGetUsers(XnNodeHandle hInstance, XnUserID* pUsers, XnUInt16* pnUsers); 01603 XN_C_API XnStatus XN_C_DECL xnGetUserCoM(XnNodeHandle hInstance, XnUserID user, XnPoint3D* pCoM); 01616 XN_C_API XnStatus XN_C_DECL xnGetUserPixels(XnNodeHandle hInstance, XnUserID user, XnSceneMetaData* pScene); 01626 XN_C_API XnStatus XN_C_DECL xnRegisterUserCallbacks(XnNodeHandle hInstance, XnUserHandler NewUserCB, XnUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback); 01633 XN_C_API void XN_C_DECL xnUnregisterUserCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01634 01643 XN_C_API XnStatus XN_C_DECL xnRegisterToUserExit(XnNodeHandle hInstance, XnUserHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01650 XN_C_API void XN_C_DECL xnUnregisterFromUserExit(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01659 XN_C_API XnStatus XN_C_DECL xnRegisterToUserReEnter(XnNodeHandle hInstance, XnUserHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01666 XN_C_API void XN_C_DECL xnUnregisterFromUserReEnter(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01669 //--------------------------------------------------------------------------- 01670 // Skeleton Capability 01671 //--------------------------------------------------------------------------- 01672 01687 XN_C_API XnBool XN_C_DECL xnIsJointAvailable(XnNodeHandle hInstance, XnSkeletonJoint eJoint); 01694 XN_C_API XnBool XN_C_DECL xnIsProfileAvailable(XnNodeHandle hInstance, XnSkeletonProfile eProfile); 01701 XN_C_API XnStatus XN_C_DECL xnSetSkeletonProfile(XnNodeHandle hInstance, XnSkeletonProfile eProfile); 01709 XN_C_API XnStatus XN_C_DECL xnSetJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint, XnBool bState); 01716 XN_C_API XnBool XN_C_DECL xnIsJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint); 01725 XN_C_API XnStatus XN_C_DECL xnRegisterToJointConfigurationChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01732 XN_C_API void XN_C_DECL xnUnregisterFromJointConfigurationChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01740 XN_C_API XnStatus XN_C_DECL xnEnumerateActiveJoints(XnNodeHandle hInstance, XnSkeletonJoint* pJoints, XnUInt16* pnJoints); 01749 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJoint(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint); 01758 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJointPosition(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint); 01767 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJointOrientation(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint); 01774 XN_C_API XnBool XN_C_DECL xnIsSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01781 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrated(XnNodeHandle hInstance, XnUserID user); 01788 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrating(XnNodeHandle hInstance, XnUserID user); 01796 XN_C_API XnStatus XN_C_DECL xnRequestSkeletonCalibration(XnNodeHandle hInstance, XnUserID user, XnBool bForce); 01803 XN_C_API XnStatus XN_C_DECL xnAbortSkeletonCalibration(XnNodeHandle hInstance, XnUserID user); 01811 XN_C_API XnStatus XN_C_DECL xnSaveSkeletonCalibrationDataToFile(XnNodeHandle hInstance, XnUserID user, const XnChar* strFileName); 01819 XN_C_API XnStatus XN_C_DECL xnLoadSkeletonCalibrationDataFromFile(XnNodeHandle hInstance, XnUserID user, const XnChar* strFileName); 01827 XN_C_API XnStatus XN_C_DECL xnSaveSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot); 01835 XN_C_API XnStatus XN_C_DECL xnLoadSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot); 01842 XN_C_API XnStatus XN_C_DECL xnClearSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot); 01849 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot); 01856 XN_C_API XnStatus XN_C_DECL xnStartSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01863 XN_C_API XnStatus XN_C_DECL xnStopSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01870 XN_C_API XnStatus XN_C_DECL xnResetSkeleton(XnNodeHandle hInstance, XnUserID user); 01876 XN_C_API XnBool XN_C_DECL xnNeedPoseForSkeletonCalibration(XnNodeHandle hInstance); 01883 XN_C_API XnStatus XN_C_DECL xnGetSkeletonCalibrationPose(XnNodeHandle hInstance, XnChar* strPose); 01890 XN_C_API XnStatus XN_C_DECL xnSetSkeletonSmoothing(XnNodeHandle hInstance, XnFloat fFactor); 01900 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); 01907 XN_C_API void XN_API_DEPRECATED("Please use UnregisterFromCalibrationStart/Complete") XN_C_DECL xnUnregisterCalibrationCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01916 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationStart(XnNodeHandle hInstance, XnCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback); 01923 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationStart(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01924 01933 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationInProgress(XnNodeHandle hInstance, XnCalibrationInProgress handler, void* pCookie, XnCallbackHandle* phCallback); 01940 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationInProgress(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01949 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationComplete(XnNodeHandle hInstance, XnCalibrationComplete handler, void* pCookie, XnCallbackHandle* phCallback); 01956 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationComplete(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01959 //--------------------------------------------------------------------------- 01960 // Pose Detection Capability 01961 //--------------------------------------------------------------------------- 01962 01976 XN_C_API XnUInt32 XN_C_DECL xnGetNumberOfPoses(XnNodeHandle hInstance); 01984 XN_C_API XnStatus XN_C_DECL xnGetAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32* pnPoses); 01993 XN_C_API XnStatus XN_C_DECL xnGetAllAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses); 02001 XN_C_API XnStatus XN_C_DECL xnStartPoseDetection(XnNodeHandle hInstance,const XnChar* strPose, XnUserID user); 02008 XN_C_API XnStatus XN_C_DECL xnStopPoseDetection(XnNodeHandle hInstance, XnUserID user); 02018 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); 02025 XN_C_API void XN_API_DEPRECATED("Please use PoseDetected and/or OutOfPose callbacks") XN_C_DECL xnUnregisterFromPoseCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02026 02035 XN_C_API XnStatus xnRegisterToPoseDetected(XnNodeHandle hInstance, XnPoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 02042 XN_C_API void xnUnregisterFromPoseDetected(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02043 02052 XN_C_API XnStatus xnRegisterToOutOfPose(XnNodeHandle hInstance, XnPoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 02059 XN_C_API void xnUnregisterFromOutOfPose(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02060 02069 XN_C_API XnStatus XN_C_DECL xnRegisterToPoseDetectionInProgress(XnNodeHandle hInstance, XnPoseDetectionInProgress handler, void* pCookie, XnCallbackHandle* phCallback); 02076 XN_C_API void XN_C_DECL xnUnregisterFromPoseDetectionInProgress(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02077 02080 //--------------------------------------------------------------------------- 02081 // Hands Generator 02082 //--------------------------------------------------------------------------- 02083 02100 XN_C_API XnStatus XN_C_DECL xnCreateHandsGenerator( 02101 XnContext* pContext, 02102 XnNodeHandle* phHandsGenerator, 02103 XnNodeQuery* pQuery, 02104 XnEnumerationErrors* pErrors 02105 ); 02106 02117 XN_C_API XnStatus XN_C_DECL xnRegisterHandCallbacks(XnNodeHandle hInstance, XnHandCreate CreateCB, XnHandUpdate UpdateCB, XnHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback); 02124 XN_C_API void XN_C_DECL xnUnregisterHandCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02131 XN_C_API XnStatus XN_C_DECL xnStopTracking(XnNodeHandle hInstance, XnUserID user); 02137 XN_C_API XnStatus XN_C_DECL xnStopTrackingAll(XnNodeHandle hInstance); 02144 XN_C_API XnStatus XN_C_DECL xnStartTracking(XnNodeHandle hInstance, const XnPoint3D* pPosition); 02151 XN_C_API XnStatus XN_C_DECL xnSetTrackingSmoothing(XnNodeHandle hInstance, XnFloat fFactor); 02154 //--------------------------------------------------------------------------- 02155 // Hand Touching FOV Edge Capability 02156 //--------------------------------------------------------------------------- 02157 02173 XN_C_API XnStatus XN_C_DECL xnRegisterToHandTouchingFOVEdge(XnNodeHandle hInstance, XnHandTouchingFOVEdge handler, void* pCookie, XnCallbackHandle* phCallback); 02180 XN_C_API void XN_C_DECL xnUnregisterFromHandTouchingFOVEdge(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02183 //--------------------------------------------------------------------------- 02184 // Audio Generator 02185 //--------------------------------------------------------------------------- 02186 02203 XN_C_API XnStatus XN_C_DECL xnCreateAudioGenerator( 02204 XnContext* pContext, 02205 XnNodeHandle* phAudioGenerator, 02206 XnNodeQuery* pQuery, 02207 XnEnumerationErrors* pErrors 02208 ); 02209 02210 XN_C_API XnUChar* XN_C_DECL xnGetAudioBuffer(XnNodeHandle hInstance); 02211 XN_C_API XnUInt32 XN_C_DECL xnGetSupportedWaveOutputModesCount(XnNodeHandle hInstance); 02212 XN_C_API XnStatus XN_C_DECL xnGetSupportedWaveOutputModes(XnNodeHandle hInstance, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount); 02213 XN_C_API XnStatus XN_C_DECL xnSetWaveOutputMode(XnNodeHandle hInstance, const XnWaveOutputMode* OutputMode); 02214 XN_C_API XnStatus XN_C_DECL xnGetWaveOutputMode(XnNodeHandle hInstance, XnWaveOutputMode* OutputMode); 02215 XN_C_API XnStatus XN_C_DECL xnRegisterToWaveOutputModeChanges(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 02216 XN_C_API void XN_C_DECL xnUnregisterFromWaveOutputModeChanges(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02217 02224 XN_C_API void XN_C_DECL xnGetAudioMetaData(XnNodeHandle hInstance, XnAudioMetaData* pMetaData); 02225 02228 //--------------------------------------------------------------------------- 02229 // Mocks 02230 //--------------------------------------------------------------------------- 02231 02238 XN_C_API XnStatus XN_C_DECL xnMockDepthSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnDepthPixel* pData); 02239 XN_C_API XnStatus XN_C_DECL xnMockImageSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData); 02240 XN_C_API XnStatus XN_C_DECL xnMockIRSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnIRPixel* pData); 02241 XN_C_API XnStatus XN_C_DECL xnMockAudioSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData); 02242 XN_C_API XnStatus XN_C_DECL xnMockRawSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const void* pData); 02243 02246 //--------------------------------------------------------------------------- 02247 // Codecs 02248 //--------------------------------------------------------------------------- 02249 02258 XN_C_API XnStatus XN_C_DECL xnCreateCodec(XnContext* pContext, XnCodecID codecID, XnNodeHandle hInitializerNode, XnNodeHandle* phCodec); 02259 XN_C_API XnCodecID XN_C_DECL xnGetCodecID(XnNodeHandle hCodec); 02260 XN_C_API XnStatus XN_C_DECL xnEncodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 02261 void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 02262 XN_C_API XnStatus XN_C_DECL xnDecodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 02263 void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 02264 02267 //--------------------------------------------------------------------------- 02268 // Recorder 02269 //--------------------------------------------------------------------------- 02285 XN_C_API XnStatus XN_C_DECL xnCreateRecorder(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phRecorder); 02286 02294 XN_C_API XnStatus XN_C_DECL xnSetRecorderDestination(XnNodeHandle hRecorder, XnRecordMedium destType, const XnChar* strDest); 02295 02303 XN_C_API XnStatus XN_C_DECL xnGetRecorderDestination(XnNodeHandle hRecorder, XnRecordMedium* pDestType, XnChar* strDest, XnUInt32 nBufSize); 02304 02315 XN_C_API XnStatus XN_C_DECL xnAddNodeToRecording(XnNodeHandle hRecorder, XnNodeHandle hNode, XnCodecID compression); 02316 02324 XN_C_API XnStatus XN_C_DECL xnRemoveNodeFromRecording(XnNodeHandle hRecorder, XnNodeHandle hNode); 02325 02331 XN_C_API XnStatus XN_C_DECL xnRecord(XnNodeHandle hRecorder); 02332 02338 XN_C_API const XnChar* XN_C_DECL xnGetRecorderFormat(XnNodeHandle hRecorder); 02339 02342 //--------------------------------------------------------------------------- 02343 // Player 02344 //--------------------------------------------------------------------------- 02345 02361 XN_C_API XnStatus XN_C_DECL xnCreatePlayer(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phPlayer); 02362 02372 XN_C_API XnStatus XN_C_DECL xnSetPlayerRepeat(XnNodeHandle hPlayer, XnBool bRepeat); 02373 02385 XN_C_API XnStatus XN_C_DECL xnSetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium sourceType, const XnChar* strSource); 02386 02397 XN_C_API XnStatus XN_C_DECL xnGetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium* pSourceType, XnChar* strSource, XnUInt32 nBufSize); 02398 02406 XN_C_API XnStatus XN_C_DECL xnPlayerReadNext(XnNodeHandle hPlayer); 02407 02425 XN_C_API XnStatus XN_C_DECL xnSeekPlayerToTimeStamp(XnNodeHandle hPlayer, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin); 02426 02446 XN_C_API XnStatus XN_C_DECL xnSeekPlayerToFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin); 02447 02454 XN_C_API XnStatus XN_C_DECL xnTellPlayerTimestamp(XnNodeHandle hPlayer, XnUInt64* pnTimestamp); 02455 02465 XN_C_API XnStatus XN_C_DECL xnTellPlayerFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrame); 02466 02474 XN_C_API XnStatus XN_C_DECL xnGetPlayerNumFrames(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrames); 02475 02482 XN_C_API const XnChar* XN_C_DECL xnGetPlayerSupportedFormat(XnNodeHandle hPlayer); 02483 02493 XN_C_API XnStatus XN_C_DECL xnEnumeratePlayerNodes(XnNodeHandle hPlayer, XnNodeInfoList** ppList); 02494 02503 XN_C_API XnBool XN_C_DECL xnIsPlayerAtEOF(XnNodeHandle hPlayer); 02504 02515 XN_C_API XnStatus XN_C_DECL xnRegisterToEndOfFileReached 02516 (XnNodeHandle hPlayer, XnStateChangedHandler handler, 02517 void* pCookie, XnCallbackHandle* phCallback); 02518 02525 XN_C_API void XN_C_DECL xnUnregisterFromEndOfFileReached 02526 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 02527 02539 XN_C_API XnStatus XN_C_DECL xnSetPlaybackSpeed(XnNodeHandle hInstance, XnDouble dSpeed); 02540 02547 XN_C_API XnDouble XN_C_DECL xnGetPlaybackSpeed(XnNodeHandle hInstance); 02548 02551 //--------------------------------------------------------------------------- 02552 // ScriptNode 02553 //--------------------------------------------------------------------------- 02554 02563 XN_C_API XnStatus XN_C_DECL xnCreateScriptNode(XnContext* pContext, const XnChar* strFormat, XnNodeHandle* phScript); 02564 XN_C_API const XnChar* XN_C_DECL xnScriptNodeGetSupportedFormat(XnNodeHandle hScript); 02565 XN_C_API XnStatus XN_C_DECL xnLoadScriptFromFile(XnNodeHandle hScript, const XnChar* strFileName); 02566 XN_C_API XnStatus XN_C_DECL xnLoadScriptFromString(XnNodeHandle hScript, const XnChar* strScript); 02567 XN_C_API XnStatus XN_C_DECL xnScriptNodeRun(XnNodeHandle hScript, XnEnumerationErrors* pErrors); 02568 02571 #endif // __XN_PRD_NODE_H__