Skip to content

Commit

Permalink
Filters: Rename RadiusSearch to RadiusAssign
Browse files Browse the repository at this point in the history
  • Loading branch information
leavauchier committed Nov 30, 2023
1 parent a3c65cb commit 74890f2
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 36 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.. _filters.radiussearch:
.. _filters.radiusassign:

filters.radiussearch
filters.radiusassign
==========================

The **radius search filter** allows you update the value of a dimension (using
Expand All @@ -26,7 +26,7 @@ classification 6 (building)
[
"las/4_6.las",
{
"type" : "filters.radiussearch",
"type" : "filters.radiusassign",
"src_domain" : "Classification[1:2]",
"reference_domain" : "Classification[6:6]"
"radius" : 1
Expand Down
8 changes: 4 additions & 4 deletions doc/stages/filters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ Pointwise Features
filters.optimalneighborhood
filters.planefit
filters.radialdensity
filters.radiussearch
filters.radiusassign
filters.reciprocity
filters.zsmooth

Expand Down Expand Up @@ -232,9 +232,9 @@ Pointwise Features
:ref:`filters.radialdensity`
Compute pointwise density of points within a given radius.

:ref:`filters.radiussearch`
Assign values to a dimension classification using k-nearest neighbor consensus voting.

:ref:`filters.radiusassign`
update the value of a dimension (using an assignment expression) for specific points
depending on their neighbors in a given radius
:ref:`filters.reciprocity`
Compute the percentage of points that are considered uni-directional
neighbors of a point.
Expand Down
30 changes: 15 additions & 15 deletions filters/RadiusSearchFilter.cpp → filters/RadiusAssignFilter.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "RadiusSearchFilter.hpp"
#include "RadiusAssignFilter.hpp"

#include <pdal/PipelineManager.hpp>
#include <pdal/StageFactory.hpp>
Expand All @@ -12,21 +12,21 @@ namespace pdal
{

static PluginInfo const s_info = PluginInfo(
"filters.radiussearch",
"filters.radiusassign",
"Re-assign some point attributes based KNN voting",
"http://pdal.io/stages/filters.radiussearch.html" );
"http://pdal.io/stages/filters.radiusassign.html" );

CREATE_STATIC_STAGE(RadiusSearchFilter, s_info)
CREATE_STATIC_STAGE(RadiusAssignFilter, s_info)

RadiusSearchFilter::RadiusSearchFilter()
RadiusAssignFilter::RadiusAssignFilter()
{}


RadiusSearchFilter::~RadiusSearchFilter()
RadiusAssignFilter::~RadiusAssignFilter()
{}


void RadiusSearchFilter::addArgs(ProgramArgs& args)
void RadiusAssignFilter::addArgs(ProgramArgs& args)
{
args.add("src_domain", "Selects which points will be subject to "
"radius-based neighbors search", m_srcDomainSpec);
Expand All @@ -40,7 +40,7 @@ void RadiusSearchFilter::addArgs(ProgramArgs& args)
}


void RadiusSearchFilter::initializeDomain(StringList domainSpec, std::vector<DimRange> &domain)
void RadiusAssignFilter::initializeDomain(StringList domainSpec, std::vector<DimRange> &domain)
{
for (auto const& r : domainSpec)
{
Expand All @@ -57,7 +57,7 @@ void RadiusSearchFilter::initializeDomain(StringList domainSpec, std::vector<Dim
}
}

void RadiusSearchFilter::initialize()
void RadiusAssignFilter::initialize()
{
this->initializeDomain(m_referenceDomainSpec, m_referenceDomain);
this->initializeDomain(m_srcDomainSpec, m_srcDomain);
Expand All @@ -70,7 +70,7 @@ void RadiusSearchFilter::initialize()

}

void RadiusSearchFilter::preparedDomain(std::vector<DimRange> &domain, PointLayoutPtr layout)
void RadiusAssignFilter::preparedDomain(std::vector<DimRange> &domain, PointLayoutPtr layout)
{
for (auto& r : domain)
{
Expand All @@ -82,7 +82,7 @@ void RadiusSearchFilter::preparedDomain(std::vector<DimRange> &domain, PointLayo
std::sort(domain.begin(), domain.end());
}

void RadiusSearchFilter::prepared(PointTableRef table)
void RadiusAssignFilter::prepared(PointTableRef table)
{
PointLayoutPtr layout(table.layout());
this->preparedDomain(m_srcDomain, layout);
Expand All @@ -98,13 +98,13 @@ void RadiusSearchFilter::prepared(PointTableRef table)
}
}

void RadiusSearchFilter::ready(PointTableRef)
void RadiusAssignFilter::ready(PointTableRef)
{
m_ptsToUpdate.clear();
}


void RadiusSearchFilter::doOneNoDomain(PointRef &point, KD2Index &kdi)
void RadiusAssignFilter::doOneNoDomain(PointRef &point, KD2Index &kdi)
{
PointIdList iNeighbors = kdi.radius(point, m_radius);
if (iNeighbors.size() == 0)
Expand All @@ -115,7 +115,7 @@ void RadiusSearchFilter::doOneNoDomain(PointRef &point, KD2Index &kdi)
}

// update point. kdi and temp both reference the NN point cloud
bool RadiusSearchFilter::doOne(PointRef& point, KD2Index &kdi)
bool RadiusAssignFilter::doOne(PointRef& point, KD2Index &kdi)
{
if (m_srcDomain.empty()) // No domain, process all points
doOneNoDomain(point, kdi);
Expand All @@ -131,7 +131,7 @@ bool RadiusSearchFilter::doOne(PointRef& point, KD2Index &kdi)
return true;
}

void RadiusSearchFilter::filter(PointView& view)
void RadiusAssignFilter::filter(PointView& view)
{
PointRef point_src(view, 0);
// Create a kd tree only with the points in the reference domain (to make the search faster)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@
#include "private/expr/AssignStatement.hpp"


extern "C" int32_t RadiusSearchFilter_ExitFunc();
extern "C" PF_ExitFunc RadiusSearchFilter_InitPlugin();
extern "C" int32_t RadiusAssignFilter_ExitFunc();
extern "C" PF_ExitFunc RadiusAssignFilter_InitPlugin();

namespace pdal
{

struct DimRange;

class PDAL_DLL RadiusSearchFilter : public Filter
class PDAL_DLL RadiusAssignFilter : public Filter
{
public:
RadiusSearchFilter();
~RadiusSearchFilter();
RadiusAssignFilter();
~RadiusAssignFilter();

static void * create();
static int32_t destroy(void *);
std::string getName() const { return "filters.RadiusSearch"; }
std::string getName() const { return "filters.radiusassign"; }

private:
virtual void addArgs(ProgramArgs& args);
Expand All @@ -34,9 +34,9 @@ class PDAL_DLL RadiusSearchFilter : public Filter
virtual void initializeDomain(StringList domainSpec, std::vector<DimRange> &domain);
virtual void initialize();
virtual void ready(PointTableRef);
RadiusSearchFilter& operator=(
const RadiusSearchFilter&) = delete;
RadiusSearchFilter(const RadiusSearchFilter&) = delete;
RadiusAssignFilter& operator=(
const RadiusAssignFilter&) = delete;
RadiusAssignFilter(const RadiusAssignFilter&) = delete;
StringList m_referenceDomainSpec;
std::vector<DimRange> m_referenceDomain;
StringList m_srcDomainSpec;
Expand Down
2 changes: 1 addition & 1 deletion test/unit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ PDAL_ADD_TEST(pdal_filters_icp_test
PDAL_ADD_TEST(pdal_filters_info_test FILES filters/InfoFilterTest.cpp)
PDAL_ADD_TEST(pdal_filters_lloydkmeans_test FILES filters/LloydKMeansFilterTest.cpp)
PDAL_ADD_TEST(pdal_filters_neighborclassifier_test FILES filters/NeighborClassifierFilterTest.cpp)
PDAL_ADD_TEST(pdal_filters_radius_search_test FILES filters/RadiusSearchFilterTest.cpp)
PDAL_ADD_TEST(pdal_filters_radius_assign_test FILES filters/RadiusAssignFilterTest.cpp)
PDAL_ADD_TEST(pdal_filters_locate_test FILES filters/LocateFilterTest.cpp)
PDAL_ADD_TEST(pdal_filters_merge_test FILES filters/MergeTest.cpp)
PDAL_ADD_TEST(pdal_filters_miniball_test FILES filters/MiniballFilterTest.cpp)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
namespace pdal
{

TEST(RadiusSearchFilterTest, basic_usage)
TEST(RadiusAssignFilterTest, basic_usage)
{
Options ro;
ro.add("filename", Support::datapath("las/4_6.las"));
Expand All @@ -29,7 +29,7 @@ TEST(RadiusSearchFilterTest, basic_usage)
fo.add("update_expression", "UserData = 1");
fo.add("radius", radVals[ii]);

Stage& f = *(factory.createStage("filters.radiussearch"));
Stage& f = *(factory.createStage("filters.radiusassign"));
f.setInput(r);
f.setOptions(fo);

Expand Down Expand Up @@ -68,7 +68,7 @@ TEST(RadiusSearchFilterTest, basic_usage)
}


TEST(RadiusSearchFilterTest, missing_param)
TEST(RadiusAssignFilterTest, missing_param)
{
Options ro;
ro.add("filename", Support::datapath("las/4_6.las"));
Expand All @@ -84,7 +84,7 @@ TEST(RadiusSearchFilterTest, missing_param)
fo.add("reference_domain", "Classification[1:1]");
fo.add("radius", 1);

Stage& f = *(factory.createStage("filters.radiussearch"));
Stage& f = *(factory.createStage("filters.radiusassign"));
f.setInput(r);
f.setOptions(fo);

Expand Down

0 comments on commit 74890f2

Please sign in to comment.