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