Skip to content

Commit 8d7033e

Browse files
authored
[sample_consensus] Use better types for indices: int -> index_t, std::vector<int> ->Indices (#3835)
* Use index_t and Indices definitions in sample_consensus * Use auto for iterators
1 parent 3baeb82 commit 8d7033e

40 files changed

+214
-214
lines changed

sample_consensus/include/pcl/sample_consensus/impl/lmeds.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ pcl::LeastMedianSquares<PointT>::computeModel (int debug_verbosity_level)
5757
iterations_ = 0;
5858
double d_best_penalty = std::numeric_limits<double>::max();
5959

60-
std::vector<int> selection;
60+
Indices selection;
6161
Eigen::VectorXf model_coefficients;
6262
std::vector<double> distances;
6363

@@ -169,7 +169,7 @@ pcl::LeastMedianSquares<PointT>::computeModel (int debug_verbosity_level)
169169
return (false);
170170
}
171171

172-
std::vector<int> &indices = *sac_model_->getIndices ();
172+
Indices &indices = *sac_model_->getIndices ();
173173

174174
if (distances.size () != indices.size ())
175175
{

sample_consensus/include/pcl/sample_consensus/impl/mlesac.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ pcl::MaximumLikelihoodSampleConsensus<PointT>::computeModel (int debug_verbosity
5959
double d_best_penalty = std::numeric_limits<double>::max();
6060
double k = 1.0;
6161

62-
std::vector<int> selection;
62+
Indices selection;
6363
Eigen::VectorXf model_coefficients;
6464
std::vector<double> distances;
6565

@@ -178,7 +178,7 @@ pcl::MaximumLikelihoodSampleConsensus<PointT>::computeModel (int debug_verbosity
178178

179179
// Iterate through the 3d points and calculate the distances from them to the model again
180180
sac_model_->getDistancesToModel (model_coefficients_, distances);
181-
std::vector<int> &indices = *sac_model_->getIndices ();
181+
Indices &indices = *sac_model_->getIndices ();
182182
if (distances.size () != indices.size ())
183183
{
184184
PCL_ERROR ("[pcl::MaximumLikelihoodSampleConsensus::computeModel] Estimated distances (%lu) differs than the normal of indices (%lu).\n", distances.size (), indices.size ());

sample_consensus/include/pcl/sample_consensus/impl/msac.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ pcl::MEstimatorSampleConsensus<PointT>::computeModel (int debug_verbosity_level)
5858
double d_best_penalty = std::numeric_limits<double>::max();
5959
double k = 1.0;
6060

61-
std::vector<int> selection;
61+
Indices selection;
6262
Eigen::VectorXf model_coefficients;
6363
std::vector<double> distances;
6464

@@ -136,7 +136,7 @@ pcl::MEstimatorSampleConsensus<PointT>::computeModel (int debug_verbosity_level)
136136

137137
// Iterate through the 3d points and calculate the distances from them to the model again
138138
sac_model_->getDistancesToModel (model_coefficients_, distances);
139-
std::vector<int> &indices = *sac_model_->getIndices ();
139+
Indices &indices = *sac_model_->getIndices ();
140140

141141
if (distances.size () != indices.size ())
142142
{

sample_consensus/include/pcl/sample_consensus/impl/prosac.hpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,12 @@ pcl::ProgressiveSampleConsensus<PointT>::computeModel (int debug_verbosity_level
8282
// Initialize the usual RANSAC parameters
8383
iterations_ = 0;
8484

85-
std::vector<int> inliers;
86-
std::vector<int> selection;
85+
Indices inliers;
86+
Indices selection;
8787
Eigen::VectorXf model_coefficients;
8888

8989
// We will increase the pool so the indices_ vector can only contain m elements at first
90-
std::vector<int> index_pool;
90+
Indices index_pool;
9191
index_pool.reserve (N);
9292
for (unsigned int i = 0; i < n; ++i)
9393
index_pool.push_back (sac_model_->indices_->operator[](i));
@@ -164,8 +164,7 @@ pcl::ProgressiveSampleConsensus<PointT>::computeModel (int debug_verbosity_level
164164

165165
// We only need to compute possible better epsilon_n_star for when _n is just about to be removed an inlier
166166
std::size_t I_possible_n_star = I_N;
167-
for (std::vector<int>::const_reverse_iterator last_inlier = inliers.rbegin (),
168-
inliers_end = inliers.rend ();
167+
for (auto last_inlier = inliers.crbegin (), inliers_end = inliers.crend ();
169168
last_inlier != inliers_end;
170169
++last_inlier, --I_possible_n_star)
171170
{

sample_consensus/include/pcl/sample_consensus/impl/ransac.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ pcl::RandomSampleConsensus<PointT>::computeModel (int)
6767
std::size_t n_best_inliers_count = 0;
6868
double k = std::numeric_limits<double>::max();
6969

70-
std::vector<int> selection;
70+
Indices selection;
7171
Eigen::VectorXf model_coefficients;
7272

7373
const double log_probability = std::log (1.0 - probability_);

sample_consensus/include/pcl/sample_consensus/impl/rmsac.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ pcl::RandomizedMEstimatorSampleConsensus<PointT>::computeModel (int debug_verbos
5858
double d_best_penalty = std::numeric_limits<double>::max();
5959
double k = 1.0;
6060

61-
std::vector<int> selection;
61+
Indices selection;
6262
Eigen::VectorXf model_coefficients;
6363
std::vector<double> distances;
64-
std::set<int> indices_subset;
64+
std::set<index_t> indices_subset;
6565

6666
int n_inliers_count = 0;
6767
unsigned skipped_count = 0;
@@ -154,7 +154,7 @@ pcl::RandomizedMEstimatorSampleConsensus<PointT>::computeModel (int debug_verbos
154154

155155
// Iterate through the 3d points and calculate the distances from them to the model again
156156
sac_model_->getDistancesToModel (model_coefficients_, distances);
157-
std::vector<int> &indices = *sac_model_->getIndices ();
157+
Indices &indices = *sac_model_->getIndices ();
158158
if (distances.size () != indices.size ())
159159
{
160160
PCL_ERROR ("[pcl::RandomizedMEstimatorSampleConsensus::computeModel] Estimated distances (%lu) differs than the normal of indices (%lu).\n", distances.size (), indices.size ());

sample_consensus/include/pcl/sample_consensus/impl/rransac.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ pcl::RandomizedRandomSampleConsensus<PointT>::computeModel (int debug_verbosity_
5858
std::size_t n_best_inliers_count = 0;
5959
double k = std::numeric_limits<double>::max();
6060

61-
std::vector<int> selection;
61+
Indices selection;
6262
Eigen::VectorXf model_coefficients;
63-
std::set<int> indices_subset;
63+
std::set<index_t> indices_subset;
6464

6565
const double log_probability = std::log (1.0 - probability_);
6666
const double one_over_indices = 1.0 / static_cast<double> (sac_model_->getIndices ()->size ());

sample_consensus/include/pcl/sample_consensus/impl/sac_model_circle.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848
//////////////////////////////////////////////////////////////////////////
4949
template <typename PointT> bool
50-
pcl::SampleConsensusModelCircle2D<PointT>::isSampleGood(const std::vector<int> &samples) const
50+
pcl::SampleConsensusModelCircle2D<PointT>::isSampleGood(const Indices &samples) const
5151
{
5252
if (samples.size () != sample_size_)
5353
{
@@ -71,7 +71,7 @@ pcl::SampleConsensusModelCircle2D<PointT>::isSampleGood(const std::vector<int> &
7171

7272
//////////////////////////////////////////////////////////////////////////
7373
template <typename PointT> bool
74-
pcl::SampleConsensusModelCircle2D<PointT>::computeModelCoefficients (const std::vector<int> &samples, Eigen::VectorXf &model_coefficients) const
74+
pcl::SampleConsensusModelCircle2D<PointT>::computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const
7575
{
7676
// Need 3 samples
7777
if (samples.size () != sample_size_)
@@ -134,7 +134,7 @@ pcl::SampleConsensusModelCircle2D<PointT>::getDistancesToModel (const Eigen::Vec
134134
template <typename PointT> void
135135
pcl::SampleConsensusModelCircle2D<PointT>::selectWithinDistance (
136136
const Eigen::VectorXf &model_coefficients, const double threshold,
137-
std::vector<int> &inliers)
137+
Indices &inliers)
138138
{
139139
// Check if the model is valid given the user constraints
140140
if (!isModelValid (model_coefficients))
@@ -199,7 +199,7 @@ pcl::SampleConsensusModelCircle2D<PointT>::countWithinDistance (
199199
//////////////////////////////////////////////////////////////////////////
200200
template <typename PointT> void
201201
pcl::SampleConsensusModelCircle2D<PointT>::optimizeModelCoefficients (
202-
const std::vector<int> &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const
202+
const Indices &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const
203203
{
204204
optimized_coefficients = model_coefficients;
205205

@@ -230,7 +230,7 @@ pcl::SampleConsensusModelCircle2D<PointT>::optimizeModelCoefficients (
230230
//////////////////////////////////////////////////////////////////////////
231231
template <typename PointT> void
232232
pcl::SampleConsensusModelCircle2D<PointT>::projectPoints (
233-
const std::vector<int> &inliers, const Eigen::VectorXf &model_coefficients,
233+
const Indices &inliers, const Eigen::VectorXf &model_coefficients,
234234
PointCloud &projected_points, bool copy_data_fields) const
235235
{
236236
// Needs a valid set of model coefficients
@@ -258,7 +258,7 @@ pcl::SampleConsensusModelCircle2D<PointT>::projectPoints (
258258
pcl::for_each_type <FieldList> (NdConcatenateFunctor <PointT, PointT> (input_->points[i], projected_points.points[i]));
259259

260260
// Iterate through the points and project them to the circle
261-
for (const int &inlier : inliers)
261+
for (const auto &inlier : inliers)
262262
{
263263
float dx = input_->points[inlier].x - model_coefficients[0];
264264
float dy = input_->points[inlier].y - model_coefficients[1];
@@ -297,7 +297,7 @@ pcl::SampleConsensusModelCircle2D<PointT>::projectPoints (
297297
//////////////////////////////////////////////////////////////////////////
298298
template <typename PointT> bool
299299
pcl::SampleConsensusModelCircle2D<PointT>::doSamplesVerifyModel (
300-
const std::set<int> &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const
300+
const std::set<index_t> &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const
301301
{
302302
// Needs a valid model coefficients
303303
if (!isModelValid (model_coefficients))
@@ -306,7 +306,7 @@ pcl::SampleConsensusModelCircle2D<PointT>::doSamplesVerifyModel (
306306
return (false);
307307
}
308308

309-
for (const int &index : indices)
309+
for (const auto &index : indices)
310310
// Calculate the distance from the point to the circle as the difference between
311311
//dist(point,circle_origin) and circle_radius
312312
if (std::abs (std::sqrt (

sample_consensus/include/pcl/sample_consensus/impl/sac_model_circle3d.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
//////////////////////////////////////////////////////////////////////////
4747
template <typename PointT> bool
4848
pcl::SampleConsensusModelCircle3D<PointT>::isSampleGood (
49-
const std::vector<int> &samples) const
49+
const Indices &samples) const
5050
{
5151
if (samples.size () != sample_size_)
5252
{
@@ -67,7 +67,7 @@ pcl::SampleConsensusModelCircle3D<PointT>::isSampleGood (
6767

6868
//////////////////////////////////////////////////////////////////////////
6969
template <typename PointT> bool
70-
pcl::SampleConsensusModelCircle3D<PointT>::computeModelCoefficients (const std::vector<int> &samples, Eigen::VectorXf &model_coefficients) const
70+
pcl::SampleConsensusModelCircle3D<PointT>::computeModelCoefficients (const Indices &samples, Eigen::VectorXf &model_coefficients) const
7171
{
7272
// Need 3 samples
7373
if (samples.size () != sample_size_)
@@ -166,7 +166,7 @@ pcl::SampleConsensusModelCircle3D<PointT>::getDistancesToModel (const Eigen::Vec
166166
template <typename PointT> void
167167
pcl::SampleConsensusModelCircle3D<PointT>::selectWithinDistance (
168168
const Eigen::VectorXf &model_coefficients, const double threshold,
169-
std::vector<int> &inliers)
169+
Indices &inliers)
170170
{
171171
// Check if the model is valid given the user constraints
172172
if (!isModelValid (model_coefficients))
@@ -253,7 +253,7 @@ pcl::SampleConsensusModelCircle3D<PointT>::countWithinDistance (
253253
//////////////////////////////////////////////////////////////////////////
254254
template <typename PointT> void
255255
pcl::SampleConsensusModelCircle3D<PointT>::optimizeModelCoefficients (
256-
const std::vector<int> &inliers,
256+
const Indices &inliers,
257257
const Eigen::VectorXf &model_coefficients,
258258
Eigen::VectorXf &optimized_coefficients) const
259259
{
@@ -289,7 +289,7 @@ pcl::SampleConsensusModelCircle3D<PointT>::optimizeModelCoefficients (
289289
//////////////////////////////////////////////////////////////////////////
290290
template <typename PointT> void
291291
pcl::SampleConsensusModelCircle3D<PointT>::projectPoints (
292-
const std::vector<int> &inliers, const Eigen::VectorXf &model_coefficients,
292+
const Indices &inliers, const Eigen::VectorXf &model_coefficients,
293293
PointCloud &projected_points, bool copy_data_fields) const
294294
{
295295
// Needs a valid set of model coefficients
@@ -391,7 +391,7 @@ pcl::SampleConsensusModelCircle3D<PointT>::projectPoints (
391391
//////////////////////////////////////////////////////////////////////////
392392
template <typename PointT> bool
393393
pcl::SampleConsensusModelCircle3D<PointT>::doSamplesVerifyModel (
394-
const std::set<int> &indices,
394+
const std::set<index_t> &indices,
395395
const Eigen::VectorXf &model_coefficients,
396396
const double threshold) const
397397
{
@@ -402,7 +402,7 @@ pcl::SampleConsensusModelCircle3D<PointT>::doSamplesVerifyModel (
402402
return (false);
403403
}
404404

405-
for (const int &index : indices)
405+
for (const auto &index : indices)
406406
{
407407
// Calculate the distance from the point to the sphere as the difference between
408408
//dist(point,sphere_origin) and sphere_radius

sample_consensus/include/pcl/sample_consensus/impl/sac_model_cone.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4747
template <typename PointT, typename PointNT> bool
48-
pcl::SampleConsensusModelCone<PointT, PointNT>::isSampleGood(const std::vector<int> &samples) const
48+
pcl::SampleConsensusModelCone<PointT, PointNT>::isSampleGood(const Indices &samples) const
4949
{
5050
if (samples.size () != sample_size_)
5151
{
@@ -58,7 +58,7 @@ pcl::SampleConsensusModelCone<PointT, PointNT>::isSampleGood(const std::vector<i
5858
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5959
template <typename PointT, typename PointNT> bool
6060
pcl::SampleConsensusModelCone<PointT, PointNT>::computeModelCoefficients (
61-
const std::vector<int> &samples, Eigen::VectorXf &model_coefficients) const
61+
const Indices &samples, Eigen::VectorXf &model_coefficients) const
6262
{
6363
// Need 3 samples
6464
if (samples.size () != sample_size_)
@@ -192,7 +192,7 @@ pcl::SampleConsensusModelCone<PointT, PointNT>::getDistancesToModel (
192192
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
193193
template <typename PointT, typename PointNT> void
194194
pcl::SampleConsensusModelCone<PointT, PointNT>::selectWithinDistance (
195-
const Eigen::VectorXf &model_coefficients, const double threshold, std::vector<int> &inliers)
195+
const Eigen::VectorXf &model_coefficients, const double threshold, Indices &inliers)
196196
{
197197
// Check if the model is valid given the user constraints
198198
if (!isModelValid (model_coefficients))
@@ -310,7 +310,7 @@ pcl::SampleConsensusModelCone<PointT, PointNT>::countWithinDistance (
310310
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
311311
template <typename PointT, typename PointNT> void
312312
pcl::SampleConsensusModelCone<PointT, PointNT>::optimizeModelCoefficients (
313-
const std::vector<int> &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const
313+
const Indices &inliers, const Eigen::VectorXf &model_coefficients, Eigen::VectorXf &optimized_coefficients) const
314314
{
315315
optimized_coefficients = model_coefficients;
316316

@@ -348,7 +348,7 @@ pcl::SampleConsensusModelCone<PointT, PointNT>::optimizeModelCoefficients (
348348
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
349349
template <typename PointT, typename PointNT> void
350350
pcl::SampleConsensusModelCone<PointT, PointNT>::projectPoints (
351-
const std::vector<int> &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields) const
351+
const Indices &inliers, const Eigen::VectorXf &model_coefficients, PointCloud &projected_points, bool copy_data_fields) const
352352
{
353353
// Needs a valid set of model coefficients
354354
if (!isModelValid (model_coefficients))
@@ -382,7 +382,7 @@ pcl::SampleConsensusModelCone<PointT, PointNT>::projectPoints (
382382
pcl::for_each_type <FieldList> (NdConcatenateFunctor <PointT, PointT> (input_->points[i], projected_points.points[i]));
383383

384384
// Iterate through the 3d points and calculate the distances from them to the cone
385-
for (const int &inlier : inliers)
385+
for (const auto &inlier : inliers)
386386
{
387387
Eigen::Vector4f pt (input_->points[inlier].x,
388388
input_->points[inlier].y,
@@ -444,7 +444,7 @@ pcl::SampleConsensusModelCone<PointT, PointNT>::projectPoints (
444444
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
445445
template <typename PointT, typename PointNT> bool
446446
pcl::SampleConsensusModelCone<PointT, PointNT>::doSamplesVerifyModel (
447-
const std::set<int> &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const
447+
const std::set<index_t> &indices, const Eigen::VectorXf &model_coefficients, const double threshold) const
448448
{
449449
// Needs a valid model coefficients
450450
if (!isModelValid (model_coefficients))
@@ -461,7 +461,7 @@ pcl::SampleConsensusModelCone<PointT, PointNT>::doSamplesVerifyModel (
461461
float dirdotdir = 1.0f / axis_dir.dot (axis_dir);
462462

463463
// Iterate through the 3d points and calculate the distances from them to the cone
464-
for (const int &index : indices)
464+
for (const auto &index : indices)
465465
{
466466
Eigen::Vector4f pt (input_->points[index].x, input_->points[index].y, input_->points[index].z, 0.0f);
467467

0 commit comments

Comments
 (0)