42#include <pcl/common/spring.h>
51template <
typename Po
intT>
void
57 "[pcl::common::expandColumns] error: amount must be ]0.."
58 << (
input.width/2) <<
"] !");
62 "[pcl::common::expandColumns] error: "
63 <<
"columns expansion requires organised point cloud");
71 for (
int j = 0; j <
output.height; ++j)
83template <
typename Po
intT>
void
89 "[pcl::common::expandRows] error: amount must be ]0.."
90 << (
input.height/2) <<
"] !");
104template <
typename Po
intT>
void
106 const std::size_t&
amount)
110 "[pcl::common::duplicateColumns] error: amount must be ]0.."
111 << (
input.width/2) <<
"] !");
115 "[pcl::common::duplicateColumns] error: "
116 <<
"columns expansion requires organised point cloud");
125 for(std::size_t i = 0; i <
amount; ++i)
128 output.insert (start, *start);
130 output.insert (start, *start);
137template <
typename Po
intT>
void
139 const std::size_t&
amount)
143 "[pcl::common::duplicateRows] error: amount must be ]0.."
144 << (
input.height/2) <<
"] !");
152 for(std::size_t i = 0; i <
amount; ++i)
162template <
typename Po
intT>
void
164 const std::size_t&
amount)
168 "[pcl::common::mirrorColumns] error: amount must be ]0.."
169 << (
input.width/2) <<
"] !");
173 "[pcl::common::mirrorColumns] error: "
174 <<
"columns expansion requires organised point cloud");
183 for(std::size_t i = 0; i <
amount; ++i)
186 output.insert (start, *(start + 2*i));
188 output.insert (start+1, *(start - 2*i));
194template <
typename Po
intT>
void
196 const std::size_t&
amount)
200 "[pcl::common::mirrorRows] error: amount must be ]0.."
201 << (
input.height/2) <<
"] !");
209 for(std::size_t i = 0; i <
amount; i++)
221template <
typename Po
intT>
void
223 const std::size_t&
amount)
227 "[pcl::common::deleteRows] error: amount must be ]0.."
228 << (
input.height/2) <<
"] !");
238template <
typename Po
intT>
void
240 const std::size_t&
amount)
244 "[pcl::common::deleteCols] error: amount must be in ]0.."
245 << (
input.width/2) <<
"] !");
247 if (!
input.isOrganized ())
249 "[pcl::common::deleteCols] error: "
250 <<
"columns delete requires organised point cloud");
Iterator class for point clouds with or without given indices.
An exception thrown when init can not be performed should be used in all the PCLBase class inheritant...
typename VectorType::iterator iterator
void expandRows(const PointCloud< PointT > &input, PointCloud< PointT > &output, const PointT &val, const std::size_t &amount)
expand point cloud inserting amount rows at the top and the bottom of a point cloud and filling them ...
void duplicateRows(const PointCloud< PointT > &input, PointCloud< PointT > &output, const std::size_t &amount)
expand point cloud duplicating the amount top and bottom rows times.
void deleteRows(const PointCloud< PointT > &input, PointCloud< PointT > &output, const std::size_t &amount)
delete amount rows in top and bottom of point cloud
void expandColumns(const PointCloud< PointT > &input, PointCloud< PointT > &output, const PointT &val, const std::size_t &amount)
expand point cloud inserting amount columns at the right and the left of a point cloud and filling th...
void mirrorRows(const PointCloud< PointT > &input, PointCloud< PointT > &output, const std::size_t &amount)
expand point cloud mirroring amount top and bottom rows.
void duplicateColumns(const PointCloud< PointT > &input, PointCloud< PointT > &output, const std::size_t &amount)
expand point cloud duplicating the amount right and left columns times.
void mirrorColumns(const PointCloud< PointT > &input, PointCloud< PointT > &output, const std::size_t &amount)
expand point cloud mirroring amount right and left columns.
void deleteCols(const PointCloud< PointT > &input, PointCloud< PointT > &output, const std::size_t &amount)
delete amount columns in top and bottom of point cloud
A point structure representing Euclidean xyz coordinates, and the RGB color.