42#include <pcl/common/generate.h>
43#include <pcl/console/print.h>
52template <
typename Po
intT,
typename GeneratorT>
60template <
typename Po
intT,
typename GeneratorT>
63 setParameters (params);
67template <
typename Po
intT,
typename GeneratorT>
77template <
typename Po
intT,
typename GeneratorT>
void
84 x_generator_.setParameters (params);
85 y_generator_.setParameters (
y_params);
86 z_generator_.setParameters (
z_params);
90template <
typename Po
intT,
typename GeneratorT>
void
93 x_generator_.setParameters (
x_params);
97template <
typename Po
intT,
typename GeneratorT>
void
100 y_generator_.setParameters (
y_params);
104template <
typename Po
intT,
typename GeneratorT>
void
107 z_generator_.setParameters (
z_params);
114 x_generator_.getParameters ();
121 y_generator_.getParameters ();
128 z_generator_.getParameters ();
132template <
typename Po
intT,
typename GeneratorT>
PointT
136 p.x = x_generator_.run ();
137 p.y = y_generator_.run ();
138 p.z = z_generator_.run ();
143template <
typename Po
intT,
typename GeneratorT>
int
146 return (fill (cloud.width, cloud.height, cloud));
150template <
typename Po
intT,
typename GeneratorT>
int
155 PCL_ERROR (
"[pcl::common::CloudGenerator] Cloud width must be >= 1!\n");
161 PCL_ERROR (
"[pcl::common::CloudGenerator] Cloud height must be >= 1!\n");
167 PCL_WARN (
"[pcl::common::CloudGenerator] Cloud data will be erased with new data!\n");
171 cloud.height = height;
172 cloud.resize (cloud.width * cloud.height);
173 cloud.is_dense =
true;
174 for (
auto& point: cloud)
176 point.x = x_generator_.run ();
177 point.y = y_generator_.run ();
178 point.z = z_generator_.run ();
184template <
typename GeneratorT>
191template <
typename GeneratorT>
199template <
typename GeneratorT>
202 setParameters (params);
206template <
typename GeneratorT>
void
209 x_generator_.setParameters (params);
212 y_generator_.setParameters (
y_params);
216template <
typename GeneratorT>
void
219 x_generator_.setParameters (
x_params);
223template <
typename GeneratorT>
void
226 y_generator_.setParameters (
y_params);
233 x_generator_.getParameters ();
240 y_generator_.getParameters ();
248 p.
x = x_generator_.run ();
249 p.
y = y_generator_.run ();
254template <
typename GeneratorT>
int
257 return (fill (cloud.width, cloud.height, cloud));
261template <
typename GeneratorT>
int
266 PCL_ERROR (
"[pcl::common::CloudGenerator] Cloud width must be >= 1\n!");
272 PCL_ERROR (
"[pcl::common::CloudGenerator] Cloud height must be >= 1\n!");
277 PCL_WARN (
"[pcl::common::CloudGenerator] Cloud data will be erased with new data\n!");
280 cloud.height = height;
281 cloud.resize (cloud.width * cloud.height);
282 cloud.is_dense =
true;
284 for (
auto &point : cloud)
286 point.x = x_generator_.run ();
287 point.y = y_generator_.run ();
Iterator class for point clouds with or without given indices.
typename GeneratorT::Parameters GeneratorParameters
int fill(pcl::PointCloud< PointT > &cloud)
Generates a cloud with X Y Z picked within given ranges.
const GeneratorParameters & getParametersForX() const
void setParametersForY(const GeneratorParameters &y_params)
Set parameters for y values generation.
const GeneratorParameters & getParametersForY() const
void setParametersForZ(const GeneratorParameters &z_params)
Set parameters for z values generation.
void setParameters(const GeneratorParameters ¶ms)
Set parameters for x, y and z values.
typename GeneratorT::Parameters GeneratorParameters
void setParametersForX(const GeneratorParameters &x_params)
Set parameters for x values generation.
const GeneratorParameters & getParametersForZ() const
CloudGenerator()
Default constructor.
A 2D point structure representing Euclidean xy coordinates.
A point structure representing Euclidean xyz coordinates, and the RGB color.