OTB  6.7.0
Orfeo Toolbox
mvdImageSettingsInterface.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2019 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 mvdImageSettingsInterface_h
22 #define mvdImageSettingsInterface_h
23 
24 //
25 // Configuration include.
27 #include "ConfigureMonteverdi.h"
28 
29 #include "OTBMonteverdiCoreExport.h"
30 
31 /*****************************************************************************/
32 /* INCLUDE SECTION */
33 
34 //
35 // Qt includes (sorted by alphabetic order)
37 
38 //
39 // System includes (sorted by alphabetic order)
40 
41 //
42 // ITK includes (sorted by alphabetic order)
43 
44 //
45 // OTB includes (sorted by alphabetic order)
46 
47 //
48 // Monteverdi includes (sorted by alphabetic order)
49 
50 
51 /*****************************************************************************/
52 /* PRE-DECLARATION SECTION */
53 
54 //
55 // External classes pre-declaration.
56 namespace
57 {
58 }
59 
60 namespace mvd
61 {
62 //
63 // Internal classes pre-declaration.
64 class ImageSettings;
65 
66 /*****************************************************************************/
67 /* CLASS DEFINITION SECTION */
68 
76 class OTBMonteverdiCore_EXPORT ImageSettingsInterface
77 {
78 
79  /*-[ PUBLIC SECTION ]------------------------------------------------------*/
80 
81 //
82 // Public methods.
83 public:
84 
86  virtual ~ImageSettingsInterface();
87 
89  inline const ImageSettings * GetSettings() const;
90 
92  inline ImageSettings * GetSettings();
93 
95  inline bool HasSettings() const;
96 
98 #if 0
99  inline
100  template< typename T >
101  const T * GetSettings() const;
102 #endif
103 
106  void UpdateSettings();
107 
109  void SetSettings( ImageSettings * );
110 
111 
112  /*-[ PROTECTED SECTION ]---------------------------------------------------*/
113 
114 //
115 // Protected methods.
116 protected:
117 
120 
121 //
122 // Protected attributes.
123 protected:
124 
125  /*-[ PRIVATE SECTION ]-----------------------------------------------------*/
126 
127 //
128 // Private methods.
129 private:
132  virtual void virtual_UpdateSettings();
133 
136  virtual void virtual_SetSettings( ImageSettings * );
137 
138 //
139 // Private attributes.
140 private:
141 
144 };
145 
146 } // end namespace 'mvd'.
147 
148 /*****************************************************************************/
149 /* INLINE SECTION */
150 
151 //
152 // Qt includes (sorted by alphabetic order)
154 
155 //
156 // System includes (sorted by alphabetic order)
157 
158 //
159 // ITK includes (sorted by alphabetic order)
160 
161 //
162 // OTB includes (sorted by alphabetic order)
163 
164 //
165 // Monteverdi includes (sorted by alphabetic order)
166 
167 namespace mvd
168 {
169 
170 /*****************************************************************************/
171 inline
172 const ImageSettings *
175 {
176  return m_Settings;
177 }
178 
179 /*****************************************************************************/
180 inline
184 {
185  return m_Settings;
186 }
187 
188 /*****************************************************************************/
189 #if 0
190 
191 template< typename T >
192 inline
193 const ImageSettings *
195 ::GetSettings() const
196 {
197  return dynamic_cast< T >( m_Settings );
198 }
199 
200 #endif
201 
202 /*****************************************************************************/
203 inline
204 bool
207 {
208  return m_Settings!=0;
209 }
210 
211 } // end namespace 'mvd'
212 
213 #endif // mvdImageSettingsInterface_h
const ImageSettings * GetSettings() const