OpenPose  1.7.0
The first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints
bvhSaver.hpp
Go to the documentation of this file.
1 #ifdef USE_3D_ADAM_MODEL
2 #ifndef OPENPOSE_FILESTREAM_BVH_SAVER_HPP
3 #define OPENPOSE_FILESTREAM_BVH_SAVER_HPP
4 
5 #ifdef USE_3D_ADAM_MODEL
6  #include <adam/totalmodel.h>
7 #endif
9 
10 namespace op
11 {
12  class OP_API BvhSaver
13  {
14  public:
15  BvhSaver(const std::string bvhFilePath,
16  const std::shared_ptr<const TotalModel>& totalModel = nullptr,
17  const double fps = 30.);
18 
19  virtual ~BvhSaver();
20 
21  void initializationOnThread();
22 
23  void updateBvh(const Eigen::Matrix<double, 62, 3, Eigen::RowMajor>& adamPose,
24  const Eigen::Vector3d& adamTranslation,
25  const Eigen::Matrix<double, Eigen::Dynamic, 1>& j0Vec);
26 
27 
28  private:
29  // PIMPL idiom
30  // http://www.cppsamples.com/common-tasks/pimpl.html
31  struct ImplBvhSaver;
32  std::shared_ptr<ImplBvhSaver> spImpl;
33 
34  // PIMP requires DELETE_COPY & destructor, or extra code
35  // http://oliora.github.io/2015/12/29/pimpl-and-rule-of-zero.html
36  DELETE_COPY(BvhSaver);
37  };
38 }
39 
40 #endif // OPENPOSE_FILESTREAM_BVH_SAVER_HPP
41 #endif
#define OP_API
Definition: macros.hpp:18
#define DELETE_COPY(className)
Definition: macros.hpp:32