Skip to content

Commit d15f4f2

Browse files
Switch to vectors
1 parent 2f6706a commit d15f4f2

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

features/include/pcl/features/range_image_border_extractor.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,10 @@ namespace pcl
171171
getBorderDirections() { calculateBorderDirections(); return border_directions_.get(); }
172172

173173
float*
174-
getSurfaceChangeScores () { calculateSurfaceChanges (); return surface_change_scores_; }
174+
getSurfaceChangeScores () { calculateSurfaceChanges (); return surface_change_scores_.data(); }
175175

176176
Eigen::Vector3f*
177-
getSurfaceChangeDirections() { calculateSurfaceChanges(); return surface_change_directions_; }
177+
getSurfaceChangeDirections() { calculateSurfaceChanges(); return surface_change_directions_.get(); }
178178

179179

180180
protected:
@@ -188,8 +188,8 @@ namespace pcl
188188
std::unique_ptr<PointCloudOut> border_descriptions_;
189189
std::unique_ptr<ShadowBorderIndices*[]> shadow_border_informations_;
190190
std::unique_ptr<Eigen::Vector3f*[]> border_directions_;
191-
float* surface_change_scores_;
192-
Eigen::Vector3f* surface_change_directions_;
191+
std::vector<float> surface_change_scores_;
192+
std::unique_ptr<Eigen::Vector3f[]> surface_change_directions_;
193193

194194

195195
// =====PROTECTED METHODS=====

features/src/range_image_border_extractor.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ namespace pcl
5656
RangeImageBorderExtractor::RangeImageBorderExtractor(const RangeImage* range_image) :
5757
range_image_(range_image), range_image_size_during_extraction_(0),
5858
surface_structure_(nullptr), border_descriptions_(nullptr), shadow_border_informations_(nullptr), border_directions_(nullptr),
59-
surface_change_scores_(nullptr), surface_change_directions_(nullptr)
59+
surface_change_directions_(nullptr)
6060
{
6161
}
6262

@@ -88,13 +88,13 @@ RangeImageBorderExtractor::clearData ()
8888
if (border_directions_!=nullptr)
8989
delete border_directions_[i];
9090
}
91-
delete[] surface_structure_; surface_structure_ = nullptr;
92-
delete[] shadow_border_informations_; shadow_border_informations_ = nullptr;
93-
delete[] border_directions_; border_directions_ = nullptr;
94-
delete border_descriptions_; border_descriptions_ = nullptr;
91+
surface_structure_.reset();
92+
shadow_border_informations_.reset();
93+
border_directions_.reset();
94+
border_descriptions_.reset();
9595

96-
delete[] surface_change_scores_; surface_change_scores_ = nullptr;
97-
delete[] surface_change_directions_; surface_change_directions_ = nullptr;
96+
surface_change_directions_.reset();
97+
surface_change_scores_.clear();
9898
}
9999

100100
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -560,7 +560,7 @@ RangeImageBorderExtractor::calculateBorderDirections ()
560560
void
561561
RangeImageBorderExtractor::calculateSurfaceChanges ()
562562
{
563-
if (surface_change_scores_!=nullptr)
563+
if (!surface_change_scores_.empty())
564564
return;
565565

566566
calculateBorderDirections();
@@ -570,8 +570,8 @@ RangeImageBorderExtractor::calculateSurfaceChanges ()
570570
int width = range_image_->width,
571571
height = range_image_->height,
572572
size = width*height;
573-
surface_change_scores_ = new float[size];
574-
surface_change_directions_ = new Eigen::Vector3f[size];
573+
surface_change_scores_.resize(size);
574+
surface_change_directions_ = std::make_unique<Eigen::Vector3f[]>(size);
575575
#pragma omp parallel for \
576576
default(none) \
577577
shared(height, width) \
@@ -618,7 +618,7 @@ RangeImageBorderExtractor::blurSurfaceChanges ()
618618
const RangeImage& range_image = *range_image_;
619619

620620
Eigen::Vector3f* blurred_directions = new Eigen::Vector3f[range_image.width*range_image.height];
621-
float* blurred_scores = new float[range_image.width*range_image.height];
621+
std::vector<float> blurred_scores(range_image.width*range_image.height);
622622
for (int y=0; y<int(range_image.height); ++y)
623623
{
624624
for (int x=0; x<int(range_image.width); ++x)
@@ -664,9 +664,9 @@ RangeImageBorderExtractor::blurSurfaceChanges ()
664664
new_score /= counter;
665665
}
666666
}
667-
delete[] surface_change_directions_;
668-
surface_change_directions_ = blurred_directions;
669-
delete[] surface_change_scores_;
667+
surface_change_directions_.reset();
668+
surface_change_directions_ = std::unique_ptr<Eigen::Vector3f[]>(std::move(blurred_directions));
669+
surface_change_scores_.clear();
670670
surface_change_scores_ = blurred_scores;
671671
}
672672

0 commit comments

Comments
 (0)