Skip to content

Commit

Permalink
Small consistency fixes. (#2759)
Browse files Browse the repository at this point in the history
  • Loading branch information
abellgithub committed Sep 25, 2019
1 parent 409b0bb commit b3c58e2
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 30 deletions.
49 changes: 24 additions & 25 deletions filters/VoxelDownsizeFilter.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/******************************************************************************
* Copyright (c) 2019, Helix.re
* Contact Person : Pravin Shinde (pravin@helix.re, https://github.com/pravinshinde825)
* Contact Person : Pravin Shinde (pravin@helix.re,
* https://github.com/pravinshinde825)
*
* All rights reserved.
*
Expand Down Expand Up @@ -59,22 +60,26 @@ std::string VoxelDownsizeFilter::getName() const
void VoxelDownsizeFilter::addArgs(ProgramArgs& args)
{
args.add("cell", "Cell size", m_cell, 0.001);
args.add("mode",
"Method for downsizing : voxelcenter / firstinvoxel",
m_mode, "voxelcenter");
args.add("mode", "Method for downsizing : voxelcenter / firstinvoxel",
m_mode, "voxelcenter");
}


void VoxelDownsizeFilter::ready(PointTableRef)
{
m_pivotVoxelInitialized = false;

}
void VoxelDownsizeFilter::prepared(PointTableRef) {
if (m_mode.compare("voxelcenter")!=0 && m_mode.compare("firstinvoxel")!=0)
throw pdal_error("Invalid Downsizing mode");

m_isFirstInVoxelMode = (m_mode.compare("firstinvoxel") == 0);


void VoxelDownsizeFilter::prepared(PointTableRef)
{
m_mode = Utils::toupper(m_mode);
if (m_mode == "VOXELCENTER")
m_isFirstInVoxelMode = false;
else if (m_mode == "FIRSTINVOXEL")
m_isFirstInVoxelMode = true;
else
throwError("Invalid mode specified.");
}


Expand All @@ -94,6 +99,7 @@ PointViewSet VoxelDownsizeFilter::run(PointViewPtr view)
return viewSet;
}


bool VoxelDownsizeFilter::voxelize(PointRef point)
{
/*
Expand All @@ -118,27 +124,20 @@ bool VoxelDownsizeFilter::voxelize(PointRef point)
}

/*
* Calculate the local voxel coordinates for incoming point, Using the Pivot
* voxel.
* Calculate the local voxel coordinates for incoming point, Using the
* Pivot voxel.
*/
auto t = std::make_tuple(gx - m_pivotVoxel[0], gy - m_pivotVoxel[1],
gz - m_pivotVoxel[2]);

if (m_isFirstInVoxelMode)
return (m_populatedVoxels.insert(t).second);
else
auto inserted = m_populatedVoxels.insert(t).second;
if (!m_isFirstInVoxelMode && inserted)
{
auto itr = m_populatedVoxels.find(t);
if (itr == m_populatedVoxels.end())
{
m_populatedVoxels.insert(t);
point.setField<double>(Dimension::Id::X, (gx + 0.5) * m_cell);
point.setField<double>(Dimension::Id::Y, (gy + 0.5) * m_cell);
point.setField<double>(Dimension::Id::Z, (gz + 0.5) * m_cell);
return true;
}
point.setField<double>(Dimension::Id::X, (gx + 0.5) * m_cell);
point.setField<double>(Dimension::Id::Y, (gy + 0.5) * m_cell);
point.setField<double>(Dimension::Id::Z, (gz + 0.5) * m_cell);
}
return false;
return inserted;
}

bool VoxelDownsizeFilter::processOne(PointRef& point)
Expand Down
9 changes: 4 additions & 5 deletions filters/VoxelDownsizeFilter.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/******************************************************************************
* Copyright (c) 2019, Helix.re
* Contact Person : Pravin Shinde (pravin@helix.re, https://github.com/pravinshinde825)
* Contact Person : Pravin Shinde (pravin@helix.re,
* https://github.com/pravinshinde825)
*
* All rights reserved.
*
Expand Down Expand Up @@ -64,12 +65,10 @@ class PDAL_DLL VoxelDownsizeFilter : public Filter, public Streamable

double m_cell;
std::set<std::tuple<int, int, int>> m_populatedVoxels;
int m_pivotVoxel[3]; // [0]: X dimension, [1]: Y dimension, [2]: Z
// dimension.
int m_pivotVoxel[3]; // [0/1/2]: X/Y/Z dimension
bool m_pivotVoxelInitialized;
std::string m_mode;

bool m_isFirstInVoxelMode; // True: firstinvoxel mode, False: voxelcenter mode
bool m_isFirstInVoxelMode; // True: firstinvoxel, False: voxelcenter mode
};

} // namespace pdal

0 comments on commit b3c58e2

Please sign in to comment.