Orfeo Toolbox  4.0
otbDEMCaracteristicsExtractor.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  Some parts of this code are derived from ITK. See ITKCopyright.txt
13  for details.
14 
15 
16  This software is distributed WITHOUT ANY WARRANTY; without even
17  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
18  PURPOSE. See the above copyright notices for more information.
19 
20 =========================================================================*/
21 #ifndef __otbDEMCaracteristicsExtractor_h
22 #define __otbDEMCaracteristicsExtractor_h
23 
24 #include "otbImage.h"
25 #include "otbVectorImage.h"
26 #include "itkImageToImageFilter.h"
30 #include "itkCovariantVector.h"
31 #include "itkAtan2ImageFilter.h"
32 #include "itkAtanImageFilter.h"
34 #include "itkMultiplyImageFilter.h"
35 #include "itkAcosImageFilter.h"
36 #include "itkCosImageFilter.h"
37 #include "itkSinImageFilter.h"
39 #include "itkAddImageFilter.h"
40 
41 #include "itkGradientImageFilter.h"
42 
43 namespace otb
44 {
45 
55 template <class TInputImage, class TOutputImage>
56 class ITK_EXPORT DEMCaracteristicsExtractor :
57  public itk::ImageToImageFilter<TInputImage, TOutputImage>
58 {
59 public:
61  itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension);
62  itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension);
63 
65  typedef TInputImage InputImageType;
66  typedef TOutputImage OutputImageType;
67 
73 
75  itkNewMacro(Self);
76 
78  itkTypeMacro(DEMCaracteristicsExtractor, ImageToImageFilter);
79 
81  typedef typename InputImageType::PixelType InputPixelType;
82  typedef typename InputImageType::InternalPixelType InputInternalPixelType;
83  typedef typename OutputImageType::PixelType OutputPixelType;
84  typedef typename OutputImageType::InternalPixelType OutputInternalPixelType;
87 
97 
106 
108  OutputImageType* GetSlopOutput()
109  {
110  return static_cast<OutputImageType*>(this->itk::ProcessObject::GetOutput(0));
111  }
112 
114  OutputImageType* GetAspectOutput()
115  {
116  return static_cast<OutputImageType*>(this->itk::ProcessObject::GetOutput(1));
117  }
119  OutputImageType* GetIncidenceOutput()
120  {
121  return static_cast<OutputImageType*>(this->itk::ProcessObject::GetOutput(2));
122  }
123 
125  OutputImageType* GetExitanceOutput()
126  {
127  return static_cast<OutputImageType*>(this->itk::ProcessObject::GetOutput(3));
128  }
129 
132  itkSetMacro(SolarAngle, double);
133  itkGetConstMacro(SolarAngle, double);
135  itkSetMacro(SolarAzimut, double);
136  itkGetConstMacro(SolarAzimut, double);
138  itkSetMacro(ViewAngle, double);
139  itkGetConstMacro(ViewAngle, double);
141  itkSetMacro(ViewAzimut, double);
142  itkGetConstMacro(ViewAzimut, double);
143 
144 protected:
146  virtual ~DEMCaracteristicsExtractor();
148  void PrintSelf(std::ostream& os, itk::Indent indent) const;
149 
150  void GenerateData();
151 
152 private:
155  double m_SolarAngle;
159  double m_ViewAngle;
161  double m_ViewAzimut;
162 };
163 
164 } // end namespace otb
165 
166 #ifndef OTB_MANUAL_INSTANTIATION
168 #endif
169 
170 #endif

Generated at Sat Mar 8 2014 15:53:25 for Orfeo Toolbox with doxygen 1.8.3.1