#ifndef __APP__ #define __APP__ #include #include #include #include #include #include #include using namespace Microsoft::WRL; #include class Kinect { private: // Sensor ComPtr kinect; // Coordinate Mapper ComPtr coordinateMapper; // Reader ComPtr colorFrameReader; ComPtr bodyFrameReader; ComPtr hdFaceFrameReader; // Color Buffer std::vector colorBuffer; int colorWidth; int colorHeight; unsigned int colorBytesPerPixel; cv::Mat colorMat; // HDFace Buffer ComPtr faceModelBuilder; ComPtr faceAlignment; ComPtr faceModel; std::array faceShapeUnits = { 0.0f }; UINT32 vertexCount; UINT64 trackingId; int trackingCount = 0; bool produced = false; std::array colors; public: // Constructor Kinect(); // Destructor ~Kinect(); // Processing void run(); private: // Initialize void initialize(); // Initialize Sensor inline void initializeSensor(); // Initialize Color inline void initializeColor(); // Initialize Body inline void initializeBody(); // Initialize HDFace inline void initializeHDFace(); // Finalize void finalize(); // Update Data void update(); // Update Color inline void updateColor(); // Update Body inline void updateBody(); // Find Closest Body inline void findClosestBody( const std::array, BODY_COUNT>& bodies ); // Update HDFace inline void updateHDFace(); // Draw Data void draw(); // Draw Color inline void drawColor(); // Draw HDFace inline void drawHDFace(); // Draw Face Model Builder Status inline void drawFaceModelBuilderStatus( cv::Mat& image, const cv::Point& point, const double scale, const cv::Vec3b& color, const int thickness = 2 ); // Convert Collection Status to String inline std::string status2string( const FaceModelBuilderCollectionStatus collection ); // Convert Capture Status to String inline std::string status2string( const FaceModelBuilderCaptureStatus capture ); // Draw Vertexes inline void Kinect::drawVertexes( cv::Mat& image, const std::vector vertexes, const int radius, const cv::Vec3b& color, const int thickness = -1 ); // Show Data void show(); // Show HDFace inline void showHDFace(); }; #endif // __APP__