From 2ceba6b8d70afab83e07e95a7c4fae0a8a0add3d Mon Sep 17 00:00:00 2001 From: Bradley J Chambers Date: Mon, 19 Mar 2018 13:03:34 +0100 Subject: [PATCH] Issue a warning when ReturnsFilter creates an empty set, remove old plugin boilerplate --- filters/ReturnsFilter.cpp | 44 ++++++++++++++++++++++++++++++++------- filters/ReturnsFilter.hpp | 9 ++------ 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/filters/ReturnsFilter.cpp b/filters/ReturnsFilter.cpp index 575736b791..e41d98ac0f 100644 --- a/filters/ReturnsFilter.cpp +++ b/filters/ReturnsFilter.cpp @@ -112,14 +112,42 @@ PointViewSet ReturnsFilter::run(PointViewPtr inView) onlyView->appendPoint(*inView.get(), idx); } - if (firstView->size()) - viewSet.insert(firstView); - if (intermediateView->size()) - viewSet.insert(intermediateView); - if (lastView->size()) - viewSet.insert(lastView); - if (onlyView->size()) - viewSet.insert(onlyView); + if (m_outputTypes & returnFirst) + { + if (firstView->size()) + viewSet.insert(firstView); + else + log()->get(LogLevel::Warning) + << "Requested first returns set it empty\n"; + } + + if (m_outputTypes & returnIntermediate) + { + if (intermediateView->size()) + viewSet.insert(intermediateView); + else + log()->get(LogLevel::Warning) + << "Requested intermediate returns set is empty\n"; + } + + if (m_outputTypes & returnLast) + { + if (lastView->size()) + viewSet.insert(lastView); + else + log()->get(LogLevel::Warning) + << "Requested last returns set is empty\n"; + } + + if (m_outputTypes & returnOnly) + { + if (onlyView->size()) + viewSet.insert(onlyView); + else + log()->get(LogLevel::Warning) + << "Requested only returns set is empty\n"; + } + return viewSet; } diff --git a/filters/ReturnsFilter.hpp b/filters/ReturnsFilter.hpp index 5cbf0cff77..116453aa3f 100644 --- a/filters/ReturnsFilter.hpp +++ b/filters/ReturnsFilter.hpp @@ -39,9 +39,6 @@ #include #include -extern "C" int32_t ReturnsFilter_ExitFunc(); -extern "C" PF_ExitFunc ReturnsFilter_InitPlugin(); - namespace pdal { @@ -58,8 +55,6 @@ class PDAL_DLL ReturnsFilter : public Filter static const int returnLast = 4; static const int returnOnly = 8; - static void* create(); - static int32_t destroy(void*); std::string getName() const; private: @@ -71,8 +66,8 @@ class PDAL_DLL ReturnsFilter : public Filter virtual void prepared(PointTableRef table); virtual PointViewSet run(PointViewPtr view); - ReturnsFilter& operator=(const ReturnsFilter&); // not implemented - ReturnsFilter(const ReturnsFilter&); // not implemented + ReturnsFilter& operator=(const ReturnsFilter&) = delete; // not implemented + ReturnsFilter(const ReturnsFilter&) = delete; // not implemented }; } // namespace pdal