#pragma once #include "tools++.h" #include "NiTool.h" #include "Vector.h" #include "Rotation.h" #include "NiToolWin.h" #define NI_JOINT_NUM 22 #define NI_JOINT_NAME_NUM 27 #define NI_OPENNI_JOINT_NUM 25 // #define NI_KINECT_JOINT_NUM 20 // NUI_SKELETON_POSITION_COUNT ////////////////////////////////////////////////////////////////////////// // // 共通ジョイント番号 // #define NI_CMN_PELVIS 0 #define NI_CMN_TORSO 1 #define NI_CMN_NECK 2 #define NI_CMN_HEAD 3 #define NI_CMN_L_EAR 4 #define NI_CMN_R_EAR 5 #define NI_CMN_L_SHLDR 6 #define NI_CMN_L_ELBOW 7 #define NI_CMN_L_WRIST 8 #define NI_CMN_L_HAND 9 #define NI_CMN_R_SHLDR 10 #define NI_CMN_R_ELBOW 11 #define NI_CMN_R_WRIST 12 #define NI_CMN_R_HAND 13 #define NI_CMN_L_HIP 14 #define NI_CMN_L_KNEE 15 #define NI_CMN_L_ANKLE 16 #define NI_CMN_L_FOOT 17 #define NI_CMN_R_HIP 18 #define NI_CMN_R_KNEE 19 #define NI_CMN_R_ANKLE 20 #define NI_CMN_R_FOOT 21 ////////////////////////////////////////////////////////////////////////// // // 作業用ジョイント番号 // SDK に依存 // extern int NI_PELVIS; extern int NI_TORSO; extern int NI_NECK; extern int NI_HEAD; extern int NI_L_EAR; extern int NI_R_EAR; extern int NI_L_SHLDR; extern int NI_L_ELBOW; extern int NI_L_WRIST; extern int NI_L_HAND; extern int NI_R_SHLDR; extern int NI_R_ELBOW; extern int NI_R_WRIST; extern int NI_R_HAND; extern int NI_L_HIP; extern int NI_L_KNEE; extern int NI_L_ANKLE; extern int NI_L_FOOT; extern int NI_R_HIP; extern int NI_R_KNEE; extern int NI_R_ANKLE; extern int NI_R_FOOT; namespace jbxwl { using namespace jbxl; // SDK 固有のジョイント番号から共通のジョイント名を得る std::string NiSDK2JointName(int joint, NiSDK_Lib lib); // SDK 固有のジョイント番号からミラージョイントの番号を得る int NiSDK2MirrorJointNum(int joint, NiSDK_Lib lib); // 共通のジョイント名から Library 固有のジョイント番号を得る int JointName2NiSDK(char* jname, NiSDK_Lib lib); // 共通ジョイント番号から,SDK 固有の座標用または回転用ジョイント番号を得る int Ni2SDKPosJointNum(int joint, NiSDK_Lib lib); int Ni2SDKRotJointNum(int joint, NiSDK_Lib lib); // SDK 固有のジョイント番号を設定する void NiSetKinectJointNums(void); void NiSetOpenNIJointNums(void); } // name space