Skip to content

Commit

Permalink
Use PointView iterator after rebasing with master
Browse files Browse the repository at this point in the history
  • Loading branch information
chambbj committed Feb 25, 2020
1 parent 8e6ecd4 commit 8c2472d
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 14 deletions.
6 changes: 2 additions & 4 deletions filters/NormalFilter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,11 @@ void NormalFilter::prepared(PointTableRef table)
void NormalFilter::compute(PointView& view, KD3Index& kdi)
{
log()->get(LogLevel::Debug) << "Computing normal vectors\n";
for (PointId idx = 0; idx < view.size(); ++idx)
for (auto&& p : view)
{
PointRef p = view.point(idx);

// Perform eigen decomposition of covariance matrix computed from
// neighborhood composed of k-nearest neighbors.
PointIdList neighbors = kdi.neighbors(idx, m_args->m_knn);
PointIdList neighbors = kdi.neighbors(p.pointId(), m_args->m_knn);
auto B = computeCovariance(view, neighbors);
SelfAdjointEigenSolver<Matrix3d> solver(B);
if (solver.info() != Success)
Expand Down
15 changes: 5 additions & 10 deletions test/unit/filters/NormalFilterTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,8 @@ TEST(NormalFilterTest, XYPlane)
Dimension::Id nz = table.layout()->findDim("NormalZ");
Dimension::Id c = table.layout()->findDim("Curvature");

for (point_count_t idx = 0; idx < outView->size(); ++idx)
for (auto const& p : *outView)
{
PointRef p = outView->point(idx);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nx), 0.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(ny), 0.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nz), 1.0);
Expand Down Expand Up @@ -110,9 +109,8 @@ TEST(NormalFilterTest, XZPlane)
Dimension::Id nz = table.layout()->findDim("NormalZ");
Dimension::Id c = table.layout()->findDim("Curvature");

for (point_count_t idx = 0; idx < outView->size(); ++idx)
for (auto const& p : *outView)
{
PointRef p = outView->point(idx);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nx), 0.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(ny), 1.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nz), 0.0);
Expand Down Expand Up @@ -148,9 +146,8 @@ TEST(NormalFilterTest, YZPlane)
Dimension::Id nz = table.layout()->findDim("NormalZ");
Dimension::Id c = table.layout()->findDim("Curvature");

for (point_count_t idx = 0; idx < outView->size(); ++idx)
for (auto const& p : *outView)
{
PointRef p = outView->point(idx);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nx), 1.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(ny), 0.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nz), 0.0);
Expand Down Expand Up @@ -197,9 +194,8 @@ TEST(NormalFilterTest, RampPlane)
Dimension::Id c = table.layout()->findDim("Curvature");

double expected = std::sqrt(2.0) / 2.0;
for (point_count_t idx = 0; idx < outView->size(); ++idx)
for (auto const& p : *outView)
{
PointRef p = outView->point(idx);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nx), -expected);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(ny), 0.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nz), expected);
Expand Down Expand Up @@ -246,9 +242,8 @@ TEST(NormalFilterTest, RampPlane2)
Dimension::Id c = table.layout()->findDim("Curvature");

double expected = std::sqrt(2.0) / 2.0;
for (point_count_t idx = 0; idx < outView->size(); ++idx)
for (auto const& p : *outView)
{
PointRef p = outView->point(idx);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nx), 0.0);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(ny), -expected);
ASSERT_FLOAT_EQ(p.getFieldAs<float>(nz), expected);
Expand Down

0 comments on commit 8c2472d

Please sign in to comment.