Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • orfeotoolbox/otb
  • gpasero/otb
  • jinglada/otb
  • cs-si/otb
  • tardyb/otb
  • jmichel/otb
  • pedrojoclar/otb
  • derksend/otb
  • ussegliog/otb
  • SebastienPeillet/otb
  • waynedou/otb
  • lhermitte/otb
  • ArthurV/otb
  • sebastic/otb
  • gpernot/otb
  • super7ramp/otb
  • camiot/otb
  • ctraizet/otb
  • dyoussef/otb
  • bradh/otb
  • troopa81/otb
  • sdinot/otb
  • julienosman/otb
  • vidlb/otb
  • Feishi/otb
  • IlDordollano/otb
  • pty_/otb
27 results
Show changes
Commits on Source (15)
Showing
with 59 additions and 18 deletions
...@@ -8,18 +8,15 @@ OTB. In this chapter, we will make reference either to \emph{OTB ...@@ -8,18 +8,15 @@ OTB. In this chapter, we will make reference either to \emph{OTB
features} or \emph{ITK features} without distinction. Bear in mind features} or \emph{ITK features} without distinction. Bear in mind
that OTB uses ITK as its core element, so all the fundamental elements that OTB uses ITK as its core element, so all the fundamental elements
of OTB come from ITK. OTB extends the functionalities of ITK for the of OTB come from ITK. OTB extends the functionalities of ITK for the
remote sensing image processing comunity. We benefit from the Open remote sensing image processing community. We benefit from the Open
Source development approach chosen for ITK, which allows us to provide Source development approach chosen for ITK, which allows us to provide
an impressive set of functionalities with much lesser effort than it an impressive set of functionalities with much less effort than
would have been the case in a closed source universe! would have been the case in a closed source universe!
\section{System Organization} \section{System Organization}
\label{sec:SystemOrganization} \label{sec:SystemOrganization}
The ORFEO Toolbox consists of several subsystems. A brief The Orfeo Toolbox consists of several subsystems:
description of these subsystems follows. Later sections in this chapter---and
in some cases additional chapters---cover these concepts in more detail. (Note:
in the previous chapter, another module---\code{OTB-Documents} is briefly described.)
\begin{description} \begin{description}
\item[Essential System Concepts.] Like any software system, OTB is \item[Essential System Concepts.] Like any software system, OTB is
...@@ -120,14 +117,14 @@ found in ITK and therefore also in OTB. ...@@ -120,14 +117,14 @@ found in ITK and therefore also in OTB.
\index{template} \index{template}
Generic programming is a method of organizing libraries consisting of Generic programming is a method of organizing libraries consisting of
generic---or reusable---software components \cite{Musser1996}. The idea is to generic---or reusable---software components. The idea is to
make software that is capable of ``plugging together'' in an efficient, make software that is capable of ``plugging together'' in an efficient,
adaptable manner. The essential ideas of generic programming are adaptable manner. The essential ideas of generic programming are
\emph{containers} to hold data, \emph{iterators} to access the data, and \emph{containers} to hold data, \emph{iterators} to access the data, and
\emph{generic algorithms} that use containers and iterators to create \emph{generic algorithms} that use containers and iterators to create
efficient, fundamental algorithms such as sorting. Generic programming is efficient, fundamental algorithms such as sorting. Generic programming is
implemented in C++ with the \emph{template} programming mechanism and the implemented in C++ with the \emph{template} programming mechanism and the
use of the STL Standard Template Library \cite{Austern1999}. use of the STL Standard Template Library.
C++ templating is a programming technique allowing users to write software in C++ templating is a programming technique allowing users to write software in
terms of one or more unknown types \code{T}. To create executable code, the terms of one or more unknown types \code{T}. To create executable code, the
...@@ -148,8 +145,7 @@ compiler can optimize the code to deliver maximal performance. The ...@@ -148,8 +145,7 @@ compiler can optimize the code to deliver maximal performance. The
disadvantage of generic programming is that many compilers still do not disadvantage of generic programming is that many compilers still do not
support these advanced concepts and cannot compile OTB. And even if they do, support these advanced concepts and cannot compile OTB. And even if they do,
they may produce completely undecipherable error messages due to even the they may produce completely undecipherable error messages due to even the
simplest syntax errors. If you are not familiar with templated code and simplest syntax errors.
generic programming, we recommend the two books cited above.
\subsection{Include Files and Class Definitions} \subsection{Include Files and Class Definitions}
\label{sec:IncludeFiles} \label{sec:IncludeFiles}
...@@ -205,7 +201,7 @@ specialized image processing hardware (i.e., to realize a performance ...@@ -205,7 +201,7 @@ specialized image processing hardware (i.e., to realize a performance
gain). By using the object factory mechanism, it is possible at run-time to gain). By using the object factory mechanism, it is possible at run-time to
replace the creation of a particular OTB filter with such a custom class. (Of replace the creation of a particular OTB filter with such a custom class. (Of
course, the class must provide the exact same API as the one it is course, the class must provide the exact same API as the one it is
replacing.) To do this, the user compiles her class (using the same compiler, replacing.) To do this, the user compiles their class (using the same compiler,
build options, etc.) and inserts the object code into a shared library or build options, etc.) and inserts the object code into a shared library or
DLL. The library is then placed in a directory referred to by the DLL. The library is then placed in a directory referred to by the
\code{OTB\_AUTOLOAD\_PATH} environment variable. On instantiation, the object \code{OTB\_AUTOLOAD\_PATH} environment variable. On instantiation, the object
...@@ -356,7 +352,7 @@ can trap \emph{any} OTB exception by catching ExceptionObject. ...@@ -356,7 +352,7 @@ can trap \emph{any} OTB exception by catching ExceptionObject.
\index{InvokeEvent()} \index{InvokeEvent()}
Event handling in OTB is implemented using the Subject/Observer design Event handling in OTB is implemented using the Subject/Observer design
pattern \cite{Gamma1995} (sometimes referred to as the Command/Observer pattern (sometimes referred to as the Command/Observer
design pattern). In this approach, objects indicate that they are watching design pattern). In this approach, objects indicate that they are watching
for a particular event---invoked by a particular instance--by registering for a particular event---invoked by a particular instance--by registering
with the instance that they are watching. For example, filters in OTB with the instance that they are watching. For example, filters in OTB
...@@ -432,7 +428,7 @@ Invoking methods on the same instance in different threads is to be avoided. ...@@ -432,7 +428,7 @@ Invoking methods on the same instance in different threads is to be avoided.
\index{VNL} \index{VNL}
\index{numerics} \index{numerics}
OTB; as ITK, uses the VNL numerics library to provide resources for numerical OTB, like ITK, uses the VNL numerics library to provide resources for numerical
programming combining the ease of use of packages like Mathematica and Matlab programming combining the ease of use of packages like Mathematica and Matlab
with the speed of C and the elegance of C++. It provides a C++ interface to with the speed of C and the elegance of C++. It provides a C++ interface to
the high-quality Fortran routines made available in the public domain by the high-quality Fortran routines made available in the public domain by
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include <string>
#include "otbCommandLineArgumentParser.h" #include "otbCommandLineArgumentParser.h"
#include <assert.h> #include <assert.h>
......
...@@ -21,6 +21,9 @@ ...@@ -21,6 +21,9 @@
#ifndef otbExtendedFilenameHelper_h #ifndef otbExtendedFilenameHelper_h
#define otbExtendedFilenameHelper_h #define otbExtendedFilenameHelper_h
#include <map>
#include <vector>
#include "itkObject.h" #include "itkObject.h"
#include "itkObjectFactory.h" #include "itkObjectFactory.h"
#include "OTBCommonExport.h" #include "OTBCommonExport.h"
......
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
#ifndef otbFilterWatcherBase_h #ifndef otbFilterWatcherBase_h
#define otbFilterWatcherBase_h #define otbFilterWatcherBase_h
#include <string>
#include "otbStopwatch.h" #include "otbStopwatch.h"
#include "itkCommand.h" #include "itkCommand.h"
#include "itkProcessObject.h" #include "itkProcessObject.h"
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
#ifndef otbLogger_h #ifndef otbLogger_h
#define otbLogger_h #define otbLogger_h
#include <string>
#include "itkLoggerBase.h" #include "itkLoggerBase.h"
#include "itkLogger.h" #include "itkLogger.h"
#include "OTBCommonExport.h" #include "OTBCommonExport.h"
......
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
#ifndef otbStandardOneLineFilterWatcher_h #ifndef otbStandardOneLineFilterWatcher_h
#define otbStandardOneLineFilterWatcher_h #define otbStandardOneLineFilterWatcher_h
#include <iosfwd>
#include "otbFilterWatcherBase.h" #include "otbFilterWatcherBase.h"
namespace otb namespace otb
......
...@@ -22,8 +22,12 @@ ...@@ -22,8 +22,12 @@
#ifndef otbStandardWriterWatcher_h #ifndef otbStandardWriterWatcher_h
#define otbStandardWriterWatcher_h #define otbStandardWriterWatcher_h
#include <iosfwd>
#include "otbWriterWatcherBase.h" #include "otbWriterWatcherBase.h"
#include "OTBCommonExport.h"
namespace otb namespace otb
{ {
......
...@@ -21,6 +21,9 @@ ...@@ -21,6 +21,9 @@
#ifndef otbUtils_h #ifndef otbUtils_h
#define otbUtils_h #define otbUtils_h
#include <sstream>
#include <string>
#include "itkMacro.h" #include "itkMacro.h"
#include "OTBCommonExport.h" #include "OTBCommonExport.h"
......
...@@ -22,10 +22,11 @@ ...@@ -22,10 +22,11 @@
#ifndef otbWriterWatcherBase_h #ifndef otbWriterWatcherBase_h
#define otbWriterWatcherBase_h #define otbWriterWatcherBase_h
#include "otbStopwatch.h" #include <string>
#include "itkCommand.h" #include "itkCommand.h"
#include "itkProcessObject.h" #include "itkProcessObject.h"
#include "otbStopwatch.h"
#include "OTBCommonExport.h" #include "OTBCommonExport.h"
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "otbConfigurationManager.h" #include "otbConfigurationManager.h"
#include "otbMacro.h" #include "otbMacro.h"
#include "otbLogger.h"
#include "itksys/SystemTools.hxx" #include "itksys/SystemTools.hxx"
......
...@@ -19,6 +19,15 @@ ...@@ -19,6 +19,15 @@
*/ */
#include "otbExtendedFilenameHelper.h" #include "otbExtendedFilenameHelper.h"
#include <cassert>
#include <ostream>
#include <stdexcept>
#include <string>
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>
#include "otb_boost_string_header.h" #include "otb_boost_string_header.h"
#include "otbStringUtils.h" #include "otbStringUtils.h"
......
...@@ -19,7 +19,11 @@ ...@@ -19,7 +19,11 @@
* limitations under the License. * limitations under the License.
*/ */
#include <iostream>
#include <sstream>
#include "otbStandardOneLineFilterWatcher.h" #include "otbStandardOneLineFilterWatcher.h"
#include "otbStopwatch.h"
namespace otb namespace otb
{ {
......
...@@ -19,7 +19,10 @@ ...@@ -19,7 +19,10 @@
* limitations under the License. * limitations under the License.
*/ */
#include <iostream>
#include "otbStandardWriterWatcher.h" #include "otbStandardWriterWatcher.h"
#include "otbStopwatch.h"
namespace otb namespace otb
{ {
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include "otbSystem.h" #include "otbSystem.h"
#include <string> // strdup #include <string> // strdup
#include <ctype.h> //toupper, tolower
#include <cstdlib> #include <cstdlib>
#if (defined(WIN32) || defined(WIN32CE)) && !defined(__CYGWIN__) && !defined(__MINGW32__) #if (defined(WIN32) || defined(WIN32CE)) && !defined(__CYGWIN__) && !defined(__MINGW32__)
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#include "otbUtils.h" #include "otbUtils.h"
#include <sstream>
namespace otb namespace otb
{ {
......
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
#include "vnl/vnl_vector.h" #include "vnl/vnl_vector.h"
#include <string> #include <string>
#include <typeinfo>
#include <vector>
#include "OTBImageBaseExport.h" #include "OTBImageBaseExport.h"
......
...@@ -19,6 +19,10 @@ ...@@ -19,6 +19,10 @@
* limitations under the License. * limitations under the License.
*/ */
#include <complex>
#include <sstream>
#include <string>
#if defined(_MSC_VER) #if defined(_MSC_VER)
#pragma warning ( disable : 4786 ) #pragma warning ( disable : 4786 )
#endif #endif
...@@ -29,7 +33,6 @@ ...@@ -29,7 +33,6 @@
#include "itkPoint.h" #include "itkPoint.h"
#include "itkCovariantVector.h" #include "itkCovariantVector.h"
#include "itkDiffusionTensor3D.h" #include "itkDiffusionTensor3D.h"
#include "itkImageRegionSplitter.h"
namespace otb namespace otb
{ {
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "itk_kwiml.h" #include "itk_kwiml.h"
#endif #endif
#include <set> #include <set>
#include <iosfwd>
#include "OTBStreamingExport.h" #include "OTBStreamingExport.h"
......
...@@ -19,6 +19,9 @@ ...@@ -19,6 +19,9 @@
*/ */
#include <complex>
#include <ostream>
#include "otbPipelineMemoryPrintCalculator.h" #include "otbPipelineMemoryPrintCalculator.h"
#include "otbMacro.h" #include "otbMacro.h"
......
...@@ -21,9 +21,11 @@ ...@@ -21,9 +21,11 @@
#ifndef otbVectorDataKeywordlist_h #ifndef otbVectorDataKeywordlist_h
#define otbVectorDataKeywordlist_h #define otbVectorDataKeywordlist_h
#include <iosfwd>
#include <vector>
#include "itkLightObject.h" #include "itkLightObject.h"
#include "itkObjectFactory.h" #include "itkObjectFactory.h"
#include <vector>
#if defined(__GNUC__) || defined(__clang__) #if defined(__GNUC__) || defined(__clang__)
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow" #pragma GCC diagnostic ignored "-Wshadow"
......