Orfeo Toolbox  4.0
otbVectorDataTransformFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ORFEO Toolbox
4  Language: C++
5  Date: $Date$
6  Version: $Revision$
7 
8 
9  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
10  See OTBCopyright.txt for details.
11 
12 
13  This software is distributed WITHOUT ANY WARRANTY; without even
14  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  PURPOSE. See the above copyright notices for more information.
16 
17 =========================================================================*/
18 #ifndef __otbVectorDataTransformFilter_h
19 #define __otbVectorDataTransformFilter_h
20 
22 #include "itkTransform.h"
23 #include "otbImageKeywordlist.h"
24 #include "otbVectorData.h"
25 
26 namespace otb
27 {
28 
39 template <class TInputVectorData, class TOutputVectorData>
40 class ITK_EXPORT VectorDataTransformFilter :
41  public otb::VectorDataToVectorDataFilter<TInputVectorData, TOutputVectorData>
42 {
43 
44 public:
48  <TInputVectorData, TOutputVectorData> Superclass;
51 
52  typedef TInputVectorData InputVectorDataType;
53  typedef TOutputVectorData OutputVectorDataType;
54  typedef typename TInputVectorData::ConstPointer InputVectorDataPointer;
55  typedef typename TOutputVectorData::Pointer OutputVectorDataPointer;
56 
60 
63 
64  typedef typename InputVectorDataType::DataNodePointerType InputDataNodePointerType;
65  typedef typename OutputVectorDataType::DataNodeType OutputDataNodeType;
66  typedef typename OutputVectorDataType::DataNodePointerType OutputDataNodePointerType;
67  typedef typename OutputVectorDataType::DataTreePointerType OutputDataTreePointerType;
68 
69  typedef typename InputVectorDataType::DataTreeType::TreeNodeType InputInternalTreeNodeType;
70  typedef typename OutputVectorDataType::DataTreeType::TreeNodeType OutputInternalTreeNodeType;
71  typedef typename InputInternalTreeNodeType::ChildrenListType InputChildrenListType;
72 
73 
74  typedef typename OutputDataNodeType::PointType PointType;
75  typedef typename OutputDataNodeType::LineType LineType;
76  typedef typename OutputDataNodeType::LineConstPointerType LineConstPointerType;
77  typedef typename OutputDataNodeType::LinePointerType LinePointerType;
78 
79  typedef typename OutputDataNodeType::PolygonType PolygonType;
80  typedef typename OutputDataNodeType::PolygonConstPointerType PolygonConstPointerType;
81  typedef typename OutputDataNodeType::PolygonPointerType PolygonPointerType;
82 
83  typedef typename OutputDataNodeType::PolygonListType PolygonListType;
84  typedef typename OutputDataNodeType::PolygonListConstPointerType PolygonListConstPointerType;
85  typedef typename OutputDataNodeType::PolygonListPointerType PolygonListPointerType;
86 
87 
89  itkNewMacro(Self);
90 
93 
95  itkSetObjectMacro(Transform, GenericTransformType);
96  itkGetObjectMacro(Transform, GenericTransformType);
97 
98 protected:
101 
102  PointType ProcessPoint(PointType point) const;
103  LinePointerType ProcessLine(LinePointerType line) const;
104  PolygonPointerType ProcessPolygon(PolygonPointerType polygon) const;
105  PolygonListPointerType ProcessPolygonList(PolygonListPointerType polygonList) const;
106 
107  void GenerateData(void);
108 
109 private:
110  VectorDataTransformFilter(const Self&); //purposely not implemented
111  void operator=(const Self&); //purposely not implemented
112 
114 };
115 
116 } // end namespace otb
117 
118 #ifndef ITK_MANUAL_INSTANTIATION
120 #endif
121 
122 #endif

Generated at Sat Mar 8 2014 16:24:45 for Orfeo Toolbox with doxygen 1.8.3.1