Skip to content

Commit b390826

Browse files
authored
Review casts in PCL, Part B (#5508)
* Initial application of google-readability-casting * Addressed google-readability-casting escapes * Addressed clang-format violations flagged by CI * More clang-format escapes * Addressed clang-tidy escapes * Fixed compile issue not seen on desktop * Addressed review comments * Fixed clang-tidy complaint * Clarified PCLPointCloud2::concatenate logic * Addressed latest review comments * Addressed latest review comments * Eliminated double casts per review
1 parent 2888c5f commit b390826

File tree

161 files changed

+1031
-1022
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+1031
-1022
lines changed

.clang-tidy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
Checks: '-*,modernize-use-auto,modernize-deprecated-headers,modernize-redundant-void-arg,modernize-replace-random-shuffle,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nullptr,modernize-use-override,modernize-use-using,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-type-promotion-in-math-fn,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-static-cast-downcast'
3-
WarningsAsErrors: '-*,modernize-use-auto,modernize-deprecated-headers,modernize-redundant-void-arg,modernize-replace-random-shuffle,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nullptr,modernize-use-override,modernize-use-using,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-type-promotion-in-math-fn,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-static-cast-downcast'
2+
Checks: '-*,modernize-use-auto,modernize-deprecated-headers,modernize-redundant-void-arg,modernize-replace-random-shuffle,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nullptr,modernize-use-override,modernize-use-using,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-type-promotion-in-math-fn,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-static-cast-downcast,google-readability-casting'
3+
WarningsAsErrors: '-*,modernize-use-auto,modernize-deprecated-headers,modernize-redundant-void-arg,modernize-replace-random-shuffle,modernize-use-equals-default,modernize-use-equals-delete,modernize-use-nullptr,modernize-use-override,modernize-use-using,performance-faster-string-find,performance-for-range-copy,performance-implicit-conversion-in-loop,performance-inefficient-algorithm,performance-inefficient-vector-operation,performance-move-const-arg,performance-move-constructor-init,performance-no-automatic-move,performance-noexcept-move-constructor,performance-type-promotion-in-math-fn,cppcoreguidelines-pro-type-cstyle-cast,cppcoreguidelines-pro-type-static-cast-downcast,google-readability-casting'
44
CheckOptions:
55
- {key: modernize-use-auto.MinTypeNameLength, value: 7}

2d/include/pcl/2d/impl/edge.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ Edge<PointInT, PointOutT>::suppressNonMaxima(
277277

278278
// maxima (j, i).intensity = 0;
279279

280-
switch (int(ptedge.direction)) {
280+
switch (static_cast<int>(ptedge.direction)) {
281281
case 0: {
282282
if (ptedge.magnitude >= edges(j - 1, i).magnitude &&
283283
ptedge.magnitude >= edges(j + 1, i).magnitude)

2d/include/pcl/2d/impl/kernel.hpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ kernel<PointT>::gaussianKernel(pcl::PointCloud<PointT>& kernel)
106106
for (int j = 0; j < kernel_size_; j++) {
107107
int iks = (i - kernel_size_ / 2);
108108
int jks = (j - kernel_size_ / 2);
109-
kernel(j, i).intensity =
110-
std::exp(float(-double(iks * iks + jks * jks) / sigma_sqr));
111-
sum += float(kernel(j, i).intensity);
109+
kernel(j, i).intensity = std::exp(
110+
static_cast<float>(-static_cast<double>(iks * iks + jks * jks) / sigma_sqr));
111+
sum += (kernel(j, i).intensity);
112112
}
113113
}
114114

@@ -132,7 +132,8 @@ kernel<PointT>::loGKernel(pcl::PointCloud<PointT>& kernel)
132132
for (int j = 0; j < kernel_size_; j++) {
133133
int iks = (i - kernel_size_ / 2);
134134
int jks = (j - kernel_size_ / 2);
135-
float temp = float(double(iks * iks + jks * jks) / sigma_sqr);
135+
float temp =
136+
static_cast<float>(static_cast<double>(iks * iks + jks * jks) / sigma_sqr);
136137
kernel(j, i).intensity = (1.0f - temp) * std::exp(-temp);
137138
sum += kernel(j, i).intensity;
138139
}

common/include/pcl/common/impl/bivariate_polynomial.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -208,19 +208,19 @@ BivariatePolynomialT<real>::findCriticalPoints (std::vector<real>& x_values, std
208208

209209
if (degree == 2)
210210
{
211-
real x = (real(2)*parameters[2]*parameters[3] - parameters[1]*parameters[4]) /
212-
(parameters[1]*parameters[1] - real(4)*parameters[0]*parameters[3]),
213-
y = (real(-2)*parameters[0]*x - parameters[2]) / parameters[1];
211+
real x = (static_cast<real>(2)*parameters[2]*parameters[3] - parameters[1]*parameters[4]) /
212+
(parameters[1]*parameters[1] - static_cast<real>(4)*parameters[0]*parameters[3]),
213+
y = (static_cast<real>(-2)*parameters[0]*x - parameters[2]) / parameters[1];
214214

215215
if (!std::isfinite(x) || !std::isfinite(y))
216216
return;
217217

218218
int type = 2;
219-
real det_H = real(4)*parameters[0]*parameters[3] - parameters[1]*parameters[1];
219+
real det_H = static_cast<real>(4)*parameters[0]*parameters[3] - parameters[1]*parameters[1];
220220
//std::cout << "det(H) = "<<det_H<<"\n";
221-
if (det_H > real(0)) // Check Hessian determinant
221+
if (det_H > static_cast<real>(0)) // Check Hessian determinant
222222
{
223-
if (parameters[0]+parameters[3] < real(0)) // Check Hessian trace
223+
if (parameters[0]+parameters[3] < static_cast<real>(0)) // Check Hessian trace
224224
type = 0;
225225
else
226226
type = 1;

common/include/pcl/common/impl/common.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ pcl::getPointsInBox (const pcl::PointCloud<PointT> &cloud,
168168
continue;
169169
if (cloud[i].x > max_pt[0] || cloud[i].y > max_pt[1] || cloud[i].z > max_pt[2])
170170
continue;
171-
indices[l++] = int (i);
171+
indices[l++] = static_cast<int>(i);
172172
}
173173
}
174174
// NaN or Inf values could exist => check for them
@@ -186,7 +186,7 @@ pcl::getPointsInBox (const pcl::PointCloud<PointT> &cloud,
186186
continue;
187187
if (cloud[i].x > max_pt[0] || cloud[i].y > max_pt[1] || cloud[i].z > max_pt[2])
188188
continue;
189-
indices[l++] = int (i);
189+
indices[l++] = static_cast<int>(i);
190190
}
191191
}
192192
indices.resize (l);
@@ -210,7 +210,7 @@ pcl::getMaxDistance (const pcl::PointCloud<PointT> &cloud, const Eigen::Vector4f
210210
dist = (pivot_pt3 - pt).norm ();
211211
if (dist > max_dist)
212212
{
213-
max_idx = int (i);
213+
max_idx = static_cast<int>(i);
214214
max_dist = dist;
215215
}
216216
}
@@ -227,7 +227,7 @@ pcl::getMaxDistance (const pcl::PointCloud<PointT> &cloud, const Eigen::Vector4f
227227
dist = (pivot_pt3 - pt).norm ();
228228
if (dist > max_dist)
229229
{
230-
max_idx = int (i);
230+
max_idx = static_cast<int>(i);
231231
max_dist = dist;
232232
}
233233
}

common/include/pcl/common/impl/pca.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ PCA<PointT>::initCompute ()
7171
demeanPointCloud (*input_, *indices_, mean_, cloud_demean);
7272
assert (cloud_demean.cols () == int (indices_->size ()));
7373
// Compute the product cloud_demean * cloud_demean^T
74-
const Eigen::Matrix3f alpha = (1.f / (float (indices_->size ()) - 1.f))
74+
const Eigen::Matrix3f alpha = (1.f / (static_cast<float>(indices_->size ()) - 1.f))
7575
* cloud_demean.topRows<3> () * cloud_demean.topRows<3> ().transpose ();
7676

7777
// Compute eigen vectors and values
@@ -102,7 +102,7 @@ PCA<PointT>::update (const PointT& input_point, FLAG flag)
102102

103103
Eigen::Vector3f input (input_point.x, input_point.y, input_point.z);
104104
const std::size_t n = eigenvectors_.cols ();// number of eigen vectors
105-
Eigen::VectorXf meanp = (float(n) * (mean_.head<3>() + input)) / float(n + 1);
105+
Eigen::VectorXf meanp = (static_cast<float>(n) * (mean_.head<3>() + input)) / static_cast<float>(n + 1);
106106
Eigen::VectorXf a = eigenvectors_.transpose() * (input - mean_.head<3>());
107107
Eigen::VectorXf y = (eigenvectors_ * a) + mean_.head<3>();
108108
Eigen::VectorXf h = y - input;
@@ -113,12 +113,12 @@ PCA<PointT>::update (const PointT& input_point, FLAG flag)
113113
float gamma = h.dot(input - mean_.head<3>());
114114
Eigen::MatrixXf D = Eigen::MatrixXf::Zero (a.size() + 1, a.size() + 1);
115115
D.block(0,0,n,n) = a * a.transpose();
116-
D /= float(n)/float((n+1) * (n+1));
116+
D /= static_cast<float>(n)/static_cast<float>((n+1) * (n+1));
117117
for(std::size_t i=0; i < a.size(); i++) {
118-
D(i,i)+= float(n)/float(n+1)*eigenvalues_(i);
119-
D(D.rows()-1,i) = float(n) / float((n+1) * (n+1)) * gamma * a(i);
118+
D(i,i)+= static_cast<float>(n)/static_cast<float>(n+1)*eigenvalues_(i);
119+
D(D.rows()-1,i) = static_cast<float>(n) / static_cast<float>((n+1) * (n+1)) * gamma * a(i);
120120
D(i,D.cols()-1) = D(D.rows()-1,i);
121-
D(D.rows()-1,D.cols()-1) = float(n)/float((n+1) * (n+1)) * gamma * gamma;
121+
D(D.rows()-1,D.cols()-1) = static_cast<float>(n)/static_cast<float>((n+1) * (n+1)) * gamma * gamma;
122122
}
123123

124124
Eigen::MatrixXf R(D.rows(), D.cols());

common/include/pcl/impl/cloud_iterator.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,12 @@ namespace pcl
218218

219219
unsigned getCurrentPointIndex () const override
220220
{
221-
return (unsigned (iterator_ - cloud_.begin ()));
221+
return (static_cast<unsigned>(iterator_ - cloud_.begin ()));
222222
}
223223

224224
unsigned getCurrentIndex () const override
225225
{
226-
return (unsigned (iterator_ - cloud_.begin ()));
226+
return (static_cast<unsigned>(iterator_ - cloud_.begin ()));
227227
}
228228

229229
std::size_t size () const override
@@ -292,12 +292,12 @@ namespace pcl
292292

293293
unsigned getCurrentPointIndex () const override
294294
{
295-
return (unsigned (*iterator_));
295+
return (static_cast<unsigned>(*iterator_));
296296
}
297297

298298
unsigned getCurrentIndex () const override
299299
{
300-
return (unsigned (iterator_ - indices_.begin ()));
300+
return (static_cast<unsigned>(iterator_ - indices_.begin ()));
301301
}
302302

303303
std::size_t size () const override

common/include/pcl/range_image/impl/range_image.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ RangeImage::getAcutenessValue (const PointWithRange& point1, const PointWithRang
661661
float impact_angle = getImpactAngle (point1, point2);
662662
if (std::isinf (impact_angle))
663663
return -std::numeric_limits<float>::infinity ();
664-
float ret = 1.0f - float (std::fabs (impact_angle)/ (0.5f*M_PI));
664+
float ret = 1.0f - static_cast<float>(std::fabs (impact_angle)/ (0.5f*M_PI));
665665
if (impact_angle < 0.0f)
666666
ret = -ret;
667667
//if (std::abs (ret)>1)

common/src/PCLPointCloud2.cpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,13 @@ pcl::PCLPointCloud2::concatenate (pcl::PCLPointCloud2 &cloud1, const pcl::PCLPoi
5858
const auto size1 = cloud1.width * cloud1.height;
5959
const auto size2 = cloud2.width * cloud2.height;
6060
//if one input cloud has no points, but the other input does, just select the cloud with points
61-
switch ((bool (size1) << 1) + bool (size2))
62-
{
63-
case 1:
64-
cloud1 = cloud2;
65-
PCL_FALLTHROUGH
66-
case 0:
67-
case 2:
68-
cloud1.header.stamp = std::max (cloud1.header.stamp, cloud2.header.stamp);
69-
return (true);
70-
default:
71-
break;
61+
if ((size1 == 0) && (size2 != 0)) {
62+
cloud1 = cloud2;
63+
}
64+
65+
if ((size1 == 0) || (size2 == 0)) {
66+
cloud1.header.stamp = std::max (cloud1.header.stamp, cloud2.header.stamp);
67+
return true;
7268
}
7369

7470
// Ideally this should be in PCLPointField class since this is global behavior

common/src/bearing_angle_image.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ BearingAngleImage::generateBAImage (PointCloud<PointXYZ>& point_cloud)
114114
points[(i + 1) * width + j].y = point_cloud.at (j, i + 1).y;
115115
points[(i + 1) * width + j].z = point_cloud.at (j, i + 1).z;
116116
// set the gray value for every pixel point
117-
points[(i + 1) * width + j].rgba = ((int)r) << 24 | ((int)g) << 16 | ((int)b) << 8 | 0xff;
117+
points[(i + 1) * width + j].rgba = (static_cast<int>(r)) << 24 | (static_cast<int>(g)) << 16 | (static_cast<int>(b)) << 8 | 0xff;
118118
}
119119
}
120120
}

0 commit comments

Comments
 (0)