PointCloudData.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <unordered_map>
4 #include <vector>
5 
8 #include "depthai/build/config.hpp"
10 
11 // optional
12 #ifdef DEPTHAI_HAVE_PCL_SUPPORT
13  #include <pcl/point_types.h>
14  #include <pcl/visualization/cloud_viewer.h>
15 #endif
16 
17 namespace dai {
18 
22 class PointCloudData : public Buffer {
23  std::shared_ptr<RawBuffer> serialize() const override;
25  std::vector<Point3f> points;
26 
27  public:
31 
36  explicit PointCloudData(std::shared_ptr<RawPointCloudData> ptr);
37  virtual ~PointCloudData() = default;
38 
39  std::vector<Point3f>& getPoints();
40 
44  unsigned int getInstanceNum() const;
45 
49  unsigned int getWidth() const;
50 
54  unsigned int getHeight() const;
55 
59  float getMinX() const;
60 
64  float getMinY() const;
65 
69  float getMinZ() const;
70 
74  float getMaxX() const;
75 
79  float getMaxY() const;
80 
84  float getMaxZ() const;
85 
89  bool isSparse() const;
90 
91  // setters
95  PointCloudData& setTimestamp(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> timestamp);
96 
100  PointCloudData& setTimestampDevice(std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> timestamp);
101 
107  PointCloudData& setInstanceNum(unsigned int instance);
108 
114  PointCloudData& setSequenceNum(int64_t seq);
115 
121  PointCloudData& setWidth(unsigned int width);
122 
128  PointCloudData& setHeight(unsigned int height);
129 
136  PointCloudData& setSize(unsigned int width, unsigned int height);
137 
143  PointCloudData& setSize(std::tuple<unsigned int, unsigned int> size);
144 
150  PointCloudData& setMinX(float val);
151 
157  PointCloudData& setMinY(float val);
158 
164  PointCloudData& setMinZ(float val);
165 
171  PointCloudData& setMaxX(float val);
172 
178  PointCloudData& setMaxY(float val);
179 
185  PointCloudData& setMaxZ(float val);
186 
187 #ifdef DEPTHAI_HAVE_PCL_SUPPORT
188 
191  pcl::PointCloud<pcl::PointXYZ>::Ptr getPclData() const;
192 
193 #else
194  template <typename... T>
196  static constexpr bool value = false;
197  };
198  template <typename... T>
199  void getPclData() const {
200  static_assert(dependent_false<T...>::value, "Library not configured with PCL support");
201  }
202 #endif
203 };
204 
205 } // namespace dai
dai::PointCloudData::setMaxY
PointCloudData & setMaxY(float val)
Definition: pipeline/datatype/PointCloudData.cpp:107
dai::PointCloudData::setSize
PointCloudData & setSize(unsigned int width, unsigned int height)
Definition: pipeline/datatype/PointCloudData.cpp:82
dai::PointCloudData::getMinX
float getMinX() const
Definition: pipeline/datatype/PointCloudData.cpp:36
dai::PointCloudData::PointCloudData
PointCloudData()
Definition: pipeline/datatype/PointCloudData.cpp:11
dai::Buffer::getTimestamp
std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > getTimestamp() const
Definition: Buffer.cpp:26
dai::PointCloudData::getHeight
unsigned int getHeight() const
Definition: pipeline/datatype/PointCloudData.cpp:33
RawPointCloudData.hpp
dai::PointCloudData::setSequenceNum
PointCloudData & setSequenceNum(int64_t seq)
Definition: pipeline/datatype/PointCloudData.cpp:71
dai::Buffer::getTimestampDevice
std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > getTimestampDevice() const
Definition: Buffer.cpp:30
dai::PointCloudData::getMaxX
float getMaxX() const
Definition: pipeline/datatype/PointCloudData.cpp:45
dai::PointCloudData::pcl
RawPointCloudData & pcl
Definition: PointCloudData.hpp:24
dai::PointCloudData::getWidth
unsigned int getWidth() const
Definition: pipeline/datatype/PointCloudData.cpp:30
dai::PointCloudData::getMaxZ
float getMaxZ() const
Definition: pipeline/datatype/PointCloudData.cpp:51
dai::RawPointCloudData
Definition: RawPointCloudData.hpp:10
DAI_SPAN_NAMESPACE_NAME::detail::size
constexpr auto size(const C &c) -> decltype(c.size())
Definition: span.hpp:167
dai::PointCloudData::isSparse
bool isSparse() const
Definition: pipeline/datatype/PointCloudData.cpp:54
dai::PointCloudData::getMaxY
float getMaxY() const
Definition: pipeline/datatype/PointCloudData.cpp:48
dai::Buffer::getSequenceNum
int64_t getSequenceNum() const
Definition: Buffer.cpp:34
dai::PointCloudData::setInstanceNum
PointCloudData & setInstanceNum(unsigned int instance)
Definition: pipeline/datatype/PointCloudData.cpp:67
dai::PointCloudData
Definition: PointCloudData.hpp:22
dai::PointCloudData::setMinY
PointCloudData & setMinY(float val)
Definition: pipeline/datatype/PointCloudData.cpp:95
dai::PointCloudData::setTimestampDevice
PointCloudData & setTimestampDevice(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: pipeline/datatype/PointCloudData.cpp:63
dai::PointCloudData::getMinY
float getMinY() const
Definition: pipeline/datatype/PointCloudData.cpp:39
dai::PointCloudData::getPclData
void getPclData() const
Definition: PointCloudData.hpp:199
dai::PointCloudData::setMaxX
PointCloudData & setMaxX(float val)
Definition: pipeline/datatype/PointCloudData.cpp:103
dai::PointCloudData::setWidth
PointCloudData & setWidth(unsigned int width)
Definition: pipeline/datatype/PointCloudData.cpp:74
dai::PointCloudData::dependent_false
Definition: PointCloudData.hpp:195
dai::PointCloudData::~PointCloudData
virtual ~PointCloudData()=default
dai::Buffer
Base message - buffer of binary data.
Definition: Buffer.hpp:13
dai::PointCloudData::setMaxZ
PointCloudData & setMaxZ(float val)
Definition: pipeline/datatype/PointCloudData.cpp:111
dai::PointCloudData::dependent_false::value
static constexpr bool value
Definition: PointCloudData.hpp:196
dai::PointCloudData::setHeight
PointCloudData & setHeight(unsigned int height)
Definition: pipeline/datatype/PointCloudData.cpp:78
dai::PointCloudData::setMinZ
PointCloudData & setMinZ(float val)
Definition: pipeline/datatype/PointCloudData.cpp:99
dai::PointCloudData::setMinX
PointCloudData & setMinX(float val)
Definition: pipeline/datatype/PointCloudData.cpp:91
dai::PointCloudData::setTimestamp
PointCloudData & setTimestamp(std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > timestamp)
Definition: pipeline/datatype/PointCloudData.cpp:59
dai::PointCloudData::points
std::vector< Point3f > points
Definition: PointCloudData.hpp:25
dai::PointCloudData::getInstanceNum
unsigned int getInstanceNum() const
Definition: pipeline/datatype/PointCloudData.cpp:27
dai::PointCloudData::getMinZ
float getMinZ() const
Definition: pipeline/datatype/PointCloudData.cpp:42
dai::PointCloudData::getPoints
std::vector< Point3f > & getPoints()
Definition: pipeline/datatype/PointCloudData.cpp:17
dai::PointCloudData::serialize
std::shared_ptr< RawBuffer > serialize() const override
Definition: pipeline/datatype/PointCloudData.cpp:7
Buffer.hpp
dai
Definition: CameraExposureOffset.hpp:6
Point3f.hpp


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:19