![]() |
OpenNI 1.5.7
|
00001 /***************************************************************************** 00002 * * 00003 * OpenNI 1.x Alpha * 00004 * Copyright (C) 2012 PrimeSense Ltd. * 00005 * * 00006 * This file is part of OpenNI. * 00007 * * 00008 * Licensed under the Apache License, Version 2.0 (the "License"); * 00009 * you may not use this file except in compliance with the License. * 00010 * You may obtain a copy of the License at * 00011 * * 00012 * http://www.apache.org/licenses/LICENSE-2.0 * 00013 * * 00014 * Unless required by applicable law or agreed to in writing, software * 00015 * distributed under the License is distributed on an "AS IS" BASIS, * 00016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 00017 * See the License for the specific language governing permissions and * 00018 * limitations under the License. * 00019 * * 00020 *****************************************************************************/ 00021 #ifndef __XN_PRD_NODE_H__ 00022 #define __XN_PRD_NODE_H__ 00023 00030 //--------------------------------------------------------------------------- 00031 // Includes 00032 //--------------------------------------------------------------------------- 00033 #include <XnTypes.h> 00034 00035 //--------------------------------------------------------------------------- 00036 // Functions 00037 //--------------------------------------------------------------------------- 00038 00053 XN_C_API XnNodeInfo* XN_C_DECL xnGetNodeInfo(XnNodeHandle hNode); 00054 00060 XN_C_API const XnChar* XN_C_DECL xnGetNodeName(XnNodeHandle hNode); 00061 00068 XN_C_API XnContext* XN_C_DECL xnGetRefContextFromNodeHandle(XnNodeHandle hNode); 00069 00070 typedef XnContext* XnContextPtr; 00071 XN_C_API XnContextPtr XN_API_DEPRECATED("Please use xnGetRefContextFromNodeHandle() instead") XN_C_DECL xnGetContextFromNodeHandle(XnNodeHandle hNode); 00072 00079 XN_C_API XnBool XN_C_DECL xnIsCapabilitySupported(XnNodeHandle hInstance, const XnChar* strCapabilityName); 00080 00088 XN_C_API XnStatus XN_C_DECL xnSetIntProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt64 nValue); 00096 XN_C_API XnStatus XN_C_DECL xnSetRealProperty(XnNodeHandle hInstance, const XnChar* strName, XnDouble dValue); 00104 XN_C_API XnStatus XN_C_DECL xnSetStringProperty(XnNodeHandle hInstance, const XnChar* strName, const XnChar* strValue); 00113 XN_C_API XnStatus XN_C_DECL xnSetGeneralProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, const void* pBuffer); 00114 00122 XN_C_API XnStatus XN_C_DECL xnGetIntProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt64* pnValue); 00130 XN_C_API XnStatus XN_C_DECL xnGetRealProperty(XnNodeHandle hInstance, const XnChar* strName, XnDouble* pdValue); 00139 XN_C_API XnStatus XN_C_DECL xnGetStringProperty(XnNodeHandle hInstance, const XnChar* strName, XnChar* csValue, XnUInt32 nBufSize); 00148 XN_C_API XnStatus XN_C_DECL xnGetGeneralProperty(XnNodeHandle hInstance, const XnChar* strName, XnUInt32 nBufferSize, void* pBuffer); 00149 00156 XN_C_API XnStatus XN_C_DECL xnLockNodeForChanges(XnNodeHandle hInstance, XnLockHandle* phLock); 00157 00164 XN_C_API XnStatus XN_C_DECL xnUnlockNodeForChanges(XnNodeHandle hInstance, XnLockHandle hLock); 00165 00175 XN_C_API XnStatus XN_C_DECL xnLockedNodeStartChanges(XnNodeHandle hInstance, XnLockHandle hLock); 00176 00183 XN_C_API XnStatus XN_C_DECL xnLockedNodeEndChanges(XnNodeHandle hInstance, XnLockHandle hLock); 00184 00191 XN_C_API XnStatus XN_C_DECL xnAddNeededNode(XnNodeHandle hInstance, XnNodeHandle hNeededNode); 00192 00202 XN_C_API XnStatus XN_C_DECL xnRemoveNeededNode(XnNodeHandle hInstance, XnNodeHandle hNeededNode); 00203 00206 //--------------------------------------------------------------------------- 00207 // Device 00208 //--------------------------------------------------------------------------- 00209 00227 XN_C_API XnStatus XN_C_DECL xnCreateDevice(XnContext* pContext, XnNodeHandle* phDevice, XnNodeQuery* pQuery, XnEnumerationErrors* pErrors); 00228 00231 //--------------------------------------------------------------------------- 00232 // Device Identification Capability 00233 //--------------------------------------------------------------------------- 00234 00255 XN_C_API XnStatus XN_C_DECL xnGetDeviceName(XnNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00256 00268 XN_C_API XnStatus XN_C_DECL xnGetVendorSpecificData(XnNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00269 00281 XN_C_API XnStatus XN_C_DECL xnGetSerialNumber(XnNodeHandle hInstance, XnChar* strBuffer, XnUInt32* pnBufferSize); 00282 00285 //--------------------------------------------------------------------------- 00286 // ErrorState Capability 00287 //--------------------------------------------------------------------------- 00288 00310 XN_C_API XnStatus XN_C_DECL xnGetNodeErrorState(XnNodeHandle hInstance); 00311 00320 XN_C_API XnStatus XN_C_DECL xnRegisterToNodeErrorStateChange 00321 (XnNodeHandle hInstance, XnStateChangedHandler handler, 00322 void* pCookie, XnCallbackHandle* phCallback); 00323 00330 XN_C_API void XN_C_DECL xnUnregisterFromNodeErrorStateChange 00331 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 00332 00335 //--------------------------------------------------------------------------- 00336 // GeneralIntCapability 00337 //--------------------------------------------------------------------------- 00338 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 00732 XN_C_API XnStatus XN_C_DECL xnGetPixelCoordinatesInViewPoint(XnNodeHandle hInstance, XnNodeHandle hOther, XnUInt32 x, XnUInt32 y, XnUInt32* pAltX, XnUInt32* pAltY); 00733 00736 //--------------------------------------------------------------------------- 00737 // FrameSync Capability 00738 //--------------------------------------------------------------------------- 00739 00757 XN_C_API XnBool XN_C_DECL xnCanFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00758 00765 XN_C_API XnStatus XN_C_DECL xnFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00766 00773 XN_C_API XnStatus XN_C_DECL xnStopFrameSyncWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00774 00781 XN_C_API XnBool XN_C_DECL xnIsFrameSyncedWith(XnNodeHandle hInstance, XnNodeHandle hOther); 00782 00791 XN_C_API XnStatus XN_C_DECL xnRegisterToFrameSyncChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 00792 00799 XN_C_API void XN_C_DECL xnUnregisterFromFrameSyncChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 00800 00803 //--------------------------------------------------------------------------- 00804 // Map Generators 00805 //--------------------------------------------------------------------------- 00806 00822 XN_C_API XnUInt32 XN_C_DECL xnGetSupportedMapOutputModesCount(XnNodeHandle hInstance); 00823 00834 XN_C_API XnStatus XN_C_DECL xnGetSupportedMapOutputModes(XnNodeHandle hInstance, XnMapOutputMode* aModes, XnUInt32* pnCount); 00835 00844 XN_C_API XnStatus XN_C_DECL xnSetMapOutputMode(XnNodeHandle hInstance, const XnMapOutputMode* pOutputMode); 00845 00854 XN_C_API XnStatus XN_C_DECL xnGetMapOutputMode(XnNodeHandle hInstance, XnMapOutputMode* pOutputMode); 00855 00866 XN_C_API XnStatus XN_C_DECL xnRegisterToMapOutputModeChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 00867 void* pCookie, XnCallbackHandle* phCallback); 00868 00875 XN_C_API void XN_C_DECL xnUnregisterFromMapOutputModeChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 00876 00884 XN_C_API XnUInt32 XN_C_DECL xnGetBytesPerPixel(XnNodeHandle hInstance); 00885 00888 //--------------------------------------------------------------------------- 00889 // Cropping Capability 00890 //--------------------------------------------------------------------------- 00891 00892 00913 XN_C_API XnStatus XN_C_DECL xnSetCropping(XnNodeHandle hInstance, const XnCropping* pCropping); 00914 00923 XN_C_API XnStatus XN_C_DECL xnGetCropping(XnNodeHandle hInstance, XnCropping* pCropping); 00924 00933 XN_C_API XnStatus XN_C_DECL xnRegisterToCroppingChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 00934 void* pCookie, XnCallbackHandle* phCallback); 00935 00942 XN_C_API void XN_C_DECL xnUnregisterFromCroppingChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 00943 00946 //--------------------------------------------------------------------------- 00947 // Anti Flicker Capability 00948 //--------------------------------------------------------------------------- 00949 00964 XN_C_API XnStatus XN_C_DECL xnSetPowerLineFrequency(XnNodeHandle hGenerator, XnPowerLineFrequency nFrequency); 00965 00972 XN_C_API XnPowerLineFrequency XN_C_DECL xnGetPowerLineFrequency(XnNodeHandle hGenerator); 00973 00982 XN_C_API XnStatus XN_C_DECL xnRegisterToPowerLineFrequencyChange 00983 (XnNodeHandle hGenerator, XnStateChangedHandler handler, 00984 void* pCookie, XnCallbackHandle* phCallback); 00985 00992 XN_C_API void XN_C_DECL xnUnregisterFromPowerLineFrequencyChange 00993 (XnNodeHandle hGenerator, XnCallbackHandle hCallback); 00994 00997 //--------------------------------------------------------------------------- 00998 // Depth Generators 00999 //--------------------------------------------------------------------------- 01000 01017 XN_C_API XnStatus XN_C_DECL xnCreateDepthGenerator( 01018 XnContext* pContext, 01019 XnNodeHandle* phDepthGenerator, 01020 XnNodeQuery* pQuery, 01021 XnEnumerationErrors* pErrors); 01022 01030 XN_C_API XnDepthPixel XN_C_DECL xnGetDeviceMaxDepth(XnNodeHandle hInstance); 01031 01040 XN_C_API XnStatus XN_C_DECL xnGetDepthFieldOfView(XnNodeHandle hInstance, XnFieldOfView* pFOV); 01041 01052 XN_C_API XnStatus XN_C_DECL xnRegisterToDepthFieldOfViewChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 01053 void* pCookie, XnCallbackHandle* phCallback); 01054 01061 XN_C_API void XN_C_DECL xnUnregisterFromDepthFieldOfViewChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01062 01073 XN_C_API XnStatus XN_C_DECL xnConvertProjectiveToRealWorld( 01074 XnNodeHandle hInstance, XnUInt32 nCount, const XnPoint3D* aProjective, XnPoint3D* aRealWorld); 01075 01086 XN_C_API XnStatus XN_C_DECL xnConvertRealWorldToProjective( 01087 XnNodeHandle hInstance, XnUInt32 nCount, const XnPoint3D* aRealWorld, XnPoint3D* aProjective); 01088 01096 XN_C_API XnDepthPixel* XN_C_DECL xnGetDepthMap(XnNodeHandle hInstance); 01097 01104 XN_C_API void XN_C_DECL xnGetDepthMetaData(XnNodeHandle hInstance, XnDepthMetaData* pMetaData); 01105 01108 //--------------------------------------------------------------------------- 01109 // User Position Capability 01110 //--------------------------------------------------------------------------- 01111 01127 XN_C_API XnUInt32 XN_C_DECL xnGetSupportedUserPositionsCount(XnNodeHandle hInstance); 01128 01138 XN_C_API XnStatus XN_C_DECL xnSetUserPosition(XnNodeHandle hInstance, XnUInt32 nIndex, const XnBoundingBox3D* pPosition); 01139 01149 XN_C_API XnStatus XN_C_DECL xnGetUserPosition(XnNodeHandle hInstance, XnUInt32 nIndex, XnBoundingBox3D* pPosition); 01150 01161 XN_C_API XnStatus XN_C_DECL xnRegisterToUserPositionChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 01162 void* pCookie, XnCallbackHandle* phCallback); 01163 01170 XN_C_API void XN_C_DECL xnUnregisterFromUserPositionChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01171 01174 //--------------------------------------------------------------------------- 01175 // Image Generators 01176 //--------------------------------------------------------------------------- 01177 01195 XN_C_API XnStatus XN_C_DECL xnCreateImageGenerator( 01196 XnContext* pContext, 01197 XnNodeHandle* phImageGenerator, 01198 XnNodeQuery* pQuery, 01199 XnEnumerationErrors* pErrors 01200 ); 01201 01210 XN_C_API XnRGB24Pixel* XN_C_DECL xnGetRGB24ImageMap(XnNodeHandle hInstance); 01211 01220 XN_C_API XnYUV422DoublePixel* XN_C_DECL xnGetYUV422ImageMap(XnNodeHandle hInstance); 01221 01230 XN_C_API XnGrayscale8Pixel* XN_C_DECL xnGetGrayscale8ImageMap(XnNodeHandle hInstance); 01231 01240 XN_C_API XnGrayscale16Pixel* XN_C_DECL xnGetGrayscale16ImageMap(XnNodeHandle hInstance); 01241 01254 XN_C_API XnUInt8* XN_C_DECL xnGetImageMap(XnNodeHandle hInstance); 01255 01262 XN_C_API XnBool XN_C_DECL xnIsPixelFormatSupported(XnNodeHandle hInstance, XnPixelFormat Format); 01263 01272 XN_C_API XnStatus XN_C_DECL xnSetPixelFormat(XnNodeHandle hInstance, XnPixelFormat Format); 01273 01281 XN_C_API XnPixelFormat XN_C_DECL xnGetPixelFormat(XnNodeHandle hInstance); 01282 01293 XN_C_API XnStatus XN_C_DECL xnRegisterToPixelFormatChange(XnNodeHandle hInstance, XnStateChangedHandler handler, 01294 void* pCookie, XnCallbackHandle* phCallback); 01295 01302 XN_C_API void XN_C_DECL xnUnregisterFromPixelFormatChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01303 01310 XN_C_API void XN_C_DECL xnGetImageMetaData(XnNodeHandle hInstance, XnImageMetaData* pMetaData); 01311 01314 //--------------------------------------------------------------------------- 01315 // IR Generators 01316 //--------------------------------------------------------------------------- 01317 01334 XN_C_API XnStatus XN_C_DECL xnCreateIRGenerator( 01335 XnContext* pContext, 01336 XnNodeHandle* phIRGenerator, 01337 XnNodeQuery* pQuery, 01338 XnEnumerationErrors* pErrors 01339 ); 01340 01348 XN_C_API XnIRPixel* XN_C_DECL xnGetIRMap(XnNodeHandle hInstance); 01349 01356 XN_C_API void XN_C_DECL xnGetIRMetaData(XnNodeHandle hInstance, XnIRMetaData* pMetaData); 01357 01360 //--------------------------------------------------------------------------- 01361 // Gesture Generators 01362 //--------------------------------------------------------------------------- 01363 01380 XN_C_API XnStatus XN_C_DECL xnCreateGestureGenerator( 01381 XnContext* pContext, 01382 XnNodeHandle* phGestureGenerator, 01383 XnNodeQuery* pQuery, 01384 XnEnumerationErrors* pErrors 01385 ); 01386 01394 XN_C_API XnStatus XN_C_DECL xnAddGesture(XnNodeHandle hInstance, const XnChar* strGesture, XnBoundingBox3D* pArea); 01401 XN_C_API XnStatus XN_C_DECL xnRemoveGesture(XnNodeHandle hInstance, const XnChar* strGesture); 01409 XN_C_API XnStatus XN_C_DECL xnGetActiveGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt16* nGestures); 01418 XN_C_API XnStatus XN_C_DECL xnGetAllActiveGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01426 XN_C_API XnStatus XN_C_DECL xnEnumerateGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt16* nGestures); 01435 XN_C_API XnStatus XN_C_DECL xnEnumerateAllGestures(XnNodeHandle hInstance, XnChar** pstrGestures, XnUInt32 nNameLength, XnUInt16* nGestures); 01436 01443 XN_C_API XnUInt16 XN_C_DECL xnGetNumberOfAvailableGestures(XnNodeHandle hInstance); 01444 01445 01452 XN_C_API XnBool XN_C_DECL xnIsGestureAvailable(XnNodeHandle hInstance, const XnChar* strGesture); 01459 XN_C_API XnBool XN_C_DECL xnIsGestureProgressSupported(XnNodeHandle hInstance, const XnChar* strGesture); 01469 XN_C_API XnStatus XN_C_DECL xnRegisterGestureCallbacks(XnNodeHandle hInstance, XnGestureRecognized RecognizedCB, XnGestureProgress ProgressCB, void* pCookie, XnCallbackHandle* phCallback); 01476 XN_C_API void XN_C_DECL xnUnregisterGestureCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01485 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01492 XN_C_API void XN_C_DECL xnUnregisterFromGestureChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01493 01502 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureIntermediateStageCompleted(XnNodeHandle hInstance, XnGestureIntermediateStageCompleted handler, void* pCookie, XnCallbackHandle* phCallback); 01509 XN_C_API void XN_C_DECL xnUnregisterFromGestureIntermediateStageCompleted(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01518 XN_C_API XnStatus XN_C_DECL xnRegisterToGestureReadyForNextIntermediateStage(XnNodeHandle hInstance, XnGestureReadyForNextIntermediateStage handler, void* pCookie, XnCallbackHandle* phCallback); 01525 XN_C_API void XN_C_DECL xnUnregisterFromGestureReadyForNextIntermediateStage(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01528 //--------------------------------------------------------------------------- 01529 // Scene Analysis 01530 //--------------------------------------------------------------------------- 01531 01548 XN_C_API XnStatus XN_C_DECL xnCreateSceneAnalyzer( 01549 XnContext* pContext, 01550 XnNodeHandle* phSceneAnalyzer, 01551 XnNodeQuery* pQuery, 01552 XnEnumerationErrors* pErrors 01553 ); 01554 01560 XN_C_API const XnLabel* XN_C_DECL xnGetLabelMap(XnNodeHandle hInstance); 01567 XN_C_API XnStatus XN_C_DECL xnGetFloor(XnNodeHandle hInstance, XnPlane3D* pPlane); 01568 01575 XN_C_API void XN_C_DECL xnGetSceneMetaData(XnNodeHandle hInstance, XnSceneMetaData* pMetaData); 01576 01579 //--------------------------------------------------------------------------- 01580 // User Generator 01581 //--------------------------------------------------------------------------- 01582 01599 XN_C_API XnStatus XN_C_DECL xnCreateUserGenerator( 01600 XnContext* pContext, 01601 XnNodeHandle* phUserGenerator, 01602 XnNodeQuery* pQuery, 01603 XnEnumerationErrors* pErrors 01604 ); 01605 01611 XN_C_API XnUInt16 XN_C_DECL xnGetNumberOfUsers(XnNodeHandle hInstance); 01619 XN_C_API XnStatus XN_C_DECL xnGetUsers(XnNodeHandle hInstance, XnUserID* pUsers, XnUInt16* pnUsers); 01627 XN_C_API XnStatus XN_C_DECL xnGetUserCoM(XnNodeHandle hInstance, XnUserID user, XnPoint3D* pCoM); 01640 XN_C_API XnStatus XN_C_DECL xnGetUserPixels(XnNodeHandle hInstance, XnUserID user, XnSceneMetaData* pScene); 01650 XN_C_API XnStatus XN_C_DECL xnRegisterUserCallbacks(XnNodeHandle hInstance, XnUserHandler NewUserCB, XnUserHandler LostUserCB, void* pCookie, XnCallbackHandle* phCallback); 01657 XN_C_API void XN_C_DECL xnUnregisterUserCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01658 01667 XN_C_API XnStatus XN_C_DECL xnRegisterToUserExit(XnNodeHandle hInstance, XnUserHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01674 XN_C_API void XN_C_DECL xnUnregisterFromUserExit(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01683 XN_C_API XnStatus XN_C_DECL xnRegisterToUserReEnter(XnNodeHandle hInstance, XnUserHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01690 XN_C_API void XN_C_DECL xnUnregisterFromUserReEnter(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01693 //--------------------------------------------------------------------------- 01694 // Skeleton Capability 01695 //--------------------------------------------------------------------------- 01696 01711 XN_C_API XnBool XN_C_DECL xnIsJointAvailable(XnNodeHandle hInstance, XnSkeletonJoint eJoint); 01718 XN_C_API XnBool XN_C_DECL xnIsProfileAvailable(XnNodeHandle hInstance, XnSkeletonProfile eProfile); 01725 XN_C_API XnStatus XN_C_DECL xnSetSkeletonProfile(XnNodeHandle hInstance, XnSkeletonProfile eProfile); 01733 XN_C_API XnStatus XN_C_DECL xnSetJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint, XnBool bState); 01740 XN_C_API XnBool XN_C_DECL xnIsJointActive(XnNodeHandle hInstance, XnSkeletonJoint eJoint); 01749 XN_C_API XnStatus XN_C_DECL xnRegisterToJointConfigurationChange(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 01756 XN_C_API void XN_C_DECL xnUnregisterFromJointConfigurationChange(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01764 XN_C_API XnStatus XN_C_DECL xnEnumerateActiveJoints(XnNodeHandle hInstance, XnSkeletonJoint* pJoints, XnUInt16* pnJoints); 01773 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJoint(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointTransformation* pJoint); 01782 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJointPosition(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointPosition* pJoint); 01791 XN_C_API XnStatus XN_C_DECL xnGetSkeletonJointOrientation(XnNodeHandle hInstance, XnUserID user, XnSkeletonJoint eJoint, XnSkeletonJointOrientation* pJoint); 01798 XN_C_API XnBool XN_C_DECL xnIsSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01805 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrated(XnNodeHandle hInstance, XnUserID user); 01812 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrating(XnNodeHandle hInstance, XnUserID user); 01820 XN_C_API XnStatus XN_C_DECL xnRequestSkeletonCalibration(XnNodeHandle hInstance, XnUserID user, XnBool bForce); 01827 XN_C_API XnStatus XN_C_DECL xnAbortSkeletonCalibration(XnNodeHandle hInstance, XnUserID user); 01835 XN_C_API XnStatus XN_C_DECL xnSaveSkeletonCalibrationDataToFile(XnNodeHandle hInstance, XnUserID user, const XnChar* strFileName); 01843 XN_C_API XnStatus XN_C_DECL xnLoadSkeletonCalibrationDataFromFile(XnNodeHandle hInstance, XnUserID user, const XnChar* strFileName); 01851 XN_C_API XnStatus XN_C_DECL xnSaveSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot); 01859 XN_C_API XnStatus XN_C_DECL xnLoadSkeletonCalibrationData(XnNodeHandle hInstance, XnUserID user, XnUInt32 nSlot); 01866 XN_C_API XnStatus XN_C_DECL xnClearSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot); 01873 XN_C_API XnBool XN_C_DECL xnIsSkeletonCalibrationData(XnNodeHandle hInstance, XnUInt32 nSlot); 01880 XN_C_API XnStatus XN_C_DECL xnStartSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01887 XN_C_API XnStatus XN_C_DECL xnStopSkeletonTracking(XnNodeHandle hInstance, XnUserID user); 01894 XN_C_API XnStatus XN_C_DECL xnResetSkeleton(XnNodeHandle hInstance, XnUserID user); 01900 XN_C_API XnBool XN_C_DECL xnNeedPoseForSkeletonCalibration(XnNodeHandle hInstance); 01907 XN_C_API XnStatus XN_C_DECL xnGetSkeletonCalibrationPose(XnNodeHandle hInstance, XnChar* strPose); 01914 XN_C_API XnStatus XN_C_DECL xnSetSkeletonSmoothing(XnNodeHandle hInstance, XnFloat fFactor); 01924 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); 01931 XN_C_API void XN_API_DEPRECATED("Please use UnregisterFromCalibrationStart/Complete") XN_C_DECL xnUnregisterCalibrationCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01940 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationStart(XnNodeHandle hInstance, XnCalibrationStart handler, void* pCookie, XnCallbackHandle* phCallback); 01947 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationStart(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01948 01957 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationInProgress(XnNodeHandle hInstance, XnCalibrationInProgress handler, void* pCookie, XnCallbackHandle* phCallback); 01964 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationInProgress(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01973 XN_C_API XnStatus XN_C_DECL xnRegisterToCalibrationComplete(XnNodeHandle hInstance, XnCalibrationComplete handler, void* pCookie, XnCallbackHandle* phCallback); 01980 XN_C_API void XN_C_DECL xnUnregisterFromCalibrationComplete(XnNodeHandle hInstance, XnCallbackHandle hCallback); 01983 //--------------------------------------------------------------------------- 01984 // Pose Detection Capability 01985 //--------------------------------------------------------------------------- 01986 02000 XN_C_API XnUInt32 XN_C_DECL xnGetNumberOfPoses(XnNodeHandle hInstance); 02008 XN_C_API XnStatus XN_C_DECL xnGetAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32* pnPoses); 02017 XN_C_API XnStatus XN_C_DECL xnGetAllAvailablePoses(XnNodeHandle hInstance, XnChar** pstrPoses, XnUInt32 nNameLength, XnUInt32* pnPoses); 02018 02026 XN_C_API XnBool XN_C_DECL xnIsPoseSupported(XnNodeHandle hInstance, const XnChar* strPose); 02027 02041 XN_C_API XnStatus xnGetPoseStatus(XnNodeHandle hInstance, XnUserID userID, const XnChar* poseName, XnUInt64* poseTime, XnPoseDetectionStatus* eStatus, XnPoseDetectionState* eState); 02049 XN_C_API XnStatus XN_C_DECL xnStartPoseDetection(XnNodeHandle hInstance,const XnChar* strPose, XnUserID user); 02056 XN_C_API XnStatus XN_C_DECL xnStopPoseDetection(XnNodeHandle hInstance, XnUserID user); 02064 XN_C_API XnStatus XN_C_DECL xnStopSinglePoseDetection(XnNodeHandle hInstance, XnUserID user, const XnChar* strPose); 02074 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); 02081 XN_C_API void XN_API_DEPRECATED("Please use PoseDetected and/or OutOfPose callbacks") XN_C_DECL xnUnregisterFromPoseCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02082 02091 XN_C_API XnStatus xnRegisterToPoseDetected(XnNodeHandle hInstance, XnPoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 02098 XN_C_API void xnUnregisterFromPoseDetected(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02099 02108 XN_C_API XnStatus xnRegisterToOutOfPose(XnNodeHandle hInstance, XnPoseDetectionCallback handler, void* pCookie, XnCallbackHandle* phCallback); 02115 XN_C_API void xnUnregisterFromOutOfPose(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02116 02125 XN_C_API XnStatus XN_C_DECL xnRegisterToPoseDetectionInProgress(XnNodeHandle hInstance, XnPoseDetectionInProgress handler, void* pCookie, XnCallbackHandle* phCallback); 02132 XN_C_API void XN_C_DECL xnUnregisterFromPoseDetectionInProgress(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02133 02136 //--------------------------------------------------------------------------- 02137 // Hands Generator 02138 //--------------------------------------------------------------------------- 02139 02156 XN_C_API XnStatus XN_C_DECL xnCreateHandsGenerator( 02157 XnContext* pContext, 02158 XnNodeHandle* phHandsGenerator, 02159 XnNodeQuery* pQuery, 02160 XnEnumerationErrors* pErrors 02161 ); 02162 02173 XN_C_API XnStatus XN_C_DECL xnRegisterHandCallbacks(XnNodeHandle hInstance, XnHandCreate CreateCB, XnHandUpdate UpdateCB, XnHandDestroy DestroyCB, void* pCookie, XnCallbackHandle* phCallback); 02180 XN_C_API void XN_C_DECL xnUnregisterHandCallbacks(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02187 XN_C_API XnStatus XN_C_DECL xnStopTracking(XnNodeHandle hInstance, XnUserID user); 02193 XN_C_API XnStatus XN_C_DECL xnStopTrackingAll(XnNodeHandle hInstance); 02200 XN_C_API XnStatus XN_C_DECL xnStartTracking(XnNodeHandle hInstance, const XnPoint3D* pPosition); 02207 XN_C_API XnStatus XN_C_DECL xnSetTrackingSmoothing(XnNodeHandle hInstance, XnFloat fFactor); 02210 //--------------------------------------------------------------------------- 02211 // Hand Touching FOV Edge Capability 02212 //--------------------------------------------------------------------------- 02213 02229 XN_C_API XnStatus XN_C_DECL xnRegisterToHandTouchingFOVEdge(XnNodeHandle hInstance, XnHandTouchingFOVEdge handler, void* pCookie, XnCallbackHandle* phCallback); 02236 XN_C_API void XN_C_DECL xnUnregisterFromHandTouchingFOVEdge(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02239 //--------------------------------------------------------------------------- 02240 // Audio Generator 02241 //--------------------------------------------------------------------------- 02242 02259 XN_C_API XnStatus XN_C_DECL xnCreateAudioGenerator( 02260 XnContext* pContext, 02261 XnNodeHandle* phAudioGenerator, 02262 XnNodeQuery* pQuery, 02263 XnEnumerationErrors* pErrors 02264 ); 02265 02266 XN_C_API XnUChar* XN_C_DECL xnGetAudioBuffer(XnNodeHandle hInstance); 02267 XN_C_API XnUInt32 XN_C_DECL xnGetSupportedWaveOutputModesCount(XnNodeHandle hInstance); 02268 XN_C_API XnStatus XN_C_DECL xnGetSupportedWaveOutputModes(XnNodeHandle hInstance, XnWaveOutputMode* aSupportedModes, XnUInt32* pnCount); 02269 XN_C_API XnStatus XN_C_DECL xnSetWaveOutputMode(XnNodeHandle hInstance, const XnWaveOutputMode* OutputMode); 02270 XN_C_API XnStatus XN_C_DECL xnGetWaveOutputMode(XnNodeHandle hInstance, XnWaveOutputMode* OutputMode); 02271 XN_C_API XnStatus XN_C_DECL xnRegisterToWaveOutputModeChanges(XnNodeHandle hInstance, XnStateChangedHandler handler, void* pCookie, XnCallbackHandle* phCallback); 02272 XN_C_API void XN_C_DECL xnUnregisterFromWaveOutputModeChanges(XnNodeHandle hInstance, XnCallbackHandle hCallback); 02273 02280 XN_C_API void XN_C_DECL xnGetAudioMetaData(XnNodeHandle hInstance, XnAudioMetaData* pMetaData); 02281 02284 //--------------------------------------------------------------------------- 02285 // Mocks 02286 //--------------------------------------------------------------------------- 02287 02294 XN_C_API XnStatus XN_C_DECL xnMockDepthSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnDepthPixel* pData); 02295 XN_C_API XnStatus XN_C_DECL xnMockImageSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData); 02296 XN_C_API XnStatus XN_C_DECL xnMockIRSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnIRPixel* pData); 02297 XN_C_API XnStatus XN_C_DECL xnMockAudioSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const XnUInt8* pData); 02298 XN_C_API XnStatus XN_C_DECL xnMockRawSetData(XnNodeHandle hInstance, XnUInt32 nFrameID, XnUInt64 nTimestamp, XnUInt32 nDataSize, const void* pData); 02299 02302 //--------------------------------------------------------------------------- 02303 // Codecs 02304 //--------------------------------------------------------------------------- 02305 02314 XN_C_API XnStatus XN_C_DECL xnCreateCodec(XnContext* pContext, XnCodecID codecID, XnNodeHandle hInitializerNode, XnNodeHandle* phCodec); 02315 XN_C_API XnCodecID XN_C_DECL xnGetCodecID(XnNodeHandle hCodec); 02316 XN_C_API XnStatus XN_C_DECL xnEncodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 02317 void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 02318 XN_C_API XnStatus XN_C_DECL xnDecodeData(XnNodeHandle hCodec, const void* pSrc, XnUInt32 nSrcSize, 02319 void* pDst, XnUInt32 nDstSize, XnUInt* pnBytesWritten); 02320 02323 //--------------------------------------------------------------------------- 02324 // Recorder 02325 //--------------------------------------------------------------------------- 02341 XN_C_API XnStatus XN_C_DECL xnCreateRecorder(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phRecorder); 02342 02350 XN_C_API XnStatus XN_C_DECL xnSetRecorderDestination(XnNodeHandle hRecorder, XnRecordMedium destType, const XnChar* strDest); 02351 02360 XN_C_API XnStatus XN_C_DECL xnGetRecorderDestination(XnNodeHandle hRecorder, XnRecordMedium* pDestType, XnChar* strDest, XnUInt32 nBufSize); 02361 02372 XN_C_API XnStatus XN_C_DECL xnAddNodeToRecording(XnNodeHandle hRecorder, XnNodeHandle hNode, XnCodecID compression); 02373 02381 XN_C_API XnStatus XN_C_DECL xnRemoveNodeFromRecording(XnNodeHandle hRecorder, XnNodeHandle hNode); 02382 02388 XN_C_API XnStatus XN_C_DECL xnRecord(XnNodeHandle hRecorder); 02389 02395 XN_C_API const XnChar* XN_C_DECL xnGetRecorderFormat(XnNodeHandle hRecorder); 02396 02399 //--------------------------------------------------------------------------- 02400 // Player 02401 //--------------------------------------------------------------------------- 02402 02418 XN_C_API XnStatus XN_C_DECL xnCreatePlayer(XnContext* pContext, const XnChar* strFormatName, XnNodeHandle* phPlayer); 02419 02429 XN_C_API XnStatus XN_C_DECL xnSetPlayerRepeat(XnNodeHandle hPlayer, XnBool bRepeat); 02430 02442 XN_C_API XnStatus XN_C_DECL xnSetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium sourceType, const XnChar* strSource); 02443 02454 XN_C_API XnStatus XN_C_DECL xnGetPlayerSource(XnNodeHandle hPlayer, XnRecordMedium* pSourceType, XnChar* strSource, XnUInt32 nBufSize); 02455 02463 XN_C_API XnStatus XN_C_DECL xnPlayerReadNext(XnNodeHandle hPlayer); 02464 02482 XN_C_API XnStatus XN_C_DECL xnSeekPlayerToTimeStamp(XnNodeHandle hPlayer, XnInt64 nTimeOffset, XnPlayerSeekOrigin origin); 02483 02503 XN_C_API XnStatus XN_C_DECL xnSeekPlayerToFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnInt32 nFrameOffset, XnPlayerSeekOrigin origin); 02504 02511 XN_C_API XnStatus XN_C_DECL xnTellPlayerTimestamp(XnNodeHandle hPlayer, XnUInt64* pnTimestamp); 02512 02522 XN_C_API XnStatus XN_C_DECL xnTellPlayerFrame(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrame); 02523 02531 XN_C_API XnStatus XN_C_DECL xnGetPlayerNumFrames(XnNodeHandle hPlayer, const XnChar* strNodeName, XnUInt32* pnFrames); 02532 02539 XN_C_API const XnChar* XN_C_DECL xnGetPlayerSupportedFormat(XnNodeHandle hPlayer); 02540 02550 XN_C_API XnStatus XN_C_DECL xnEnumeratePlayerNodes(XnNodeHandle hPlayer, XnNodeInfoList** ppList); 02551 02560 XN_C_API XnBool XN_C_DECL xnIsPlayerAtEOF(XnNodeHandle hPlayer); 02561 02572 XN_C_API XnStatus XN_C_DECL xnRegisterToEndOfFileReached 02573 (XnNodeHandle hPlayer, XnStateChangedHandler handler, 02574 void* pCookie, XnCallbackHandle* phCallback); 02575 02582 XN_C_API void XN_C_DECL xnUnregisterFromEndOfFileReached 02583 (XnNodeHandle hInstance, XnCallbackHandle hCallback); 02584 02596 XN_C_API XnStatus XN_C_DECL xnSetPlaybackSpeed(XnNodeHandle hInstance, XnDouble dSpeed); 02597 02604 XN_C_API XnDouble XN_C_DECL xnGetPlaybackSpeed(XnNodeHandle hInstance); 02605 02608 //--------------------------------------------------------------------------- 02609 // ScriptNode 02610 //--------------------------------------------------------------------------- 02611 02620 XN_C_API XnStatus XN_C_DECL xnCreateScriptNode(XnContext* pContext, const XnChar* strFormat, XnNodeHandle* phScript); 02621 XN_C_API const XnChar* XN_C_DECL xnScriptNodeGetSupportedFormat(XnNodeHandle hScript); 02622 XN_C_API XnStatus XN_C_DECL xnLoadScriptFromFile(XnNodeHandle hScript, const XnChar* strFileName); 02623 XN_C_API XnStatus XN_C_DECL xnLoadScriptFromString(XnNodeHandle hScript, const XnChar* strScript); 02624 XN_C_API XnStatus XN_C_DECL xnScriptNodeRun(XnNodeHandle hScript, XnEnumerationErrors* pErrors); 02625 02628 #endif // __XN_PRD_NODE_H__