From 722f9c3952f1a51d8d2c04b721aa8d27cc3a853e Mon Sep 17 00:00:00 2001 From: Connor Manning Date: Fri, 5 Oct 2018 11:26:32 -0500 Subject: [PATCH] Isolate override/default SRS members to Reader. --- pdal/Reader.cpp | 15 +++++++++++++++ pdal/Reader.hpp | 7 +++++++ pdal/Stage.cpp | 7 ------- pdal/Stage.hpp | 4 +--- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/pdal/Reader.cpp b/pdal/Reader.cpp index f6b6843cc5..d96e31df97 100644 --- a/pdal/Reader.cpp +++ b/pdal/Reader.cpp @@ -54,6 +54,7 @@ void Reader::readerAddArgs(ProgramArgs& args) m_defaultSrs); } + void Reader::readerInitialize(PointTableRef) { if (!m_overrideSrs.empty() && !m_defaultSrs.empty()) @@ -65,4 +66,18 @@ void Reader::readerInitialize(PointTableRef) setSpatialReference(m_defaultSrs); } + +void Reader::setSpatialReference(MetadataNode& m, const SpatialReference& srs) +{ + if (getSpatialReference().empty() || m_overrideSrs.empty()) + { + Stage::setSpatialReference(m, srs); + } + else + { + log()->get(LogLevel::Debug) << + "Ignoring setSpatialReference attempt: an override was set"; + } +} + } // namespace pdal diff --git a/pdal/Reader.hpp b/pdal/Reader.hpp index 045a24029a..4bd0394f03 100644 --- a/pdal/Reader.hpp +++ b/pdal/Reader.hpp @@ -64,6 +64,13 @@ class PDAL_DLL Reader : public virtual Stage Arg *m_filenameArg; Arg *m_countArg; + SpatialReference m_overrideSrs; + SpatialReference m_defaultSrs; + + using Stage::setSpatialReference; + virtual void setSpatialReference(MetadataNode& m, + const SpatialReference& srs); + private: virtual PointViewSet run(PointViewPtr view) { diff --git a/pdal/Stage.cpp b/pdal/Stage.cpp index 4c424ef34c..41a1bc076b 100644 --- a/pdal/Stage.cpp +++ b/pdal/Stage.cpp @@ -330,13 +330,6 @@ void Stage::setSpatialReference(const SpatialReference& spatialRef) void Stage::setSpatialReference(MetadataNode& m, const SpatialReference& spatialRef) { - if (!m_spatialReference.empty() && !m_overrideSrs.empty()) - { - log()->get(LogLevel::Debug) << - "Ignoring setSpatialReference attempt: an override was set"; - return; - } - m_spatialReference = spatialRef; auto pred = [](MetadataNode m) diff --git a/pdal/Stage.hpp b/pdal/Stage.hpp index 7b6a963d7a..e020baf72c 100644 --- a/pdal/Stage.hpp +++ b/pdal/Stage.hpp @@ -328,10 +328,8 @@ class PDAL_DLL Stage Options m_options; ///< Stage's options. MetadataNode m_metadata; ///< Stage's metadata. int m_progressFd; ///< Descriptor for progress info. - SpatialReference m_overrideSrs; - SpatialReference m_defaultSrs; - void setSpatialReference(MetadataNode& m, SpatialReference const&); + virtual void setSpatialReference(MetadataNode& m, SpatialReference const&); void throwError(const std::string& s) const; /** Return the point count of all point views at the start of execution.