OTB  9.0.0
Orfeo Toolbox
otbGeometriesSource.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2022 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbGeometriesSource_h
22 #define otbGeometriesSource_h
23 
24 #include <boost/noncopyable.hpp>
25 #include "itkProcessObject.h"
26 #include "itkMacro.h"
27 
28 #include "OTBGdalAdaptersExport.h"
29 
30 // Forward declarations
31 namespace otb
32 {
33 namespace ogr
34 {
35 class DataSource;
36 class Layer;
37 } // ogr namespace
38 class GeometriesSet;
39 } // otb namespace
40 
45 namespace otb
46 {
47 
72 class OTBGdalAdapters_EXPORT GeometriesSource : public itk::ProcessObject, boost::noncopyable
73 {
74 public:
75 
79  typedef itk::ProcessObject Superclass;
80  typedef itk::SmartPointer<Self> Pointer;
81  typedef itk::SmartPointer<const Self> ConstPointer;
82  typedef itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType;
84 
88  // typedef GeometriesSet::Pointer OutputGeometriesPointer;
90 
91 
94 
96  itkNewMacro(Self);
97 
99  itkTypeMacro(GeometriesSource, itk::ProcessObject);
101 
104 
106  virtual OutputGeometriesType* GetOutput(void);
107 
110 
119  virtual void SetOutput(OutputGeometriesType* output, DataObjectPointerArraySizeType idx = 0);
120  using Superclass::SetOutput;
122 
128  void PrepareOutputs() override;
129 
130 protected:
135 
139  ~GeometriesSource() override;
140 
146  virtual void DoAllocateOutputs();
147 };
148 } // end namespace otb
150 
151 #endif // otbGeometriesSource_h
otb::GeometriesSource
Definition: otbGeometriesSource.h:72
otb::GeometriesSource::DataObjectPointerArraySizeType
itk::ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
Definition: otbGeometriesSource.h:82
otb::GeometriesSet
Common ITK type to manipulate any set of geometries: a otb::ogr::DataSource, or a otb::ogr::Layer.
Definition: otbGeometriesSet.h:38
otb
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
Definition: otbJoinContainer.h:32
otb::ogr::DataSource
Collection of geometric objects.
Definition: otbOGRDataSourceWrapper.h:83
otb::GeometriesSource::Pointer
itk::SmartPointer< Self > Pointer
Definition: otbGeometriesSource.h:80
otb::GeometriesSource::Superclass
itk::ProcessObject Superclass
Definition: otbGeometriesSource.h:79
otb::GeometriesSource::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition: otbGeometriesSource.h:81
otb::GeometriesSource::OutputGeometriesType
GeometriesSet OutputGeometriesType
Definition: otbGeometriesSource.h:87
otb::GeometriesSource::Self
GeometriesSource Self
Definition: otbGeometriesSource.h:78
otb::ogr::Layer
Layer of geometric objects.
Definition: otbOGRLayerWrapper.h:80