/usr/include/OTB-5.8/otbGeometriesSource.h is in libotb-dev 5.8.0+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | /*=========================================================================
Program: ORFEO Toolbox
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
See OTBCopyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef otbGeometriesSource_h
#define otbGeometriesSource_h
#include <boost/noncopyable.hpp>
#include "itkProcessObject.h"
#include "itkMacro.h"
#include "OTBGdalAdaptersExport.h"
// Forward declarations
namespace otb {
namespace ogr {
class DataSource;
class Layer;
} // ogr namespace
class GeometriesSet;
} // otb namespace
/**\defgroup GeometriesFilters Filters of geometries sets
* \ingroup gGeometry Filters
* Filters of geometries sets.
*/
namespace otb
{
/**\ingroup GeometriesFilters
* \class GeometriesSource
* Source of geometries & Root of the geometries filters hierarchy.
* This class provides a kind of \em reader for geometries sets.
*
* Unlike others filters, the \em output has to be built from outside and given
* to the \c GeometriesSource. If no \em output has been defined at the moment
* the filter begins processing, by default the \c ogr::DataSource will have
* have an \em in-memory storage.
*
* \internal
* This particular behaviour is the consequence that, to exist, a \c
* ogr::DataSource needs to know how it is stored. We could have permitted to
* work on an \em in-memory \c ogr::DataSource, and then store the result into
* another \em on-disk \c ogr::DataSource. This wouldn't have been efficient at
* all. Hence the design adopted.
*
* \note As OGR data sources don't support multiple re-rentrant access, a \c
* ogr::DataSource can't be grafted, and as a consequence, \c GeometriesSource
* subtypes can't be grafted as well.
* \since OTB v 3.14.0
*
* \ingroup OTBGdalAdapters
*/
class OTBGdalAdapters_EXPORT GeometriesSource : public itk::ProcessObject, boost::noncopyable
{
public:
/**\name Standard ITK typedefs */
//@{
typedef GeometriesSource Self;
typedef itk::ProcessObject Superclass;
typedef itk::SmartPointer<Self> Pointer;
typedef itk::SmartPointer<const Self> ConstPointer;
typedef itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
//@}
/**\name I/O typedefs */
//@{
typedef GeometriesSet OutputGeometriesType;
// typedef GeometriesSet::Pointer OutputGeometriesPointer;
//@}
/**\name Standard macros */
//@{
/** Method for creation through the object factory. */
itkNewMacro(Self);
/** Run-time type information (and related methods). */
itkTypeMacro(GeometriesSource, itk::ProcessObject);
//@}
/**\name GeometriesSet Output property. */
//@{
/** Overriding \c GetOutput() functions */
virtual OutputGeometriesType* GetOutput(void);
/** Overriding \c GetOutput() functions */
virtual OutputGeometriesType* GetOutput(DataObjectPointerArraySizeType idx);
/**
* Output mutator.
* \param[in,out] output \c GeometriesSource where output result will be
* written.
* \param[in] idx index of the output assigned to the \c GeometriesSource.
*
* \throw std::bad_alloc if no new output can be added.
*/
virtual void SetOutput(OutputGeometriesType* output, DataObjectPointerArraySizeType idx = 0);
using Superclass::SetOutput;
//@}
/** \c ProcessObject hook Specialized for \c GeometriesSource.
* This function makes sure the output(s) is (/are) allocated before
* initializing them.
* \post <tt>GetOutput() != NULL</tt>
*/
void PrepareOutputs() ITK_OVERRIDE;
protected:
/** Default constructor.
* \post Required number of outputs == 1
*/
GeometriesSource();
/** Destructor.
* Does nothing.
*/
~GeometriesSource() ITK_OVERRIDE;
/** Ensures that the output geometries are allocated before processing.
* If the output hasn't been set, at this point, the default output geometries
* set will be an <em>in-memory</em> \c ogr::DataSource.
* \post <tt>GetOutput() != NULL</tt>
*/
virtual void DoAllocateOutputs();
};
} // end namespace otb
#endif // otbGeometriesSource_h
|