OTB  6.7.0
Orfeo Toolbox
otbGaborFilterGenerator.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1999-2011 Insight Software Consortium
3  * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
4  *
5  * This file is part of Orfeo Toolbox
6  *
7  * https://www.orfeo-toolbox.org/
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21 
22 #ifndef otbGaborFilterGenerator_h
23 #define otbGaborFilterGenerator_h
24 
25 #include "itkObject.h"
26 #include "itkObjectFactory.h"
27 
28 #include "itkArray.h"
29 #include "itkSize.h"
30 
31 namespace otb
32 {
33 
72 template <class TPrecision>
74  : public itk::Object
75 {
76 public:
77  // Standard class typedefs
82 
83  // Standard new and type macro
84  itkNewMacro(Self);
85  itkTypeMacro(GaborFilterGenerator, Object);
86 
87  // useful typedefs
88  typedef TPrecision PrecisionType;
91 
93  itkSetMacro(A, PrecisionType);
94  itkGetMacro(A, PrecisionType);
95  itkSetMacro(B, PrecisionType);
96  itkGetMacro(B, PrecisionType);
97  itkSetMacro(Theta, PrecisionType);
98  itkGetMacro(Theta, PrecisionType);
99  itkSetMacro(Phi, PrecisionType);
100  itkGetMacro(Phi, PrecisionType);
101  itkSetMacro(U0, PrecisionType);
102  itkGetMacro(U0, PrecisionType);
103  itkSetMacro(V0, PrecisionType);
104  itkGetMacro(V0, PrecisionType);
105  itkSetMacro(Radius, RadiusType);
106  itkGetConstReferenceMacro(Radius, RadiusType);
108 
110  const ArrayType& GetFilter();
111 
112 protected:
115 
117  ~GaborFilterGenerator() override {}
118 
120  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
121 
123  void GenerateFilter();
124 
127  void Modified() const override;
128 
129 private:
130  GaborFilterGenerator(const Self&) = delete;
131  void operator =(const Self&) = delete;
132 
135 
143 
146 
149 
150 };
151 } // end namespace otb
152 
153 #ifndef OTB_MANUAL_INSTANTIATION
155 #endif
156 
157 #endif
itk::Array< PrecisionType > ArrayType
itk::SmartPointer< const Self > ConstPointer
void operator=(const Self &)=delete
itk::SmartPointer< Self > Pointer
void PrintSelf(std::ostream &os, itk::Indent indent) const override