#ifndef OPENPOSE_POSE_POSE_GPU_RENDERER_HPP #define OPENPOSE_POSE_POSE_GPU_RENDERER_HPP #include #include #include #include #include #include #include namespace op { class OP_API PoseGpuRenderer : public GpuRenderer, public PoseRenderer { public: PoseGpuRenderer( const PoseModel poseModel, const std::shared_ptr& poseExtractorNet, const float renderThreshold, const bool blendOriginalFrame = true, const float alphaKeypoint = POSE_DEFAULT_ALPHA_KEYPOINT, const float alphaHeatMap = POSE_DEFAULT_ALPHA_HEAT_MAP, const unsigned int elementToRender = 0u); virtual ~PoseGpuRenderer(); void initializationOnThread(); std::pair renderPose(Array& outputData, const Array& poseKeypoints, const float scaleInputToOutput, const float scaleNetToOutput = -1.f); private: const std::shared_ptr spPoseExtractorNet; // Init with thread float* pGpuPose; // GPU aux memory float* pMaxPtr; // GPU aux memory float* pMinPtr; // GPU aux memory float* pScalePtr; // GPU aux memory DELETE_COPY(PoseGpuRenderer); }; } #endif // OPENPOSE_POSE_POSE_GPU_RENDERER_HPP