SyB3R - Synthetic Benchmark for 3D Reconstruction
Pointcloud.h
1 #ifndef MVSRECONPOINTCLOUD_H
2 #define MVSRECONPOINTCLOUD_H
3 
4 #include <vector>
5 #include <Eigen/Dense>
6 
7 namespace syb3r {
8 namespace data {
9 
14 {
15  public:
16  struct OffsetCount {
17  unsigned offset = 0;
18  unsigned count = 0;
19  };
20 
21  void reset(unsigned numPoints);
22  void setPoint(unsigned index, const Eigen::Vector3f &position, const Eigen::Vector3f &normal);
23  void setPoint(unsigned index, const Eigen::Vector3f &position, const Eigen::Vector3f &normal, const Eigen::Vector3f &color);
24  void setPointVisibility(unsigned index, const unsigned *imageIndices, unsigned numImageIndices);
25 
26 
28  inline unsigned getCount() const { return m_positions.size(); }
29 
31  inline const Eigen::Vector3f &getPosition(unsigned index) const { return m_positions[index]; }
33  inline const Eigen::Vector3f &getNormal(unsigned index) const { return m_normals[index]; }
35  inline const Eigen::Vector3f &getColor(unsigned index) const { return m_colors[index]; }
36  protected:
37  std::vector<Eigen::Vector3f> m_positions;
38  std::vector<Eigen::Vector3f> m_normals;
39  std::vector<Eigen::Vector3f> m_colors;
40  std::vector<OffsetCount> m_visibilities;
41  std::vector<unsigned> m_visibilityImageIndices;
42 };
43 
44 }
45 }
46 
47 #endif // MVSRECONPOINTCLOUD_H
Definition: CameraPathEvaluation.cpp:10
Definition: Pointcloud.h:16
const Eigen::Vector3f & getNormal(unsigned index) const
Returns the 3D world space estimated surface normal at a point in the point cloud.
Definition: Pointcloud.h:33
Stores a point cloud with position, color, normal and sensor visibility information for each point...
Definition: Pointcloud.h:13
const Eigen::Vector3f & getColor(unsigned index) const
Returns a sRGB [0..1] surface color at a point in the point cloud.
Definition: Pointcloud.h:35
unsigned getCount() const
Returns the number of points in the point cloud.
Definition: Pointcloud.h:28
const Eigen::Vector3f & getPosition(unsigned index) const
Returns the 3D world space position of a point in the point cloud.
Definition: Pointcloud.h:31