From 8a39c16d7a240e36b37ec04d1c09275c56ddad9d Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Mon, 28 Apr 2014 17:03:36 +0200
Subject: [PATCH] ENH: new extended filename to disable RPC tags reading

---
 .../IO/otbExtendedFilenameToReaderOptions.cxx | 31 +++++++++++++++++++
 Code/IO/otbExtendedFilenameToReaderOptions.h  |  3 ++
 2 files changed, 34 insertions(+)

diff --git a/Code/IO/otbExtendedFilenameToReaderOptions.cxx b/Code/IO/otbExtendedFilenameToReaderOptions.cxx
index 2a07e15db5..9b71a025fa 100644
--- a/Code/IO/otbExtendedFilenameToReaderOptions.cxx
+++ b/Code/IO/otbExtendedFilenameToReaderOptions.cxx
@@ -43,12 +43,16 @@ ExtendedFilenameToReaderOptions
 
   m_Options.skipGeom.first  = false;
   m_Options.skipGeom.second = false;
+  
+  m_Options.skipRpcTag.first  = false;
+  m_Options.skipRpcTag.second = false;
 
   m_Options.optionList.push_back("geom");
   m_Options.optionList.push_back("sdataidx");
   m_Options.optionList.push_back("resol");
   m_Options.optionList.push_back("skipcarto");
   m_Options.optionList.push_back("skipgeom");
+  m_Options.optionList.push_back("skiprpctag");
 }
 
 void
@@ -105,6 +109,20 @@ ExtendedFilenameToReaderOptions
       }
     }
 
+  if (!map["skiprpctag"].empty())
+    {
+    m_Options.skipRpcTag.first = true;
+    if (   map["skiprpctag"] == "On"
+        || map["skiprpctag"] == "on"
+        || map["skiprpctag"] == "ON"
+        || map["skiprpctag"] == "true"
+        || map["skiprpctag"] == "True"
+        || map["skiprpctag"] == "1"   )
+      {
+      m_Options.skipRpcTag.second = true;
+      }
+    }
+  
   //Option Checking
   MapIteratorType it;
   for ( it=map.begin(); it != map.end(); it++ )
@@ -198,4 +216,17 @@ ExtendedFilenameToReaderOptions
   return m_Options.skipGeom.second;
 }
 
+bool
+ExtendedFilenameToReaderOptions
+::SkipRpcTagIsSet () const
+{
+  return m_Options.skipRpcTag.first;
+}
+bool
+ExtendedFilenameToReaderOptions
+::GetSkipRpcTag () const
+{
+  return m_Options.skipRpcTag.second;
+}
+
 } // end namespace otb
diff --git a/Code/IO/otbExtendedFilenameToReaderOptions.h b/Code/IO/otbExtendedFilenameToReaderOptions.h
index 7af1283b55..f22e7d04c3 100644
--- a/Code/IO/otbExtendedFilenameToReaderOptions.h
+++ b/Code/IO/otbExtendedFilenameToReaderOptions.h
@@ -62,6 +62,7 @@ public:
     std::pair< bool, unsigned int >  resolutionFactor;
     std::pair< bool, bool         >  skipCarto;
     std::pair< bool, bool         >  skipGeom;
+    std::pair< bool, bool         >  skipRpcTag;
     std::vector<std::string>         optionList;
   };
 
@@ -80,6 +81,8 @@ public:
   bool GetSkipCarto () const;
   bool SkipGeomIsSet () const;
   bool GetSkipGeom () const;
+  bool SkipRpcTagIsSet () const;
+  bool GetSkipRpcTag () const;
 
 protected:
   ExtendedFilenameToReaderOptions();
-- 
GitLab