JD2022-TU1/main/extern/KinectGesture/Inc/KinectGestureDetector.h

113 lines
3.3 KiB
C++

#pragma once
#ifndef __KINECTGESTUREDETECTOR_H__
#define __KINECTGESTUREDETECTOR_H__
#if defined( GESTURE_TRAINER )
#if defined( TARGET_X360 )
#include <windows.h>
#include <XnaMath.h>
#include <NuiTools.h>
#define VECTOR_TYPE XMVECTOR
#elif defined( TARGET_DURANGO )
#include <DirectXMath.h>
#elif defined( TARGET_ORBIS )
#include "SK_iisu/PS4/include/HumanTrackingCTypes.h"
#include "Kinect/PS4/commontypes.h"
#elif defined ( TARGET_WIN32 )
#include <DirectXMath.h>
#else
#error unsuported platform
#endif
#else // defined( GESTURE_TRAINER )
#if defined( _XBOX ) || defined( ITF_X360 )
#include <xtl.h>
#include <XnaMath.h>
#include <nuiapi.h>
#define VECTOR_TYPE XMVECTOR
#elif defined( DURANGO ) || defined( ITF_DURANGO )
#include <windows.h>
#include <Kinect/Durango/NuiCore.h>
#elif defined( __ORBIS__ ) || defined( ITF_ORBIS )
#include "SK_iisu/PS4/include/HumanTrackingCTypes.h"
#include "Kinect/PS4/commontypes.h"
#elif defined ( WIN32 ) ||defined( ITF_WIN32)
#include <windows.h>
#include <DirectXMath.h>
#include <NuiApi.h>
#define VECTOR_TYPE XMVECTOR
#else
#error unsuported platform
#endif
#endif
#define INVALID_GESTURE_HANDLE ( 0xffffffff )
#define KINECT_GESTURE_VELOCITY_GRID_X (3)
#define KINECT_GESTURE_VELOCITY_GRID_Y (3)
#define KINECT_GESTURE_VELOCITY_GRID_WIDTH ( 2.0f )
#define KINECT_GESTURE_VELOCITY_GRID_HEIGHT ( 2.0f )
#define KINECT_GESTURE_MAX_SIMULTANEOUS_GESTURES ( 10 ) // IDENTITY_MAX_IDENTITIES
namespace KinectGesture
{
typedef unsigned int GestureHandle;
// aligned malloc
typedef void* (*MallocFunction)( unsigned int, unsigned int );
// aligned free
typedef void (*FreeFunction)( void* );
// error reporting
typedef void (*AssertFunction)( bool, const char* );
void SetEndianSwapOnRead( bool endianSwapOnRead );
bool GetEndianSwapOnRead();
struct VelocityGrid
{
float mVelocity[ KINECT_GESTURE_VELOCITY_GRID_X ][ KINECT_GESTURE_VELOCITY_GRID_Y ][ 2 ];
};
#ifdef GESTURE_EVALUATOR
void Initialise(unsigned gestureCount);
#endif
void Initialise( unsigned int gestureCount, MallocFunction mallocFunction, FreeFunction freeFunction, AssertFunction assertFunction );
void Shutdown();
GestureHandle CreateGesture( void* buffer );
void DestroyGesture( GestureHandle gesture );
void SetNormalToGravity( const float* normalToGravity );
void Update( unsigned int playerIndex, const void* pSkeletonData, float fDeltaTimeInSeconds, const VelocityGrid* opticalFlowGrid );
void NewPlayer( unsigned int playerIndex, const void* pSkeletonData );
float DetectGesture( GestureHandle gesture, unsigned int playerIndex );
void GetGestureBoneWeights( GestureHandle gesture, float *weights, unsigned int numWeights );
float GetGestureEnergyMean( GestureHandle gesture );
float GetGestureEnergyStdDev( GestureHandle gesture );
float GetEnergyLevel( unsigned int playerIndex );
}
#endif // #ifndef __KINECTGESTUREDETECTOR_H__