IAccess.hpp
1 ///=============================================================================
2 /// \file
3 /// \brief By inheriting from IAcc, IGroup provides access to its members by name.
4 /// \author WK
5 /// \date 22.02.2020
6 ///=============================================================================
7 
8 namespace opals
9 {
10  namespace opts
11  {
12 
13  /// Defines global options
14  namespace glob
15  {
16  /// Provides access method(s) to the first given option with name(s) according to that option's enumerator.
17  /** \tparam name_ The enumerator of the option to provide access to.
18  \tparam Opts The parameter pack of the current and remaining options. IAccS derives from itself for the remaining options. */
19  template<Names, class...>
20  struct IAccS;
21 
22  /// For an empty parameter pack, IAcc_ defines IBase as its Type.
23  template<class...>
24  struct IAcc_
25  {
26  using Type = IBase;
27  };
28 
29  /// For a non-empty parameter pack, IAcc_ defines IAccS as its Type, specialized for the first and remaining options.
30  template<class Opt, class... Opts>
31  struct IAcc_<Opt, Opts...>
32  {
33  using Type = IAccS<Opt::Name::value, Opt, Opts...>;
34  };
35 
36  /// The specialization of IAcc_ according to the given options.
37  template<class... Opts>
38  using IAcc = typename IAcc_<Opts...>::Type;
39 
40  /// Partial specialization for Names::temp
41  template<class Opt, class... Opts>
42  struct IAccS<Names::temp , Opt, Opts...> :
43  IAcc<Opts...>
44  {
45  virtual const Opt& temp () const = 0;
46  virtual Opt& temp () = 0;
47  };
48 
49  /// Partial specialization for Names::force_coord_ref_sys
50  template<class Opt, class... Opts>
51  struct IAccS<Names::force_coord_ref_sys , Opt, Opts...> :
52  IAcc<Opts...>
53  {
54  virtual const Opt& force_coord_ref_sys () const = 0;
55  virtual Opt& force_coord_ref_sys () = 0;
56  };
57 
58  /// Partial specialization for Names::coord_ref_sys
59  template<class Opt, class... Opts>
60  struct IAccS<Names::coord_ref_sys , Opt, Opts...> :
61  IAcc<Opts...>
62  {
63  virtual const Opt& coord_ref_sys () const = 0;
64  virtual Opt& coord_ref_sys () = 0;
65  };
66 
67  /// Partial specialization for Names::coord_system
68  template<class Opt, class... Opts>
69  struct IAccS<Names::coord_system , Opt, Opts...> :
70  IAcc<Opts...>
71  {
72  virtual const Opt& coord_system () const = 0;
73  virtual Opt& coord_system () = 0;
74  };
75 
76  /// Partial specialization for Names::points_in_memory
77  template<class Opt, class... Opts>
78  struct IAccS<Names::points_in_memory , Opt, Opts...> :
79  IAcc<Opts...>
80  {
81  virtual const Opt& points_in_memory () const = 0;
82  virtual Opt& points_in_memory () = 0;
83  };
84 
85  /// Partial specialization for Names::max_log_file_mb
86  template<class Opt, class... Opts>
87  struct IAccS<Names::max_log_file_mb , Opt, Opts...> :
88  IAcc<Opts...>
89  {
90  virtual const Opt& max_log_file_mb () const = 0;
91  virtual Opt& max_log_file_mb () = 0;
92  };
93 
94  /// Partial specialization for Names::oformat_grid
95  template<class Opt, class... Opts>
96  struct IAccS<Names::oformat_grid , Opt, Opts...> :
97  IAcc<Opts...>
98  {
99  virtual const Opt& oformat_grid () const = 0;
100  virtual Opt& oformat_grid () = 0;
101  };
102 
103  /// Partial specialization for Names::oformat_vector
104  template<class Opt, class... Opts>
105  struct IAccS<Names::oformat_vector , Opt, Opts...> :
106  IAcc<Opts...>
107  {
108  virtual const Opt& oformat_vector () const = 0;
109  virtual Opt& oformat_vector () = 0;
110  };
111 
112  /// Partial specialization for Names::oformat_tin
113  template<class Opt, class... Opts>
114  struct IAccS<Names::oformat_tin , Opt, Opts...> :
115  IAcc<Opts...>
116  {
117  virtual const Opt& oformat_tin () const = 0;
118  virtual Opt& oformat_tin () = 0;
119  };
120 
121  /// Partial specialization for Names::oformat_lidar
122  template<class Opt, class... Opts>
123  struct IAccS<Names::oformat_lidar , Opt, Opts...> :
124  IAcc<Opts...>
125  {
126  virtual const Opt& oformat_lidar () const = 0;
127  virtual Opt& oformat_lidar () = 0;
128  };
129 
130  /// Partial specialization for Names::data_type_grid
131  template<class Opt, class... Opts>
132  struct IAccS<Names::data_type_grid , Opt, Opts...> :
133  IAcc<Opts...>
134  {
135  virtual const Opt& data_type_grid () const = 0;
136  virtual Opt& data_type_grid () = 0;
137  };
138 
139  /// Partial specialization for Names::create_option
140  template<class Opt, class... Opts>
141  struct IAccS<Names::create_option , Opt, Opts...> :
142  IAcc<Opts...>
143  {
144  virtual const Opt& create_option () const = 0;
145  virtual Opt& create_option () = 0;
146  };
147 
148  /// Partial specialization for Names::postfix_z
149  template<class Opt, class... Opts>
150  struct IAccS<Names::postfix_z , Opt, Opts...> :
151  IAcc<Opts...>
152  {
153  virtual const Opt& postfix_z () const = 0;
154  virtual Opt& postfix_z () = 0;
155  };
156 
157  /// Partial specialization for Names::postfix_attribute
158  template<class Opt, class... Opts>
159  struct IAccS<Names::postfix_attribute , Opt, Opts...> :
160  IAcc<Opts...>
161  {
162  virtual const Opt& postfix_attribute () const = 0;
163  virtual Opt& postfix_attribute () = 0;
164  };
165 
166  /// Partial specialization for Names::postfix_min
167  template<class Opt, class... Opts>
168  struct IAccS<Names::postfix_min , Opt, Opts...> :
169  IAcc<Opts...>
170  {
171  virtual const Opt& postfix_min () const = 0;
172  virtual Opt& postfix_min () = 0;
173  };
174 
175  /// Partial specialization for Names::postfix_max
176  template<class Opt, class... Opts>
177  struct IAccS<Names::postfix_max , Opt, Opts...> :
178  IAcc<Opts...>
179  {
180  virtual const Opt& postfix_max () const = 0;
181  virtual Opt& postfix_max () = 0;
182  };
183 
184  /// Partial specialization for Names::postfix_range
185  template<class Opt, class... Opts>
186  struct IAccS<Names::postfix_range , Opt, Opts...> :
187  IAcc<Opts...>
188  {
189  virtual const Opt& postfix_range () const = 0;
190  virtual Opt& postfix_range () = 0;
191  };
192 
193  /// Partial specialization for Names::postfix_nmin
194  template<class Opt, class... Opts>
195  struct IAccS<Names::postfix_nmin , Opt, Opts...> :
196  IAcc<Opts...>
197  {
198  virtual const Opt& postfix_nmin () const = 0;
199  virtual Opt& postfix_nmin () = 0;
200  };
201 
202  /// Partial specialization for Names::postfix_nmax
203  template<class Opt, class... Opts>
204  struct IAccS<Names::postfix_nmax , Opt, Opts...> :
205  IAcc<Opts...>
206  {
207  virtual const Opt& postfix_nmax () const = 0;
208  virtual Opt& postfix_nmax () = 0;
209  };
210 
211  /// Partial specialization for Names::postfix_rms
212  template<class Opt, class... Opts>
213  struct IAccS<Names::postfix_rms , Opt, Opts...> :
214  IAcc<Opts...>
215  {
216  virtual const Opt& postfix_rms () const = 0;
217  virtual Opt& postfix_rms () = 0;
218  };
219 
220  /// Partial specialization for Names::postfix_stdDev
221  template<class Opt, class... Opts>
222  struct IAccS<Names::postfix_stdDev , Opt, Opts...> :
223  IAcc<Opts...>
224  {
225  virtual const Opt& postfix_stdDev () const = 0;
226  virtual Opt& postfix_stdDev () = 0;
227  };
228 
229  /// Partial specialization for Names::postfix_var
230  template<class Opt, class... Opts>
231  struct IAccS<Names::postfix_var , Opt, Opts...> :
232  IAcc<Opts...>
233  {
234  virtual const Opt& postfix_var () const = 0;
235  virtual Opt& postfix_var () = 0;
236  };
237 
238  /// Partial specialization for Names::postfix_stdDevMad
239  template<class Opt, class... Opts>
240  struct IAccS<Names::postfix_stdDevMad , Opt, Opts...> :
241  IAcc<Opts...>
242  {
243  virtual const Opt& postfix_stdDevMad () const = 0;
244  virtual Opt& postfix_stdDevMad () = 0;
245  };
246 
247  /// Partial specialization for Names::postfix_mean
248  template<class Opt, class... Opts>
249  struct IAccS<Names::postfix_mean , Opt, Opts...> :
250  IAcc<Opts...>
251  {
252  virtual const Opt& postfix_mean () const = 0;
253  virtual Opt& postfix_mean () = 0;
254  };
255 
256  /// Partial specialization for Names::postfix_median
257  template<class Opt, class... Opts>
258  struct IAccS<Names::postfix_median , Opt, Opts...> :
259  IAcc<Opts...>
260  {
261  virtual const Opt& postfix_median () const = 0;
262  virtual Opt& postfix_median () = 0;
263  };
264 
265  /// Partial specialization for Names::postfix_sum
266  template<class Opt, class... Opts>
267  struct IAccS<Names::postfix_sum , Opt, Opts...> :
268  IAcc<Opts...>
269  {
270  virtual const Opt& postfix_sum () const = 0;
271  virtual Opt& postfix_sum () = 0;
272  };
273 
274  /// Partial specialization for Names::postfix_minority
275  template<class Opt, class... Opts>
276  struct IAccS<Names::postfix_minority , Opt, Opts...> :
277  IAcc<Opts...>
278  {
279  virtual const Opt& postfix_minority () const = 0;
280  virtual Opt& postfix_minority () = 0;
281  };
282 
283  /// Partial specialization for Names::postfix_majority
284  template<class Opt, class... Opts>
285  struct IAccS<Names::postfix_majority , Opt, Opts...> :
286  IAcc<Opts...>
287  {
288  virtual const Opt& postfix_majority () const = 0;
289  virtual Opt& postfix_majority () = 0;
290  };
291 
292  /// Partial specialization for Names::postfix_shannon_entropy
293  template<class Opt, class... Opts>
294  struct IAccS<Names::postfix_shannon_entropy , Opt, Opts...> :
295  IAcc<Opts...>
296  {
297  virtual const Opt& postfix_shannon_entropy () const = 0;
298  virtual Opt& postfix_shannon_entropy () = 0;
299  };
300 
301  /// Partial specialization for Names::postfix_quadratic_entropy
302  template<class Opt, class... Opts>
303  struct IAccS<Names::postfix_quadratic_entropy , Opt, Opts...> :
304  IAcc<Opts...>
305  {
306  virtual const Opt& postfix_quadratic_entropy () const = 0;
307  virtual Opt& postfix_quadratic_entropy () = 0;
308  };
309 
310  /// Partial specialization for Names::postfix_center
311  template<class Opt, class... Opts>
312  struct IAccS<Names::postfix_center , Opt, Opts...> :
313  IAcc<Opts...>
314  {
315  virtual const Opt& postfix_center () const = 0;
316  virtual Opt& postfix_center () = 0;
317  };
318 
319  /// Partial specialization for Names::postfix_pdens
320  template<class Opt, class... Opts>
321  struct IAccS<Names::postfix_pdens , Opt, Opts...> :
322  IAcc<Opts...>
323  {
324  virtual const Opt& postfix_pdens () const = 0;
325  virtual Opt& postfix_pdens () = 0;
326  };
327 
328  /// Partial specialization for Names::postfix_pcount
329  template<class Opt, class... Opts>
330  struct IAccS<Names::postfix_pcount , Opt, Opts...> :
331  IAcc<Opts...>
332  {
333  virtual const Opt& postfix_pcount () const = 0;
334  virtual Opt& postfix_pcount () = 0;
335  };
336 
337  /// Partial specialization for Names::postfix_quantile
338  template<class Opt, class... Opts>
339  struct IAccS<Names::postfix_quantile , Opt, Opts...> :
340  IAcc<Opts...>
341  {
342  virtual const Opt& postfix_quantile () const = 0;
343  virtual Opt& postfix_quantile () = 0;
344  };
345 
346  /// Partial specialization for Names::postfix_sigmaz
347  template<class Opt, class... Opts>
348  struct IAccS<Names::postfix_sigmaz , Opt, Opts...> :
349  IAcc<Opts...>
350  {
351  virtual const Opt& postfix_sigmaz () const = 0;
352  virtual Opt& postfix_sigmaz () = 0;
353  };
354 
355  /// Partial specialization for Names::postfix_sigma0
356  template<class Opt, class... Opts>
357  struct IAccS<Names::postfix_sigma0 , Opt, Opts...> :
358  IAcc<Opts...>
359  {
360  virtual const Opt& postfix_sigma0 () const = 0;
361  virtual Opt& postfix_sigma0 () = 0;
362  };
363 
364  /// Partial specialization for Names::postfix_excen
365  template<class Opt, class... Opts>
366  struct IAccS<Names::postfix_excen , Opt, Opts...> :
367  IAcc<Opts...>
368  {
369  virtual const Opt& postfix_excen () const = 0;
370  virtual Opt& postfix_excen () = 0;
371  };
372 
373  /// Partial specialization for Names::postfix_slope
374  template<class Opt, class... Opts>
375  struct IAccS<Names::postfix_slope , Opt, Opts...> :
376  IAcc<Opts...>
377  {
378  virtual const Opt& postfix_slope () const = 0;
379  virtual Opt& postfix_slope () = 0;
380  };
381 
382  /// Partial specialization for Names::postfix_slpPerc
383  template<class Opt, class... Opts>
384  struct IAccS<Names::postfix_slpPerc , Opt, Opts...> :
385  IAcc<Opts...>
386  {
387  virtual const Opt& postfix_slpPerc () const = 0;
388  virtual Opt& postfix_slpPerc () = 0;
389  };
390 
391  /// Partial specialization for Names::postfix_slpDeg
392  template<class Opt, class... Opts>
393  struct IAccS<Names::postfix_slpDeg , Opt, Opts...> :
394  IAcc<Opts...>
395  {
396  virtual const Opt& postfix_slpDeg () const = 0;
397  virtual Opt& postfix_slpDeg () = 0;
398  };
399 
400  /// Partial specialization for Names::postfix_slpRad
401  template<class Opt, class... Opts>
402  struct IAccS<Names::postfix_slpRad , Opt, Opts...> :
403  IAcc<Opts...>
404  {
405  virtual const Opt& postfix_slpRad () const = 0;
406  virtual Opt& postfix_slpRad () = 0;
407  };
408 
409  /// Partial specialization for Names::postfix_expos
410  template<class Opt, class... Opts>
411  struct IAccS<Names::postfix_expos , Opt, Opts...> :
412  IAcc<Opts...>
413  {
414  virtual const Opt& postfix_expos () const = 0;
415  virtual Opt& postfix_expos () = 0;
416  };
417 
418  /// Partial specialization for Names::postfix_exposRad
419  template<class Opt, class... Opts>
420  struct IAccS<Names::postfix_exposRad , Opt, Opts...> :
421  IAcc<Opts...>
422  {
423  virtual const Opt& postfix_exposRad () const = 0;
424  virtual Opt& postfix_exposRad () = 0;
425  };
426 
427  /// Partial specialization for Names::postfix_exposDeg
428  template<class Opt, class... Opts>
429  struct IAccS<Names::postfix_exposDeg , Opt, Opts...> :
430  IAcc<Opts...>
431  {
432  virtual const Opt& postfix_exposDeg () const = 0;
433  virtual Opt& postfix_exposDeg () = 0;
434  };
435 
436  /// Partial specialization for Names::postfix_nx
437  template<class Opt, class... Opts>
438  struct IAccS<Names::postfix_nx , Opt, Opts...> :
439  IAcc<Opts...>
440  {
441  virtual const Opt& postfix_nx () const = 0;
442  virtual Opt& postfix_nx () = 0;
443  };
444 
445  /// Partial specialization for Names::postfix_ny
446  template<class Opt, class... Opts>
447  struct IAccS<Names::postfix_ny , Opt, Opts...> :
448  IAcc<Opts...>
449  {
450  virtual const Opt& postfix_ny () const = 0;
451  virtual Opt& postfix_ny () = 0;
452  };
453 
454  /// Partial specialization for Names::postfix_openness
455  template<class Opt, class... Opts>
456  struct IAccS<Names::postfix_openness , Opt, Opts...> :
457  IAcc<Opts...>
458  {
459  virtual const Opt& postfix_openness () const = 0;
460  virtual Opt& postfix_openness () = 0;
461  };
462 
463  /// Partial specialization for Names::column_name_alias
464  template<class Opt, class... Opts>
465  struct IAccS<Names::column_name_alias , Opt, Opts...> :
466  IAcc<Opts...>
467  {
468  virtual const Opt& column_name_alias () const = 0;
469  virtual Opt& column_name_alias () = 0;
470  };
471 
472  /// Partial specialization for Names::postfix_kmin
473  template<class Opt, class... Opts>
474  struct IAccS<Names::postfix_kmin , Opt, Opts...> :
475  IAcc<Opts...>
476  {
477  virtual const Opt& postfix_kmin () const = 0;
478  virtual Opt& postfix_kmin () = 0;
479  };
480 
481  /// Partial specialization for Names::postfix_kmax
482  template<class Opt, class... Opts>
483  struct IAccS<Names::postfix_kmax , Opt, Opts...> :
484  IAcc<Opts...>
485  {
486  virtual const Opt& postfix_kmax () const = 0;
487  virtual Opt& postfix_kmax () = 0;
488  };
489 
490  /// Partial specialization for Names::postfix_kmean
491  template<class Opt, class... Opts>
492  struct IAccS<Names::postfix_kmean , Opt, Opts...> :
493  IAcc<Opts...>
494  {
495  virtual const Opt& postfix_kmean () const = 0;
496  virtual Opt& postfix_kmean () = 0;
497  };
498 
499  /// Partial specialization for Names::postfix_kgauss
500  template<class Opt, class... Opts>
501  struct IAccS<Names::postfix_kgauss , Opt, Opts...> :
502  IAcc<Opts...>
503  {
504  virtual const Opt& postfix_kgauss () const = 0;
505  virtual Opt& postfix_kgauss () = 0;
506  };
507 
508  /// Partial specialization for Names::postfix_kminDir
509  template<class Opt, class... Opts>
510  struct IAccS<Names::postfix_kminDir , Opt, Opts...> :
511  IAcc<Opts...>
512  {
513  virtual const Opt& postfix_kminDir () const = 0;
514  virtual Opt& postfix_kminDir () = 0;
515  };
516 
517  /// Partial specialization for Names::postfix_kmaxDir
518  template<class Opt, class... Opts>
519  struct IAccS<Names::postfix_kmaxDir , Opt, Opts...> :
520  IAcc<Opts...>
521  {
522  virtual const Opt& postfix_kmaxDir () const = 0;
523  virtual Opt& postfix_kmaxDir () = 0;
524  };
525 
526  /// Partial specialization for Names::postfix_absKmaxDir
527  template<class Opt, class... Opts>
528  struct IAccS<Names::postfix_absKmaxDir , Opt, Opts...> :
529  IAcc<Opts...>
530  {
531  virtual const Opt& postfix_absKmaxDir () const = 0;
532  virtual Opt& postfix_absKmaxDir () = 0;
533  };
534 
535  /// Partial specialization for Names::postfix_precision
536  template<class Opt, class... Opts>
537  struct IAccS<Names::postfix_precision , Opt, Opts...> :
538  IAcc<Opts...>
539  {
540  virtual const Opt& postfix_precision () const = 0;
541  virtual Opt& postfix_precision () = 0;
542  };
543 
544  /// Partial specialization for Names::tolerance_abs
545  template<class Opt, class... Opts>
546  struct IAccS<Names::tolerance_abs , Opt, Opts...> :
547  IAcc<Opts...>
548  {
549  virtual const Opt& tolerance_abs () const = 0;
550  virtual Opt& tolerance_abs () = 0;
551  };
552 
553  /// Partial specialization for Names::tolerance_rel
554  template<class Opt, class... Opts>
555  struct IAccS<Names::tolerance_rel , Opt, Opts...> :
556  IAcc<Opts...>
557  {
558  virtual const Opt& tolerance_rel () const = 0;
559  virtual Opt& tolerance_rel () = 0;
560  };
561 
562  }
563 
564  /// Defines common options
565  namespace comm
566  {
567  /// Provides access method(s) to the first given option with name(s) according to that option's enumerator.
568  /** \tparam name_ The enumerator of the option to provide access to.
569  \tparam Opts The parameter pack of the current and remaining options. IAccS derives from itself for the remaining options. */
570  template<Names, class...>
571  struct IAccS;
572 
573  /// For an empty parameter pack, IAcc_ defines IBase as its Type.
574  template<class...>
575  struct IAcc_
576  {
577  using Type = IBase;
578  };
579 
580  /// For a non-empty parameter pack, IAcc_ defines IAccS as its Type, specialized for the first and remaining options.
581  template<class Opt, class... Opts>
582  struct IAcc_<Opt, Opts...>
583  {
584  using Type = IAccS<Opt::Name::value, Opt, Opts...>;
585  };
586 
587  /// The specialization of IAcc_ according to the given options.
588  template<class... Opts>
589  using IAcc = typename IAcc_<Opts...>::Type;
590 
591  /// Partial specialization for Names::task
592  template<class Opt, class... Opts>
593  struct IAccS<Names::task , Opt, Opts...> :
594  IAcc<Opts...>
595  {
596  virtual const Opt& task () const = 0;
597  virtual Opt& task () = 0;
598  };
599 
600  /// Partial specialization for Names::nbThreads
601  template<class Opt, class... Opts>
602  struct IAccS<Names::nbThreads , Opt, Opts...> :
603  IAcc<Opts...>
604  {
605  virtual const Opt& nbThreads () const = 0;
606  virtual Opt& nbThreads () = 0;
607  };
608 
609  /// Partial specialization for Names::screenLogLevel
610  template<class Opt, class... Opts>
611  struct IAccS<Names::screenLogLevel , Opt, Opts...> :
612  IAcc<Opts...>
613  {
614  virtual const Opt& screenLogLevel () const = 0;
615  virtual Opt& screenLogLevel () = 0;
616  };
617 
618  /// Partial specialization for Names::fileLogLevel
619  template<class Opt, class... Opts>
620  struct IAccS<Names::fileLogLevel , Opt, Opts...> :
621  IAcc<Opts...>
622  {
623  virtual const Opt& fileLogLevel () const = 0;
624  virtual Opt& fileLogLevel () = 0;
625  };
626 
627  /// Partial specialization for Names::lineBufferedScreenLog
628  template<class Opt, class... Opts>
629  struct IAccS<Names::lineBufferedScreenLog , Opt, Opts...> :
630  IAcc<Opts...>
631  {
632  virtual const Opt& lineBufferedScreenLog () const = 0;
633  virtual Opt& lineBufferedScreenLog () = 0;
634  };
635 
636  /// Partial specialization for Names::logFile
637  template<class Opt, class... Opts>
638  struct IAccS<Names::logFile , Opt, Opts...> :
639  IAcc<Opts...>
640  {
641  virtual const Opt& logFile () const = 0;
642  virtual Opt& logFile () = 0;
643  };
644 
645  /// Partial specialization for Names::cfgFile
646  template<class Opt, class... Opts>
647  struct IAccS<Names::cfgFile , Opt, Opts...> :
648  IAcc<Opts...>
649  {
650  virtual const Opt& cfgFile () const = 0;
651  virtual Opt& cfgFile () = 0;
652  };
653 
654  /// Partial specialization for Names::paramMapping
655  template<class Opt, class... Opts>
656  struct IAccS<Names::paramMapping , Opt, Opts...> :
657  IAcc<Opts...>
658  {
659  virtual const Opt& paramMapping () const = 0;
660  virtual Opt& paramMapping () = 0;
661  };
662 
663  /// Partial specialization for Names::inParamFiles
664  template<class Opt, class... Opts>
665  struct IAccS<Names::inParamFiles , Opt, Opts...> :
666  IAcc<Opts...>
667  {
668  virtual const Opt& inParamFiles () const = 0;
669  virtual Opt& inParamFiles () = 0;
670  };
671 
672  /// Partial specialization for Names::outParamFile
673  template<class Opt, class... Opts>
674  struct IAccS<Names::outParamFile , Opt, Opts...> :
675  IAcc<Opts...>
676  {
677  virtual const Opt& outParamFile () const = 0;
678  virtual Opt& outParamFile () = 0;
679  };
680 
681  /// Partial specialization for Names::scope
682  template<class Opt, class... Opts>
683  struct IAccS<Names::scope , Opt, Opts...> :
684  IAcc<Opts...>
685  {
686  virtual const Opt& scope () const = 0;
687  virtual Opt& scope () = 0;
688  };
689 
690  /// Partial specialization for Names::deleteUselessOutFile
691  template<class Opt, class... Opts>
692  struct IAccS<Names::deleteUselessOutFile , Opt, Opts...> :
693  IAcc<Opts...>
694  {
695  virtual const Opt& deleteUselessOutFile () const = 0;
696  virtual Opt& deleteUselessOutFile () = 0;
697  };
698 
699  /// Partial specialization for Names::testErrorProbability
700  template<class Opt, class... Opts>
701  struct IAccS<Names::testErrorProbability , Opt, Opts...> :
702  IAcc<Opts...>
703  {
704  virtual const Opt& testErrorProbability () const = 0;
705  virtual Opt& testErrorProbability () = 0;
706  };
707 
708  /// Partial specialization for Names::testErrorBeforeRun
709  template<class Opt, class... Opts>
710  struct IAccS<Names::testErrorBeforeRun , Opt, Opts...> :
711  IAcc<Opts...>
712  {
713  virtual const Opt& testErrorBeforeRun () const = 0;
714  virtual Opt& testErrorBeforeRun () = 0;
715  };
716 
717  }
718 
719  /// Defines specific options
720  namespace spec
721  {
722  /// Provides access method(s) to the first given option with name(s) according to that option's enumerator.
723  /** \tparam name_ The enumerator of the option to provide access to.
724  \tparam Opts The parameter pack of the current and remaining options. IAccS derives from itself for the remaining options. */
725  template<Names, class...>
726  struct IAccS;
727 
728  /// For an empty parameter pack, IAcc_ defines IBase as its Type.
729  template<class...>
730  struct IAcc_
731  {
732  using Type = IBase;
733  };
734 
735  /// For a non-empty parameter pack, IAcc_ defines IAccS as its Type, specialized for the first and remaining options.
736  template<class Opt, class... Opts>
737  struct IAcc_<Opt, Opts...>
738  {
739  using Type = IAccS<Opt::Name::value, Opt, Opts...>;
740  };
741 
742  /// The specialization of IAcc_ according to the given options.
743  template<class... Opts>
744  using IAcc = typename IAcc_<Opts...>::Type;
745 
746  /// Partial specialization for Names::inFile
747  template<class Opt, class... Opts>
748  struct IAccS<Names::inFile , Opt, Opts...> :
749  IAcc<Opts...>
750  {
751  virtual const Opt& inFile () const = 0;
752  virtual Opt& inFile () = 0;
753  };
754 
755  /// Partial specialization for Names::outFile
756  template<class Opt, class... Opts>
757  struct IAccS<Names::outFile , Opt, Opts...> :
758  IAcc<Opts...>
759  {
760  virtual const Opt& outFile () const = 0;
761  virtual Opt& outFile () = 0;
762  };
763 
764  /// Partial specialization for Names::axisFile
765  template<class Opt, class... Opts>
766  struct IAccS<Names::axisFile , Opt, Opts...> :
767  IAcc<Opts...>
768  {
769  virtual const Opt& axisFile () const = 0;
770  virtual Opt& axisFile () = 0;
771  };
772 
773  /// Partial specialization for Names::controlFile
774  template<class Opt, class... Opts>
775  struct IAccS<Names::controlFile , Opt, Opts...> :
776  IAcc<Opts...>
777  {
778  virtual const Opt& controlFile () const = 0;
779  virtual Opt& controlFile () = 0;
780  };
781 
782  /// Partial specialization for Names::iFormat
783  template<class Opt, class... Opts>
784  struct IAccS<Names::iFormat , Opt, Opts...> :
785  IAcc<Opts...>
786  {
787  virtual const Opt& iFormat () const = 0;
788  virtual Opt& iFormat () = 0;
789  };
790 
791  /// Partial specialization for Names::oFormat
792  template<class Opt, class... Opts>
793  struct IAccS<Names::oFormat , Opt, Opts...> :
794  IAcc<Opts...>
795  {
796  virtual const Opt& oFormat () const = 0;
797  virtual Opt& oFormat () = 0;
798  };
799 
800  /// Partial specialization for Names::trjFile
801  template<class Opt, class... Opts>
802  struct IAccS<Names::trjFile , Opt, Opts...> :
803  IAcc<Opts...>
804  {
805  virtual const Opt& trjFile () const = 0;
806  virtual Opt& trjFile () = 0;
807  };
808 
809  /// Partial specialization for Names::limit
810  template<class Opt, class... Opts>
811  struct IAccS<Names::limit , Opt, Opts...> :
812  IAcc<Opts...>
813  {
814  virtual const Opt& limit () const = 0;
815  virtual Opt& limit () = 0;
816  };
817 
818  /// Partial specialization for Names::band _OPALS_COMMENT_AFTER_("raster band number/index in case of multi-layer rasters"
819  template<class Opt, class... Opts>
820  struct IAccS<Names::band , Opt, Opts...> : ///< raster band number/index in case of multi-layer rasters
821  IAcc<Opts...>
822  {
823  virtual const Opt& band () const = 0; ///< raster band number/index in case of multi-layer rasters
824  virtual Opt& band () = 0; ///< raster band number/index in case of multi-layer rasters
825  };
826 
827  /// Partial specialization for Names::storeOrder
828  template<class Opt, class... Opts>
829  struct IAccS<Names::storeOrder , Opt, Opts...> :
830  IAcc<Opts...>
831  {
832  virtual const Opt& storeOrder () const = 0;
833  virtual Opt& storeOrder () = 0;
834  };
835 
836  /// Partial specialization for Names::restoreOrder _OPALS_COMMENT_AFTER_("restore natural order of data (opalsExport
837  template<class Opt, class... Opts>
838  struct IAccS<Names::restoreOrder , Opt, Opts...> : ///< restore natural order of data (opalsExport)
839  IAcc<Opts...>
840  {
841  virtual const Opt& restoreOrder () const = 0; ///< restore natural order of data (opalsExport)
842  virtual Opt& restoreOrder () = 0; ///< restore natural order of data (opalsExport)
843  };
844 
845  /// Partial specialization for Names::tilePointCount
846  template<class Opt, class... Opts>
847  struct IAccS<Names::tilePointCount , Opt, Opts...> :
848  IAcc<Opts...>
849  {
850  virtual const Opt& tilePointCount () const = 0;
851  virtual Opt& tilePointCount () = 0;
852  };
853 
854  /// Partial specialization for Names::tileSize
855  template<class Opt, class... Opts>
856  struct IAccS<Names::tileSize , Opt, Opts...> :
857  IAcc<Opts...>
858  {
859  virtual const Opt& tileSize () const = 0;
860  virtual Opt& tileSize () = 0;
861  };
862 
863  /// Partial specialization for Names::gridSize
864  template<class Opt, class... Opts>
865  struct IAccS<Names::gridSize , Opt, Opts...> :
866  IAcc<Opts...>
867  {
868  virtual const Opt& gridSize () const = 0;
869  virtual Opt& gridSize () = 0;
870  };
871 
872  /// Partial specialization for Names::neighbours
873  template<class Opt, class... Opts>
874  struct IAccS<Names::neighbours , Opt, Opts...> :
875  IAcc<Opts...>
876  {
877  virtual const Opt& neighbours () const = 0;
878  virtual Opt& neighbours () = 0;
879  };
880 
881  /// Partial specialization for Names::searchRadius
882  template<class Opt, class... Opts>
883  struct IAccS<Names::searchRadius , Opt, Opts...> :
884  IAcc<Opts...>
885  {
886  virtual const Opt& searchRadius () const = 0;
887  virtual Opt& searchRadius () = 0;
888  };
889 
890  /// Partial specialization for Names::debugOutFile
891  template<class Opt, class... Opts>
892  struct IAccS<Names::debugOutFile , Opt, Opts...> :
893  IAcc<Opts...>
894  {
895  virtual const Opt& debugOutFile () const = 0;
896  virtual Opt& debugOutFile () = 0;
897  };
898 
899  /// Partial specialization for Names::interpolation
900  template<class Opt, class... Opts>
901  struct IAccS<Names::interpolation , Opt, Opts...> :
902  IAcc<Opts...>
903  {
904  virtual const Opt& interpolation () const = 0;
905  virtual Opt& interpolation () = 0;
906  };
907 
908  /// Partial specialization for Names::interval
909  template<class Opt, class... Opts>
910  struct IAccS<Names::interval , Opt, Opts...> :
911  IAcc<Opts...>
912  {
913  virtual const Opt& interval () const = 0;
914  virtual Opt& interval () = 0;
915  };
916 
917  /// Partial specialization for Names::levels _OPALS_COMMENT_AFTER_("individual height levels (e.g. opalsIsolines
918  template<class Opt, class... Opts>
919  struct IAccS<Names::levels , Opt, Opts...> : ///< individual height levels (e.g. opalsIsolines)
920  IAcc<Opts...>
921  {
922  virtual const Opt& levels () const = 0; ///< individual height levels (e.g. opalsIsolines)
923  virtual Opt& levels () = 0; ///< individual height levels (e.g. opalsIsolines)
924  };
925 
926  /// Partial specialization for Names::nClasses _OPALS_COMMENT_AFTER_("number of different classes (e.g. opalsZColor
927  template<class Opt, class... Opts>
928  struct IAccS<Names::nClasses , Opt, Opts...> : ///< number of different classes (e.g. opalsZColor)
929  IAcc<Opts...>
930  {
931  virtual const Opt& nClasses () const = 0; ///< number of different classes (e.g. opalsZColor)
932  virtual Opt& nClasses () = 0; ///< number of different classes (e.g. opalsZColor)
933  };
934 
935  /// Partial specialization for Names::nBins _OPALS_COMMENT_AFTER_("number of different bins (e.g. opalsHisto
936  template<class Opt, class... Opts>
937  struct IAccS<Names::nBins , Opt, Opts...> : ///< number of different bins (e.g. opalsHisto)
938  IAcc<Opts...>
939  {
940  virtual const Opt& nBins () const = 0; ///< number of different bins (e.g. opalsHisto)
941  virtual Opt& nBins () = 0; ///< number of different bins (e.g. opalsHisto)
942  };
943 
944  /// Partial specialization for Names::binWidth _OPALS_COMMENT_AFTER_("width of a single bin (e.g. opalsHisto
945  template<class Opt, class... Opts>
946  struct IAccS<Names::binWidth , Opt, Opts...> : ///< width of a single bin (e.g. opalsHisto)
947  IAcc<Opts...>
948  {
949  virtual const Opt& binWidth () const = 0; ///< width of a single bin (e.g. opalsHisto)
950  virtual Opt& binWidth () = 0; ///< width of a single bin (e.g. opalsHisto)
951  };
952 
953  /// Partial specialization for Names::palFile _OPALS_COMMENT_AFTER_("palette file (opalsZcolor
954  template<class Opt, class... Opts>
955  struct IAccS<Names::palFile , Opt, Opts...> : ///< palette file (opalsZcolor)
956  IAcc<Opts...>
957  {
958  virtual const Opt& palFile () const = 0; ///< palette file (opalsZcolor)
959  virtual Opt& palFile () = 0; ///< palette file (opalsZcolor)
960  };
961 
962  /// Partial specialization for Names::legend _OPALS_COMMENT_AFTER_("on / off / file=filename where legend in SVG format is to be written (opalsZcolor
963  template<class Opt, class... Opts>
964  struct IAccS<Names::legend , Opt, Opts...> : ///< on / off / file=filename where legend in SVG format is to be written (opalsZcolor)
965  IAcc<Opts...>
966  {
967  virtual const Opt& legend () const = 0; ///< on / off / file=filename where legend in SVG format is to be written (opalsZcolor)
968  virtual Opt& legend () = 0; ///< on / off / file=filename where legend in SVG format is to be written (opalsZcolor)
969  };
970 
971  /// Partial specialization for Names::scalePal _OPALS_COMMENT_AFTER_("scale factor to be applied to the given palette (opalsZcolor
972  template<class Opt, class... Opts>
973  struct IAccS<Names::scalePal , Opt, Opts...> : ///< scale factor to be applied to the given palette (opalsZcolor)
974  IAcc<Opts...>
975  {
976  virtual const Opt& scalePal () const = 0; ///< scale factor to be applied to the given palette (opalsZcolor)
977  virtual Opt& scalePal () = 0; ///< scale factor to be applied to the given palette (opalsZcolor)
978  };
979 
980  /// Partial specialization for Names::offsetPal _OPALS_COMMENT_AFTER_("offset value to be applied to the given palette (opalsZcolor
981  template<class Opt, class... Opts>
982  struct IAccS<Names::offsetPal , Opt, Opts...> : ///< offset value to be applied to the given palette (opalsZcolor)
983  IAcc<Opts...>
984  {
985  virtual const Opt& offsetPal () const = 0; ///< offset value to be applied to the given palette (opalsZcolor)
986  virtual Opt& offsetPal () = 0; ///< offset value to be applied to the given palette (opalsZcolor)
987  };
988 
989  /// Partial specialization for Names::zRange _OPALS_COMMENT_AFTER_("range of z-values to be used for z-coloring (e.g. opalsZcolor
990  template<class Opt, class... Opts>
991  struct IAccS<Names::zRange , Opt, Opts...> : ///< range of z-values to be used for z-coloring (e.g. opalsZcolor)
992  IAcc<Opts...>
993  {
994  virtual const Opt& zRange () const = 0; ///< range of z-values to be used for z-coloring (e.g. opalsZcolor)
995  virtual Opt& zRange () = 0; ///< range of z-values to be used for z-coloring (e.g. opalsZcolor)
996  };
997 
998  /// Partial specialization for Names::sampleRange _OPALS_COMMENT_AFTER_("sample (attribute
999  template<class Opt, class... Opts>
1000  struct IAccS<Names::sampleRange , Opt, Opts...> : ///< sample (attribute) range (e.g. opalsHisto)
1001  IAcc<Opts...>
1002  {
1003  virtual const Opt& sampleRange () const = 0; ///< sample (attribute) range (e.g. opalsHisto)
1004  virtual Opt& sampleRange () = 0; ///< sample (attribute) range (e.g. opalsHisto)
1005  };
1006 
1007  /// Partial specialization for Names::densityRange _OPALS_COMMENT_AFTER_("density range (e.g. opalsHisto
1008  template<class Opt, class... Opts>
1009  struct IAccS<Names::densityRange , Opt, Opts...> : ///< density range (e.g. opalsHisto)
1010  IAcc<Opts...>
1011  {
1012  virtual const Opt& densityRange () const = 0; ///< density range (e.g. opalsHisto)
1013  virtual Opt& densityRange () = 0; ///< density range (e.g. opalsHisto)
1014  };
1015 
1016  /// Partial specialization for Names::resampling
1017  template<class Opt, class... Opts>
1018  struct IAccS<Names::resampling , Opt, Opts...> :
1019  IAcc<Opts...>
1020  {
1021  virtual const Opt& resampling () const = 0;
1022  virtual Opt& resampling () = 0;
1023  };
1024 
1025  /// Partial specialization for Names::rasterType
1026  template<class Opt, class... Opts>
1027  struct IAccS<Names::rasterType , Opt, Opts...> :
1028  IAcc<Opts...>
1029  {
1030  virtual const Opt& rasterType () const = 0;
1031  virtual Opt& rasterType () = 0;
1032  };
1033 
1034  /// Partial specialization for Names::selMode
1035  template<class Opt, class... Opts>
1036  struct IAccS<Names::selMode , Opt, Opts...> :
1037  IAcc<Opts...>
1038  {
1039  virtual const Opt& selMode () const = 0;
1040  virtual Opt& selMode () = 0;
1041  };
1042 
1043  /// Partial specialization for Names::feature
1044  template<class Opt, class... Opts>
1045  struct IAccS<Names::feature , Opt, Opts...> :
1046  IAcc<Opts...>
1047  {
1048  virtual const Opt& feature () const = 0;
1049  virtual Opt& feature () = 0;
1050  };
1051 
1052  /// Partial specialization for Names::calRegionFile
1053  template<class Opt, class... Opts>
1054  struct IAccS<Names::calRegionFile , Opt, Opts...> :
1055  IAcc<Opts...>
1056  {
1057  virtual const Opt& calRegionFile () const = 0;
1058  virtual Opt& calRegionFile () = 0;
1059  };
1060 
1061  /// Partial specialization for Names::reflectivityFile
1062  template<class Opt, class... Opts>
1063  struct IAccS<Names::reflectivityFile , Opt, Opts...> :
1064  IAcc<Opts...>
1065  {
1066  virtual const Opt& reflectivityFile () const = 0;
1067  virtual Opt& reflectivityFile () = 0;
1068  };
1069 
1070  /// Partial specialization for Names::atmosphericAtt
1071  template<class Opt, class... Opts>
1072  struct IAccS<Names::atmosphericAtt , Opt, Opts...> :
1073  IAcc<Opts...>
1074  {
1075  virtual const Opt& atmosphericAtt () const = 0;
1076  virtual Opt& atmosphericAtt () = 0;
1077  };
1078 
1079  /// Partial specialization for Names::beamDivergence
1080  template<class Opt, class... Opts>
1081  struct IAccS<Names::beamDivergence , Opt, Opts...> :
1082  IAcc<Opts...>
1083  {
1084  virtual const Opt& beamDivergence () const = 0;
1085  virtual Opt& beamDivergence () = 0;
1086  };
1087 
1088  /// Partial specialization for Names::echoWidthFlag
1089  template<class Opt, class... Opts>
1090  struct IAccS<Names::echoWidthFlag , Opt, Opts...> :
1091  IAcc<Opts...>
1092  {
1093  virtual const Opt& echoWidthFlag () const = 0;
1094  virtual Opt& echoWidthFlag () = 0;
1095  };
1096 
1097  /// Partial specialization for Names::radioCal
1098  template<class Opt, class... Opts>
1099  struct IAccS<Names::radioCal , Opt, Opts...> :
1100  IAcc<Opts...>
1101  {
1102  virtual const Opt& radioCal () const = 0;
1103  virtual Opt& radioCal () = 0;
1104  };
1105 
1106  /// Partial specialization for Names::cellSize
1107  template<class Opt, class... Opts>
1108  struct IAccS<Names::cellSize , Opt, Opts...> :
1109  IAcc<Opts...>
1110  {
1111  virtual const Opt& cellSize () const = 0;
1112  virtual Opt& cellSize () = 0;
1113  };
1114 
1115  /// Partial specialization for Names::pixelSize
1116  template<class Opt, class... Opts>
1117  struct IAccS<Names::pixelSize , Opt, Opts...> :
1118  IAcc<Opts...>
1119  {
1120  virtual const Opt& pixelSize () const = 0;
1121  virtual Opt& pixelSize () = 0;
1122  };
1123 
1124  /// Partial specialization for Names::patchSize
1125  template<class Opt, class... Opts>
1126  struct IAccS<Names::patchSize , Opt, Opts...> :
1127  IAcc<Opts...>
1128  {
1129  virtual const Opt& patchSize () const = 0;
1130  virtual Opt& patchSize () = 0;
1131  };
1132 
1133  /// Partial specialization for Names::voxelSize _OPALS_COMMENT_AFTER_("defines the size (edge length
1134  template<class Opt, class... Opts>
1135  struct IAccS<Names::voxelSize , Opt, Opts...> : ///< defines the size (edge length) of voxel cube)
1136  IAcc<Opts...>
1137  {
1138  virtual const Opt& voxelSize () const = 0; ///< defines the size (edge length) of voxel cube)
1139  virtual Opt& voxelSize () = 0; ///< defines the size (edge length) of voxel cube)
1140  };
1141 
1142  /// Partial specialization for Names::attribute
1143  template<class Opt, class... Opts>
1144  struct IAccS<Names::attribute , Opt, Opts...> :
1145  IAcc<Opts...>
1146  {
1147  virtual const Opt& attribute () const = 0;
1148  virtual Opt& attribute () = 0;
1149  };
1150 
1151  /// Partial specialization for Names::noData
1152  template<class Opt, class... Opts>
1153  struct IAccS<Names::noData , Opt, Opts...> :
1154  IAcc<Opts...>
1155  {
1156  virtual const Opt& noData () const = 0;
1157  virtual Opt& noData () = 0;
1158  };
1159 
1160  /// Partial specialization for Names::normalsAlg
1161  template<class Opt, class... Opts>
1162  struct IAccS<Names::normalsAlg , Opt, Opts...> :
1163  IAcc<Opts...>
1164  {
1165  virtual const Opt& normalsAlg () const = 0;
1166  virtual Opt& normalsAlg () = 0;
1167  };
1168 
1169  /// Partial specialization for Names::fullWaveAlg
1170  template<class Opt, class... Opts>
1171  struct IAccS<Names::fullWaveAlg , Opt, Opts...> :
1172  IAcc<Opts...>
1173  {
1174  virtual const Opt& fullWaveAlg () const = 0;
1175  virtual Opt& fullWaveAlg () = 0;
1176  };
1177 
1178  /// Partial specialization for Names::detectThrLow
1179  template<class Opt, class... Opts>
1180  struct IAccS<Names::detectThrLow , Opt, Opts...> :
1181  IAcc<Opts...>
1182  {
1183  virtual const Opt& detectThrLow () const = 0;
1184  virtual Opt& detectThrLow () = 0;
1185  };
1186 
1187  /// Partial specialization for Names::filter _OPALS_COMMENT_AFTER_("string to be parsed in construction of DM::IFilter (various modules
1188  template<class Opt, class... Opts>
1189  struct IAccS<Names::filter , Opt, Opts...> : ///< string to be parsed in construction of DM::IFilter (various modules)
1190  IAcc<Opts...>
1191  {
1192  virtual const Opt& filter () const = 0; ///< string to be parsed in construction of DM::IFilter (various modules)
1193  virtual Opt& filter () = 0; ///< string to be parsed in construction of DM::IFilter (various modules)
1194  };
1195 
1196  /// Partial specialization for Names::iFilter _OPALS_COMMENT_AFTER_("input filter (e.g. opalsTIN
1197  template<class Opt, class... Opts>
1198  struct IAccS<Names::iFilter , Opt, Opts...> : ///< input filter (e.g. opalsTIN)
1199  IAcc<Opts...>
1200  {
1201  virtual const Opt& iFilter () const = 0; ///< input filter (e.g. opalsTIN)
1202  virtual Opt& iFilter () = 0; ///< input filter (e.g. opalsTIN)
1203  };
1204 
1205  /// Partial specialization for Names::oFilter _OPALS_COMMENT_AFTER_("output filter (e.g. opalsTIN
1206  template<class Opt, class... Opts>
1207  struct IAccS<Names::oFilter , Opt, Opts...> : ///< output filter (e.g. opalsTIN)
1208  IAcc<Opts...>
1209  {
1210  virtual const Opt& oFilter () const = 0; ///< output filter (e.g. opalsTIN)
1211  virtual Opt& oFilter () = 0; ///< output filter (e.g. opalsTIN)
1212  };
1213 
1214  /// Partial specialization for Names::alphaFile _OPALS_COMMENT_AFTER_("output file path for alpha shape (opalsTIN
1215  template<class Opt, class... Opts>
1216  struct IAccS<Names::alphaFile , Opt, Opts...> : ///< output file path for alpha shape (opalsTIN)
1217  IAcc<Opts...>
1218  {
1219  virtual const Opt& alphaFile () const = 0; ///< output file path for alpha shape (opalsTIN)
1220  virtual Opt& alphaFile () = 0; ///< output file path for alpha shape (opalsTIN)
1221  };
1222 
1223  /// Partial specialization for Names::alphaRadius _OPALS_COMMENT_AFTER_("circumcircle radius for alpha shape (opalsBounds
1224  template<class Opt, class... Opts>
1225  struct IAccS<Names::alphaRadius , Opt, Opts...> : ///< circumcircle radius for alpha shape (opalsBounds)
1226  IAcc<Opts...>
1227  {
1228  virtual const Opt& alphaRadius () const = 0; ///< circumcircle radius for alpha shape (opalsBounds)
1229  virtual Opt& alphaRadius () = 0; ///< circumcircle radius for alpha shape (opalsBounds)
1230  };
1231 
1232  /// Partial specialization for Names::hollowingThresh _OPALS_COMMENT_AFTER_("point count above which to not triangulate all data but only their outer regions or borders (opalsBounds
1233  template<class Opt, class... Opts>
1234  struct IAccS<Names::hollowingThresh , Opt, Opts...> : ///< point count above which to not triangulate all data but only their outer regions or borders (opalsBounds)
1235  IAcc<Opts...>
1236  {
1237  virtual const Opt& hollowingThresh () const = 0; ///< point count above which to not triangulate all data but only their outer regions or borders (opalsBounds)
1238  virtual Opt& hollowingThresh () = 0; ///< point count above which to not triangulate all data but only their outer regions or borders (opalsBounds)
1239  };
1240 
1241  /// Partial specialization for Names::condition _OPALS_COMMENT_AFTER_("condition formula string for grid mask computation (opalsMask
1242  template<class Opt, class... Opts>
1243  struct IAccS<Names::condition , Opt, Opts...> : ///< condition formula string for grid mask computation (opalsMask)
1244  IAcc<Opts...>
1245  {
1246  virtual const Opt& condition () const = 0; ///< condition formula string for grid mask computation (opalsMask)
1247  virtual Opt& condition () = 0; ///< condition formula string for grid mask computation (opalsMask)
1248  };
1249 
1250  /// Partial specialization for Names::formula _OPALS_COMMENT_AFTER_("formula string for algebraic grid computations (opalsAlgebra
1251  template<class Opt, class... Opts>
1252  struct IAccS<Names::formula , Opt, Opts...> : ///< formula string for algebraic grid computations (opalsAlgebra)
1253  IAcc<Opts...>
1254  {
1255  virtual const Opt& formula () const = 0; ///< formula string for algebraic grid computations (opalsAlgebra)
1256  virtual Opt& formula () = 0; ///< formula string for algebraic grid computations (opalsAlgebra)
1257  };
1258 
1259  /// Partial specialization for Names::createAlpha _OPALS_COMMENT_AFTER_("indicator for grid mask creation as alpha channel (opalsMask
1260  template<class Opt, class... Opts>
1261  struct IAccS<Names::createAlpha , Opt, Opts...> : ///< indicator for grid mask creation as alpha channel (opalsMask)
1262  IAcc<Opts...>
1263  {
1264  virtual const Opt& createAlpha () const = 0; ///< indicator for grid mask creation as alpha channel (opalsMask)
1265  virtual Opt& createAlpha () = 0; ///< indicator for grid mask creation as alpha channel (opalsMask)
1266  };
1267 
1268  /// Partial specialization for Names::ratioMode _OPALS_COMMENT_AFTER_("echo ratio calculation mode"
1269  template<class Opt, class... Opts>
1270  struct IAccS<Names::ratioMode , Opt, Opts...> : ///< echo ratio calculation mode
1271  IAcc<Opts...>
1272  {
1273  virtual const Opt& ratioMode () const = 0; ///< echo ratio calculation mode
1274  virtual Opt& ratioMode () = 0; ///< echo ratio calculation mode
1275  };
1276 
1277  /// Partial specialization for Names::minArea _OPALS_COMMENT_AFTER_("minimum area"
1278  template<class Opt, class... Opts>
1279  struct IAccS<Names::minArea , Opt, Opts...> : ///< minimum area
1280  IAcc<Opts...>
1281  {
1282  virtual const Opt& minArea () const = 0; ///< minimum area
1283  virtual Opt& minArea () = 0; ///< minimum area
1284  };
1285 
1286  /// Partial specialization for Names::minLength _OPALS_COMMENT_AFTER_("minimum length"
1287  template<class Opt, class... Opts>
1288  struct IAccS<Names::minLength , Opt, Opts...> : ///< minimum length
1289  IAcc<Opts...>
1290  {
1291  virtual const Opt& minLength () const = 0; ///< minimum length
1292  virtual Opt& minLength () = 0; ///< minimum length
1293  };
1294 
1295  /// Partial specialization for Names::overlap _OPALS_COMMENT_AFTER_("specifies the overlap for sequential operations"
1296  template<class Opt, class... Opts>
1297  struct IAccS<Names::overlap , Opt, Opts...> : ///< specifies the overlap for sequential operations
1298  IAcc<Opts...>
1299  {
1300  virtual const Opt& overlap () const = 0; ///< specifies the overlap for sequential operations
1301  virtual Opt& overlap () = 0; ///< specifies the overlap for sequential operations
1302  };
1303 
1304  /// Partial specialization for Names::contours
1305  template<class Opt, class... Opts>
1306  struct IAccS<Names::contours , Opt, Opts...> :
1307  IAcc<Opts...>
1308  {
1309  virtual const Opt& contours () const = 0;
1310  virtual Opt& contours () = 0;
1311  };
1312 
1313  /// Partial specialization for Names::sections
1314  template<class Opt, class... Opts>
1315  struct IAccS<Names::sections , Opt, Opts...> :
1316  IAcc<Opts...>
1317  {
1318  virtual const Opt& sections () const = 0;
1319  virtual Opt& sections () = 0;
1320  };
1321 
1322  /// Partial specialization for Names::maxSigma
1323  template<class Opt, class... Opts>
1324  struct IAccS<Names::maxSigma , Opt, Opts...> :
1325  IAcc<Opts...>
1326  {
1327  virtual const Opt& maxSigma () const = 0;
1328  virtual Opt& maxSigma () = 0;
1329  };
1330 
1331  /// Partial specialization for Names::maxSigmaMAD _OPALS_COMMENT_AFTER_("correspondences.strip2strip.rejection group(opalsStripAdjust
1332  template<class Opt, class... Opts>
1333  struct IAccS<Names::maxSigmaMAD , Opt, Opts...> : ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
1334  IAcc<Opts...>
1335  {
1336  virtual const Opt& maxSigmaMAD () const = 0; ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
1337  virtual Opt& maxSigmaMAD () = 0; ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
1338  };
1339 
1340  /// Partial specialization for Names::maxDev
1341  template<class Opt, class... Opts>
1342  struct IAccS<Names::maxDev , Opt, Opts...> :
1343  IAcc<Opts...>
1344  {
1345  virtual const Opt& maxDev () const = 0;
1346  virtual Opt& maxDev () = 0;
1347  };
1348 
1349  /// Partial specialization for Names::maxAngleDev _OPALS_COMMENT_AFTER_("maximum angle between two elements (opalsICP, opalsLineTopology
1350  template<class Opt, class... Opts>
1351  struct IAccS<Names::maxAngleDev , Opt, Opts...> : ///< maximum angle between two elements (opalsICP, opalsLineTopology)
1352  IAcc<Opts...>
1353  {
1354  virtual const Opt& maxAngleDev () const = 0; ///< maximum angle between two elements (opalsICP, opalsLineTopology)
1355  virtual Opt& maxAngleDev () = 0; ///< maximum angle between two elements (opalsICP, opalsLineTopology)
1356  };
1357 
1358  /// Partial specialization for Names::maxMemory _OPALS_COMMENT_AFTER_("amount of memory [MB] to be used by (various
1359  template<class Opt, class... Opts>
1360  struct IAccS<Names::maxMemory , Opt, Opts...> : ///< amount of memory [MB] to be used by (various) modules
1361  IAcc<Opts...>
1362  {
1363  virtual const Opt& maxMemory () const = 0; ///< amount of memory [MB] to be used by (various) modules
1364  virtual Opt& maxMemory () = 0; ///< amount of memory [MB] to be used by (various) modules
1365  };
1366 
1367  /// Partial specialization for Names::maxTol _OPALS_COMMENT_AFTER_("maximum tolerance (e.g. opalsSimplify
1368  template<class Opt, class... Opts>
1369  struct IAccS<Names::maxTol , Opt, Opts...> : ///< maximum tolerance (e.g. opalsSimplify)
1370  IAcc<Opts...>
1371  {
1372  virtual const Opt& maxTol () const = 0; ///< maximum tolerance (e.g. opalsSimplify)
1373  virtual Opt& maxTol () = 0; ///< maximum tolerance (e.g. opalsSimplify)
1374  };
1375 
1376  /// Partial specialization for Names::maxDist _OPALS_COMMENT_AFTER_("maximum point distance (e.g. opalsSimplify, opalsSegmentation
1377  template<class Opt, class... Opts>
1378  struct IAccS<Names::maxDist , Opt, Opts...> : ///< maximum point distance (e.g. opalsSimplify, opalsSegmentation)
1379  IAcc<Opts...>
1380  {
1381  virtual const Opt& maxDist () const = 0; ///< maximum point distance (e.g. opalsSimplify, opalsSegmentation)
1382  virtual Opt& maxDist () = 0; ///< maximum point distance (e.g. opalsSimplify, opalsSegmentation)
1383  };
1384 
1385  /// Partial specialization for Names::maxIter _OPALS_COMMENT_AFTER_("maximum number of iterations (various modules
1386  template<class Opt, class... Opts>
1387  struct IAccS<Names::maxIter , Opt, Opts...> : ///< maximum number of iterations (various modules)
1388  IAcc<Opts...>
1389  {
1390  virtual const Opt& maxIter () const = 0; ///< maximum number of iterations (various modules)
1391  virtual Opt& maxIter () = 0; ///< maximum number of iterations (various modules)
1392  };
1393 
1394  /// Partial specialization for Names::gridMask _OPALS_COMMENT_AFTER_("grid mask file"
1395  template<class Opt, class... Opts>
1396  struct IAccS<Names::gridMask , Opt, Opts...> : ///< grid mask file
1397  IAcc<Opts...>
1398  {
1399  virtual const Opt& gridMask () const = 0; ///< grid mask file
1400  virtual Opt& gridMask () = 0; ///< grid mask file
1401  };
1402 
1403  /// Partial specialization for Names::gridFile _OPALS_COMMENT_AFTER_("grid model file"
1404  template<class Opt, class... Opts>
1405  struct IAccS<Names::gridFile , Opt, Opts...> : ///< grid model file
1406  IAcc<Opts...>
1407  {
1408  virtual const Opt& gridFile () const = 0; ///< grid model file
1409  virtual Opt& gridFile () = 0; ///< grid model file
1410  };
1411 
1412  /// Partial specialization for Names::spotData _OPALS_COMMENT_AFTER_("file containing (2D
1413  template<class Opt, class... Opts>
1414  struct IAccS<Names::spotData , Opt, Opts...> : ///< file containing (2D) positions (opalsLSM))
1415  IAcc<Opts...>
1416  {
1417  virtual const Opt& spotData () const = 0; ///< file containing (2D) positions (opalsLSM))
1418  virtual Opt& spotData () = 0; ///< file containing (2D) positions (opalsLSM))
1419  };
1420 
1421  /// Partial specialization for Names::lsmMode _OPALS_COMMENT_AFTER_("LSM processing mode (opalsLSM
1422  template<class Opt, class... Opts>
1423  struct IAccS<Names::lsmMode , Opt, Opts...> : ///< LSM processing mode (opalsLSM)
1424  IAcc<Opts...>
1425  {
1426  virtual const Opt& lsmMode () const = 0; ///< LSM processing mode (opalsLSM)
1427  virtual Opt& lsmMode () = 0; ///< LSM processing mode (opalsLSM)
1428  };
1429 
1430  /// Partial specialization for Names::lsmTrafo _OPALS_COMMENT_AFTER_("LSM transformation type (opalsLSM
1431  template<class Opt, class... Opts>
1432  struct IAccS<Names::lsmTrafo , Opt, Opts...> : ///< LSM transformation type (opalsLSM)
1433  IAcc<Opts...>
1434  {
1435  virtual const Opt& lsmTrafo () const = 0; ///< LSM transformation type (opalsLSM)
1436  virtual Opt& lsmTrafo () = 0; ///< LSM transformation type (opalsLSM)
1437  };
1438 
1439  /// Partial specialization for Names::trafoType _OPALS_COMMENT_AFTER_("transformation type (opalsICP
1440  template<class Opt, class... Opts>
1441  struct IAccS<Names::trafoType , Opt, Opts...> : ///< transformation type (opalsICP)
1442  IAcc<Opts...>
1443  {
1444  virtual const Opt& trafoType () const = 0; ///< transformation type (opalsICP)
1445  virtual Opt& trafoType () = 0; ///< transformation type (opalsICP)
1446  };
1447 
1448  /// Partial specialization for Names::robFactor _OPALS_COMMENT_AFTER_("factor used for robust estimation(opalsLSM
1449  template<class Opt, class... Opts>
1450  struct IAccS<Names::robFactor , Opt, Opts...> : ///< factor used for robust estimation(opalsLSM)
1451  IAcc<Opts...>
1452  {
1453  virtual const Opt& robFactor () const = 0; ///< factor used for robust estimation(opalsLSM)
1454  virtual Opt& robFactor () = 0; ///< factor used for robust estimation(opalsLSM)
1455  };
1456 
1457  /// Partial specialization for Names::outTrafPars _OPALS_COMMENT_AFTER_("output transformation parameters (opalsLSM, opalsGeorefApprox
1458  template<class Opt, class... Opts>
1459  struct IAccS<Names::outTrafPars , Opt, Opts...> : ///< output transformation parameters (opalsLSM, opalsGeorefApprox)
1460  IAcc<Opts...>
1461  {
1462  virtual const Opt& outTrafPars () const = 0; ///< output transformation parameters (opalsLSM, opalsGeorefApprox)
1463  virtual Opt& outTrafPars () = 0; ///< output transformation parameters (opalsLSM, opalsGeorefApprox)
1464  };
1465 
1466  /// Partial specialization for Names::navFrame _OPALS_COMMENT_AFTER_("navigation frame (opalsAddTraj
1467  template<class Opt, class... Opts>
1468  struct IAccS<Names::navFrame , Opt, Opts...> : ///< navigation frame (opalsAddTraj)
1469  IAcc<Opts...>
1470  {
1471  virtual const Opt& navFrame () const = 0; ///< navigation frame (opalsAddTraj)
1472  virtual Opt& navFrame () = 0; ///< navigation frame (opalsAddTraj)
1473  };
1474 
1475  /// Partial specialization for Names::mntCalFile _OPALS_COMMENT_AFTER_("mounting calibration file (opalsAddTraj
1476  template<class Opt, class... Opts>
1477  struct IAccS<Names::mntCalFile , Opt, Opts...> : ///< mounting calibration file (opalsAddTraj)
1478  IAcc<Opts...>
1479  {
1480  virtual const Opt& mntCalFile () const = 0; ///< mounting calibration file (opalsAddTraj)
1481  virtual Opt& mntCalFile () = 0; ///< mounting calibration file (opalsAddTraj)
1482  };
1483 
1484  /// Partial specialization for Names::obsTrafPars _OPALS_COMMENT_AFTER_("input transformation parameters (opalsGeorefApprox
1485  template<class Opt, class... Opts>
1486  struct IAccS<Names::obsTrafPars , Opt, Opts...> : ///< input transformation parameters (opalsGeorefApprox)
1487  IAcc<Opts...>
1488  {
1489  virtual const Opt& obsTrafPars () const = 0; ///< input transformation parameters (opalsGeorefApprox)
1490  virtual Opt& obsTrafPars () = 0; ///< input transformation parameters (opalsGeorefApprox)
1491  };
1492 
1493  /// Partial specialization for Names::stripList _OPALS_COMMENT_AFTER_("a list strip (opalsGeorefApprox
1494  template<class Opt, class... Opts>
1495  struct IAccS<Names::stripList , Opt, Opts...> : ///< a list strip (opalsGeorefApprox)
1496  IAcc<Opts...>
1497  {
1498  virtual const Opt& stripList () const = 0; ///< a list strip (opalsGeorefApprox)
1499  virtual Opt& stripList () = 0; ///< a list strip (opalsGeorefApprox)
1500  };
1501 
1502  /// Partial specialization for Names::pairList _OPALS_COMMENT_AFTER_("a list strip pairs (e.g. opalsOverlap
1503  template<class Opt, class... Opts>
1504  struct IAccS<Names::pairList , Opt, Opts...> : ///< a list strip pairs (e.g. opalsOverlap)
1505  IAcc<Opts...>
1506  {
1507  virtual const Opt& pairList () const = 0; ///< a list strip pairs (e.g. opalsOverlap)
1508  virtual Opt& pairList () = 0; ///< a list strip pairs (e.g. opalsOverlap)
1509  };
1510 
1511  /// Partial specialization for Names::fixedStrip _OPALS_COMMENT_AFTER_("fixed strip within the adjustment (opalsGeorefApprox
1512  template<class Opt, class... Opts>
1513  struct IAccS<Names::fixedStrip , Opt, Opts...> : ///< fixed strip within the adjustment (opalsGeorefApprox)
1514  IAcc<Opts...>
1515  {
1516  virtual const Opt& fixedStrip () const = 0; ///< fixed strip within the adjustment (opalsGeorefApprox)
1517  virtual Opt& fixedStrip () = 0; ///< fixed strip within the adjustment (opalsGeorefApprox)
1518  };
1519 
1520  /// Partial specialization for Names::sigmaShift _OPALS_COMMENT_AFTER_("sigma of additional shift observations (opalsGeorefApprox
1521  template<class Opt, class... Opts>
1522  struct IAccS<Names::sigmaShift , Opt, Opts...> : ///< sigma of additional shift observations (opalsGeorefApprox)
1523  IAcc<Opts...>
1524  {
1525  virtual const Opt& sigmaShift () const = 0; ///< sigma of additional shift observations (opalsGeorefApprox)
1526  virtual Opt& sigmaShift () = 0; ///< sigma of additional shift observations (opalsGeorefApprox)
1527  };
1528 
1529  /// Partial specialization for Names::storeMetaInfo _OPALS_COMMENT_AFTER_("level of meta info that are stored (opalsNormals
1530  template<class Opt, class... Opts>
1531  struct IAccS<Names::storeMetaInfo , Opt, Opts...> : ///< level of meta info that are stored (opalsNormals)
1532  IAcc<Opts...>
1533  {
1534  virtual const Opt& storeMetaInfo () const = 0; ///< level of meta info that are stored (opalsNormals)
1535  virtual Opt& storeMetaInfo () = 0; ///< level of meta info that are stored (opalsNormals)
1536  };
1537 
1538  /// Partial specialization for Names::searchMode _OPALS_COMMENT_AFTER_("dimension of nearest neighbor search (opalsNormals
1539  template<class Opt, class... Opts>
1540  struct IAccS<Names::searchMode , Opt, Opts...> : ///< dimension of nearest neighbor search (opalsNormals)
1541  IAcc<Opts...>
1542  {
1543  virtual const Opt& searchMode () const = 0; ///< dimension of nearest neighbor search (opalsNormals)
1544  virtual Opt& searchMode () = 0; ///< dimension of nearest neighbor search (opalsNormals)
1545  };
1546 
1547  /// Partial specialization for Names::division _OPALS_COMMENT_AFTER_("division mode for surface simplification (opalsSimplify
1548  template<class Opt, class... Opts>
1549  struct IAccS<Names::division , Opt, Opts...> : ///< division mode for surface simplification (opalsSimplify)
1550  IAcc<Opts...>
1551  {
1552  virtual const Opt& division () const = 0; ///< division mode for surface simplification (opalsSimplify)
1553  virtual Opt& division () = 0; ///< division mode for surface simplification (opalsSimplify)
1554  };
1555 
1556  /// Partial specialization for Names::operation _OPALS_COMMENT_AFTER_("coordinate operation for crs transformations (opalsTranslate
1557  template<class Opt, class... Opts>
1558  struct IAccS<Names::operation , Opt, Opts...> : ///< coordinate operation for crs transformations (opalsTranslate)
1559  IAcc<Opts...>
1560  {
1561  virtual const Opt& operation () const = 0; ///< coordinate operation for crs transformations (opalsTranslate)
1562  virtual Opt& operation () = 0; ///< coordinate operation for crs transformations (opalsTranslate)
1563  };
1564 
1565  /// Partial specialization for Names::kernel
1566  template<class Opt, class... Opts>
1567  struct IAccS<Names::kernel , Opt, Opts...> :
1568  IAcc<Opts...>
1569  {
1570  virtual const Opt& kernel () const = 0;
1571  virtual Opt& kernel () = 0;
1572  };
1573 
1574  /// Partial specialization for Names::kernelSize
1575  template<class Opt, class... Opts>
1576  struct IAccS<Names::kernelSize , Opt, Opts...> :
1577  IAcc<Opts...>
1578  {
1579  virtual const Opt& kernelSize () const = 0;
1580  virtual Opt& kernelSize () = 0;
1581  };
1582 
1583  /// Partial specialization for Names::kernelShape
1584  template<class Opt, class... Opts>
1585  struct IAccS<Names::kernelShape , Opt, Opts...> :
1586  IAcc<Opts...>
1587  {
1588  virtual const Opt& kernelShape () const = 0;
1589  virtual Opt& kernelShape () = 0;
1590  };
1591 
1592  /// Partial specialization for Names::histogram _OPALS_COMMENT_AFTER_("generic histogram (opalsHisto
1593  template<class Opt, class... Opts>
1594  struct IAccS<Names::histogram , Opt, Opts...> : ///< generic histogram (opalsHisto)
1595  IAcc<Opts...>
1596  {
1597  virtual const Opt& histogram () const = 0; ///< generic histogram (opalsHisto)
1598  virtual Opt& histogram () = 0; ///< generic histogram (opalsHisto)
1599  };
1600 
1601  /// Partial specialization for Names::plotFile _OPALS_COMMENT_AFTER_("name of plot file (e.g. opalsHisto
1602  template<class Opt, class... Opts>
1603  struct IAccS<Names::plotFile , Opt, Opts...> : ///< name of plot file (e.g. opalsHisto)
1604  IAcc<Opts...>
1605  {
1606  virtual const Opt& plotFile () const = 0; ///< name of plot file (e.g. opalsHisto)
1607  virtual Opt& plotFile () = 0; ///< name of plot file (e.g. opalsHisto)
1608  };
1609 
1610  /// Partial specialization for Names::boundsType _OPALS_COMMENT_AFTER_("boundary type to use (e.g. opalsBounds
1611  template<class Opt, class... Opts>
1612  struct IAccS<Names::boundsType , Opt, Opts...> : ///< boundary type to use (e.g. opalsBounds)
1613  IAcc<Opts...>
1614  {
1615  virtual const Opt& boundsType () const = 0; ///< boundary type to use (e.g. opalsBounds)
1616  virtual Opt& boundsType () = 0; ///< boundary type to use (e.g. opalsBounds)
1617  };
1618 
1619  /// Partial specialization for Names::fillMask _OPALS_COMMENT_AFTER_("input file (vector or raster
1620  template<class Opt, class... Opts>
1621  struct IAccS<Names::fillMask , Opt, Opts...> : ///< input file (vector or raster) containing the data mask (e.g. result of opalsBounds) (opalsFillGaps)
1622  IAcc<Opts...>
1623  {
1624  virtual const Opt& fillMask () const = 0; ///< input file (vector or raster) containing the data mask (e.g. result of opalsBounds) (opalsFillGaps)
1625  virtual Opt& fillMask () = 0; ///< input file (vector or raster) containing the data mask (e.g. result of opalsBounds) (opalsFillGaps)
1626  };
1627 
1628  /// Partial specialization for Names::adaptive _OPALS_COMMENT_AFTER_("group name for opalsFillGaps fill method 'adaptive'"
1629  template<class Opt, class... Opts>
1630  struct IAccS<Names::adaptive , Opt, Opts...> : ///< group name for opalsFillGaps fill method 'adaptive'
1631  IAcc<Opts...>
1632  {
1633  virtual const Opt& adaptive () const = 0; ///< group name for opalsFillGaps fill method 'adaptive'
1634  virtual Opt& adaptive () = 0; ///< group name for opalsFillGaps fill method 'adaptive'
1635  };
1636 
1637  /// Partial specialization for Names::shading _OPALS_COMMENT_AFTER_("shading algorithm (opalsShade
1638  template<class Opt, class... Opts>
1639  struct IAccS<Names::shading , Opt, Opts...> : ///< shading algorithm (opalsShade)
1640  IAcc<Opts...>
1641  {
1642  virtual const Opt& shading () const = 0; ///< shading algorithm (opalsShade)
1643  virtual Opt& shading () = 0; ///< shading algorithm (opalsShade)
1644  };
1645 
1646  /// Partial specialization for Names::sunPosition _OPALS_COMMENT_AFTER_("sun position (opalsShade
1647  template<class Opt, class... Opts>
1648  struct IAccS<Names::sunPosition , Opt, Opts...> : ///< sun position (opalsShade)
1649  IAcc<Opts...>
1650  {
1651  virtual const Opt& sunPosition () const = 0; ///< sun position (opalsShade)
1652  virtual Opt& sunPosition () = 0; ///< sun position (opalsShade)
1653  };
1654 
1655  /// Partial specialization for Names::systemEchoWidth _OPALS_COMMENT_AFTER_("echo width of system waveform - necessary for non FWF Data (opalsRadioCal
1656  template<class Opt, class... Opts>
1657  struct IAccS<Names::systemEchoWidth , Opt, Opts...> : ///< echo width of system waveform - necessary for non FWF Data (opalsRadioCal)
1658  IAcc<Opts...>
1659  {
1660  virtual const Opt& systemEchoWidth () const = 0; ///< echo width of system waveform - necessary for non FWF Data (opalsRadioCal)
1661  virtual Opt& systemEchoWidth () = 0; ///< echo width of system waveform - necessary for non FWF Data (opalsRadioCal)
1662  };
1663 
1664  /// Partial specialization for Names::trafo _OPALS_COMMENT_AFTER_("affine 3-d transformation (opalsExport
1665  template<class Opt, class... Opts>
1666  struct IAccS<Names::trafo , Opt, Opts...> : ///< affine 3-d transformation (opalsExport)
1667  IAcc<Opts...>
1668  {
1669  virtual const Opt& trafo () const = 0; ///< affine 3-d transformation (opalsExport)
1670  virtual Opt& trafo () = 0; ///< affine 3-d transformation (opalsExport)
1671  };
1672 
1673  /// Partial specialization for Names::ignoreNoData _OPALS_COMMENT_AFTER_("ignore no-data pixels within kernel neighbourhood (opalsConvolution
1674  template<class Opt, class... Opts>
1675  struct IAccS<Names::ignoreNoData , Opt, Opts...> : ///< ignore no-data pixels within kernel neighbourhood (opalsConvolution)
1676  IAcc<Opts...>
1677  {
1678  virtual const Opt& ignoreNoData () const = 0; ///< ignore no-data pixels within kernel neighbourhood (opalsConvolution)
1679  virtual Opt& ignoreNoData () = 0; ///< ignore no-data pixels within kernel neighbourhood (opalsConvolution)
1680  };
1681 
1682  /// Partial specialization for Names::edgeHandling _OPALS_COMMENT_AFTER_("controls pixel values beyond the image border (opalsConvolution
1683  template<class Opt, class... Opts>
1684  struct IAccS<Names::edgeHandling , Opt, Opts...> : ///< controls pixel values beyond the image border (opalsConvolution)
1685  IAcc<Opts...>
1686  {
1687  virtual const Opt& edgeHandling () const = 0; ///< controls pixel values beyond the image border (opalsConvolution)
1688  virtual Opt& edgeHandling () = 0; ///< controls pixel values beyond the image border (opalsConvolution)
1689  };
1690 
1691  /// Partial specialization for Names::normalize _OPALS_COMMENT_AFTER_("normalize results (e.g. opalsConvolution
1692  template<class Opt, class... Opts>
1693  struct IAccS<Names::normalize , Opt, Opts...> : ///< normalize results (e.g. opalsConvolution)
1694  IAcc<Opts...>
1695  {
1696  virtual const Opt& normalize () const = 0; ///< normalize results (e.g. opalsConvolution)
1697  virtual Opt& normalize () = 0; ///< normalize results (e.g. opalsConvolution)
1698  };
1699 
1700  /// Partial specialization for Names::mounting _OPALS_COMMENT_AFTER_("mounting calibration parameters (e.g. opalsDirectGeoref
1701  template<class Opt, class... Opts>
1702  struct IAccS<Names::mounting , Opt, Opts...> : ///< mounting calibration parameters (e.g. opalsDirectGeoref))
1703  IAcc<Opts...>
1704  {
1705  virtual const Opt& mounting () const = 0; ///< mounting calibration parameters (e.g. opalsDirectGeoref))
1706  virtual Opt& mounting () = 0; ///< mounting calibration parameters (e.g. opalsDirectGeoref))
1707  };
1708 
1709  /// Partial specialization for Names::resetSegId
1710  template<class Opt, class... Opts>
1711  struct IAccS<Names::resetSegId , Opt, Opts...> :
1712  IAcc<Opts...>
1713  {
1714  virtual const Opt& resetSegId () const = 0;
1715  virtual Opt& resetSegId () = 0;
1716  };
1717 
1718  /// Partial specialization for Names::minSegSize
1719  template<class Opt, class... Opts>
1720  struct IAccS<Names::minSegSize , Opt, Opts...> :
1721  IAcc<Opts...>
1722  {
1723  virtual const Opt& minSegSize () const = 0;
1724  virtual Opt& minSegSize () = 0;
1725  };
1726 
1727  /// Partial specialization for Names::weightFunc
1728  template<class Opt, class... Opts>
1729  struct IAccS<Names::weightFunc , Opt, Opts...> :
1730  IAcc<Opts...>
1731  {
1732  virtual const Opt& weightFunc () const = 0;
1733  virtual Opt& weightFunc () = 0;
1734  };
1735 
1736  /// Partial specialization for Names::sigmaApriori _OPALS_COMMENT_AFTER_("estimated accuracy of observations before adjustment (opalsRobFilter
1737  template<class Opt, class... Opts>
1738  struct IAccS<Names::sigmaApriori , Opt, Opts...> : ///< estimated accuracy of observations before adjustment (opalsRobFilter)
1739  IAcc<Opts...>
1740  {
1741  virtual const Opt& sigmaApriori () const = 0; ///< estimated accuracy of observations before adjustment (opalsRobFilter)
1742  virtual Opt& sigmaApriori () = 0; ///< estimated accuracy of observations before adjustment (opalsRobFilter)
1743  };
1744 
1745  /// Partial specialization for Names::robustWFAdpation _OPALS_COMMENT_AFTER_("adaptations of the robust weight function (opalsRobFilter
1746  template<class Opt, class... Opts>
1747  struct IAccS<Names::robustWFAdpation , Opt, Opts...> : ///< adaptations of the robust weight function (opalsRobFilter)
1748  IAcc<Opts...>
1749  {
1750  virtual const Opt& robustWFAdpation () const = 0; ///< adaptations of the robust weight function (opalsRobFilter)
1751  virtual Opt& robustWFAdpation () = 0; ///< adaptations of the robust weight function (opalsRobFilter)
1752  };
1753 
1754  /// Partial specialization for Names::penetration _OPALS_COMMENT_AFTER_("estimated penetration rate"
1755  template<class Opt, class... Opts>
1756  struct IAccS<Names::penetration , Opt, Opts...> : ///< estimated penetration rate
1757  IAcc<Opts...>
1758  {
1759  virtual const Opt& penetration () const = 0; ///< estimated penetration rate
1760  virtual Opt& penetration () = 0; ///< estimated penetration rate
1761  };
1762 
1763  /// Partial specialization for Names::direction _OPALS_COMMENT_AFTER_("normals direction (e.g. opalsNormals
1764  template<class Opt, class... Opts>
1765  struct IAccS<Names::direction , Opt, Opts...> : ///< normals direction (e.g. opalsNormals)
1766  IAcc<Opts...>
1767  {
1768  virtual const Opt& direction () const = 0; ///< normals direction (e.g. opalsNormals)
1769  virtual Opt& direction () = 0; ///< normals direction (e.g. opalsNormals)
1770  };
1771 
1772  /// Partial specialization for Names::snapRadius _OPALS_COMMENT_AFTER_("snap radius (e.g. opalsTIN: used for connecting close line endings
1773  template<class Opt, class... Opts>
1774  struct IAccS<Names::snapRadius , Opt, Opts...> : ///< snap radius (e.g. opalsTIN: used for connecting close line endings)
1775  IAcc<Opts...>
1776  {
1777  virtual const Opt& snapRadius () const = 0; ///< snap radius (e.g. opalsTIN: used for connecting close line endings)
1778  virtual Opt& snapRadius () = 0; ///< snap radius (e.g. opalsTIN: used for connecting close line endings)
1779  };
1780 
1781  /// Partial specialization for Names::borderFile _OPALS_COMMENT_AFTER_("border file path (e.g. opalsTIN
1782  template<class Opt, class... Opts>
1783  struct IAccS<Names::borderFile , Opt, Opts...> : ///< border file path (e.g. opalsTIN)
1784  IAcc<Opts...>
1785  {
1786  virtual const Opt& borderFile () const = 0; ///< border file path (e.g. opalsTIN)
1787  virtual Opt& borderFile () = 0; ///< border file path (e.g. opalsTIN)
1788  };
1789 
1790  /// Partial specialization for Names::overlapFile _OPALS_COMMENT_AFTER_("overlap file path (e.g. opalsOverlap
1791  template<class Opt, class... Opts>
1792  struct IAccS<Names::overlapFile , Opt, Opts...> : ///< overlap file path (e.g. opalsOverlap )
1793  IAcc<Opts...>
1794  {
1795  virtual const Opt& overlapFile () const = 0; ///< overlap file path (e.g. opalsOverlap )
1796  virtual Opt& overlapFile () = 0; ///< overlap file path (e.g. opalsOverlap )
1797  };
1798 
1799  /// Partial specialization for Names::compressCollinear _OPALS_COMMENT_AFTER_("export/store first and last vertices only of a series of collinear vertices (e.g. opalsContouring
1800  template<class Opt, class... Opts>
1801  struct IAccS<Names::compressCollinear , Opt, Opts...> : ///< export/store first and last vertices only of a series of collinear vertices (e.g. opalsContouring)
1802  IAcc<Opts...>
1803  {
1804  virtual const Opt& compressCollinear () const = 0; ///< export/store first and last vertices only of a series of collinear vertices (e.g. opalsContouring)
1805  virtual Opt& compressCollinear () = 0; ///< export/store first and last vertices only of a series of collinear vertices (e.g. opalsContouring)
1806  };
1807 
1808  /// Partial specialization for Names::statistic _OPALS_COMMENT_AFTER_("general statistic information about a given input file (opalsInfo
1809  template<class Opt, class... Opts>
1810  struct IAccS<Names::statistic , Opt, Opts...> : ///< general statistic information about a given input file (opalsInfo)
1811  IAcc<Opts...>
1812  {
1813  virtual const Opt& statistic () const = 0; ///< general statistic information about a given input file (opalsInfo)
1814  virtual Opt& statistic () = 0; ///< general statistic information about a given input file (opalsInfo)
1815  };
1816 
1817  /// Partial specialization for Names::convThreshold _OPALS_COMMENT_AFTER_("adjustment convergence threshold (opalsGeorefApprox
1818  template<class Opt, class... Opts>
1819  struct IAccS<Names::convThreshold , Opt, Opts...> : ///< adjustment convergence threshold (opalsGeorefApprox)
1820  IAcc<Opts...>
1821  {
1822  virtual const Opt& convThreshold () const = 0; ///< adjustment convergence threshold (opalsGeorefApprox)
1823  virtual Opt& convThreshold () = 0; ///< adjustment convergence threshold (opalsGeorefApprox)
1824  };
1825 
1826  /// Partial specialization for Names::refModel _OPALS_COMMENT_AFTER_("defines a reference model (e.g., horizontal/tilted plane or raster model
1827  template<class Opt, class... Opts>
1828  struct IAccS<Names::refModel , Opt, Opts...> : ///< defines a reference model (e.g., horizontal/tilted plane or raster model)
1829  IAcc<Opts...>
1830  {
1831  virtual const Opt& refModel () const = 0; ///< defines a reference model (e.g., horizontal/tilted plane or raster model)
1832  virtual Opt& refModel () = 0; ///< defines a reference model (e.g., horizontal/tilted plane or raster model)
1833  };
1834 
1835  /// Partial specialization for Names::inSRS _OPALS_COMMENT_AFTER_("input spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject
1836  template<class Opt, class... Opts>
1837  struct IAccS<Names::inSRS , Opt, Opts...> : ///< input spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
1838  IAcc<Opts...>
1839  {
1840  virtual const Opt& inSRS () const = 0; ///< input spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
1841  virtual Opt& inSRS () = 0; ///< input spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
1842  };
1843 
1844  /// Partial specialization for Names::outSRS _OPALS_COMMENT_AFTER_("output spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject
1845  template<class Opt, class... Opts>
1846  struct IAccS<Names::outSRS , Opt, Opts...> : ///< output spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
1847  IAcc<Opts...>
1848  {
1849  virtual const Opt& outSRS () const = 0; ///< output spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
1850  virtual Opt& outSRS () = 0; ///< output spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
1851  };
1852 
1853  /// Partial specialization for Names::inGeoid _OPALS_COMMENT_AFTER_("input geoid model raster file (opalsReproject
1854  template<class Opt, class... Opts>
1855  struct IAccS<Names::inGeoid , Opt, Opts...> : ///< input geoid model raster file (opalsReproject)
1856  IAcc<Opts...>
1857  {
1858  virtual const Opt& inGeoid () const = 0; ///< input geoid model raster file (opalsReproject)
1859  virtual Opt& inGeoid () = 0; ///< input geoid model raster file (opalsReproject)
1860  };
1861 
1862  /// Partial specialization for Names::outGeoid _OPALS_COMMENT_AFTER_("output geoid model raster file (opalsReproject
1863  template<class Opt, class... Opts>
1864  struct IAccS<Names::outGeoid , Opt, Opts...> : ///< output geoid model raster file (opalsReproject)
1865  IAcc<Opts...>
1866  {
1867  virtual const Opt& outGeoid () const = 0; ///< output geoid model raster file (opalsReproject)
1868  virtual Opt& outGeoid () = 0; ///< output geoid model raster file (opalsReproject)
1869  };
1870 
1871  /// Partial specialization for Names::inZOffset _OPALS_COMMENT_AFTER_("height offset of input SRS (opalsReproject
1872  template<class Opt, class... Opts>
1873  struct IAccS<Names::inZOffset , Opt, Opts...> : ///< height offset of input SRS (opalsReproject)
1874  IAcc<Opts...>
1875  {
1876  virtual const Opt& inZOffset () const = 0; ///< height offset of input SRS (opalsReproject)
1877  virtual Opt& inZOffset () = 0; ///< height offset of input SRS (opalsReproject)
1878  };
1879 
1880  /// Partial specialization for Names::outZOffset _OPALS_COMMENT_AFTER_("height offset of output SRS (opalsReproject
1881  template<class Opt, class... Opts>
1882  struct IAccS<Names::outZOffset , Opt, Opts...> : ///< height offset of output SRS (opalsReproject)
1883  IAcc<Opts...>
1884  {
1885  virtual const Opt& outZOffset () const = 0; ///< height offset of output SRS (opalsReproject)
1886  virtual Opt& outZOffset () = 0; ///< height offset of output SRS (opalsReproject)
1887  };
1888 
1889  /// Partial specialization for Names::debugNormalsLen _OPALS_COMMENT_AFTER_("length of the normal vectors (opalsNormals
1890  template<class Opt, class... Opts>
1891  struct IAccS<Names::debugNormalsLen , Opt, Opts...> : ///< length of the normal vectors (opalsNormals)
1892  IAcc<Opts...>
1893  {
1894  virtual const Opt& debugNormalsLen () const = 0; ///< length of the normal vectors (opalsNormals)
1895  virtual Opt& debugNormalsLen () = 0; ///< length of the normal vectors (opalsNormals)
1896  };
1897 
1898  /// Partial specialization for Names::refractiveIndex _OPALS_COMMENT_AFTER_("refractive index (e.g. opalsSnellius
1899  template<class Opt, class... Opts>
1900  struct IAccS<Names::refractiveIndex , Opt, Opts...> : ///< refractive index (e.g. opalsSnellius)
1901  IAcc<Opts...>
1902  {
1903  virtual const Opt& refractiveIndex () const = 0; ///< refractive index (e.g. opalsSnellius)
1904  virtual Opt& refractiveIndex () = 0; ///< refractive index (e.g. opalsSnellius)
1905  };
1906 
1907  /// Partial specialization for Names::mtaZone _OPALS_COMMENT_AFTER_("defines the MTA zone to resolve ambiguities of multiple-pluses-in-air-scanners (opalsFullwave
1908  template<class Opt, class... Opts>
1909  struct IAccS<Names::mtaZone , Opt, Opts...> : ///< defines the MTA zone to resolve ambiguities of multiple-pluses-in-air-scanners (opalsFullwave)
1910  IAcc<Opts...>
1911  {
1912  virtual const Opt& mtaZone () const = 0; ///< defines the MTA zone to resolve ambiguities of multiple-pluses-in-air-scanners (opalsFullwave)
1913  virtual Opt& mtaZone () = 0; ///< defines the MTA zone to resolve ambiguities of multiple-pluses-in-air-scanners (opalsFullwave)
1914  };
1915 
1916  /// Partial specialization for Names::timeRange _OPALS_COMMENT_AFTER_("process only a subset of the data the given time range (opalsFullwave
1917  template<class Opt, class... Opts>
1918  struct IAccS<Names::timeRange , Opt, Opts...> : ///< process only a subset of the data the given time range (opalsFullwave)
1919  IAcc<Opts...>
1920  {
1921  virtual const Opt& timeRange () const = 0; ///< process only a subset of the data the given time range (opalsFullwave)
1922  virtual Opt& timeRange () = 0; ///< process only a subset of the data the given time range (opalsFullwave)
1923  };
1924 
1925  /// Partial specialization for Names::skipVoidAreas _OPALS_COMMENT_AFTER_("skip all void parts of datasets for data processing (opalsALgebra
1926  template<class Opt, class... Opts>
1927  struct IAccS<Names::skipVoidAreas , Opt, Opts...> : ///< skip all void parts of datasets for data processing (opalsALgebra)
1928  IAcc<Opts...>
1929  {
1930  virtual const Opt& skipVoidAreas () const = 0; ///< skip all void parts of datasets for data processing (opalsALgebra)
1931  virtual Opt& skipVoidAreas () = 0; ///< skip all void parts of datasets for data processing (opalsALgebra)
1932  };
1933 
1934  /// Partial specialization for Names::tFormat _OPALS_COMMENT_AFTER_("file format of the trajectory file (opalsImport
1935  template<class Opt, class... Opts>
1936  struct IAccS<Names::tFormat , Opt, Opts...> : ///< file format of the trajectory file (opalsImport)
1937  IAcc<Opts...>
1938  {
1939  virtual const Opt& tFormat () const = 0; ///< file format of the trajectory file (opalsImport)
1940  virtual Opt& tFormat () = 0; ///< file format of the trajectory file (opalsImport)
1941  };
1942 
1943  /// Partial specialization for Names::storeBeamInfo _OPALS_COMMENT_AFTER_("defines beam information that is attached during import (opalsImport
1944  template<class Opt, class... Opts>
1945  struct IAccS<Names::storeBeamInfo , Opt, Opts...> : ///< defines beam information that is attached during import (opalsImport)
1946  IAcc<Opts...>
1947  {
1948  virtual const Opt& storeBeamInfo () const = 0; ///< defines beam information that is attached during import (opalsImport)
1949  virtual Opt& storeBeamInfo () = 0; ///< defines beam information that is attached during import (opalsImport)
1950  };
1951 
1952  /// Partial specialization for Names::inGeometry _OPALS_COMMENT_AFTER_("input (OGC
1953  template<class Opt, class... Opts>
1954  struct IAccS<Names::inGeometry , Opt, Opts...> : ///< input (OGC) geometry
1955  IAcc<Opts...>
1956  {
1957  virtual const Opt& inGeometry () const = 0; ///< input (OGC) geometry
1958  virtual Opt& inGeometry () = 0; ///< input (OGC) geometry
1959  };
1960 
1961  /// Partial specialization for Names::outGeometry _OPALS_COMMENT_AFTER_("output (OGC
1962  template<class Opt, class... Opts>
1963  struct IAccS<Names::outGeometry , Opt, Opts...> : ///< output (OGC) geometry
1964  IAcc<Opts...>
1965  {
1966  virtual const Opt& outGeometry () const = 0; ///< output (OGC) geometry
1967  virtual Opt& outGeometry () = 0; ///< output (OGC) geometry
1968  };
1969 
1970  /// Partial specialization for Names::probabilities _OPALS_COMMENT_AFTER_("(list of
1971  template<class Opt, class... Opts>
1972  struct IAccS<Names::probabilities , Opt, Opts...> : ///< (list of) probability values [0..1] (opalsHisto))
1973  IAcc<Opts...>
1974  {
1975  virtual const Opt& probabilities () const = 0; ///< (list of) probability values [0..1] (opalsHisto))
1976  virtual Opt& probabilities () = 0; ///< (list of) probability values [0..1] (opalsHisto))
1977  };
1978 
1979  /// Partial specialization for Names::sectionRange _OPALS_COMMENT_AFTER_("start/stop stationing along the axis(opalsSection
1980  template<class Opt, class... Opts>
1981  struct IAccS<Names::sectionRange , Opt, Opts...> : ///< start/stop stationing along the axis(opalsSection))
1982  IAcc<Opts...>
1983  {
1984  virtual const Opt& sectionRange () const = 0; ///< start/stop stationing along the axis(opalsSection))
1985  virtual Opt& sectionRange () = 0; ///< start/stop stationing along the axis(opalsSection))
1986  };
1987 
1988  /// Partial specialization for Names::aoi
1989  template<class Opt, class... Opts>
1990  struct IAccS<Names::aoi , Opt, Opts...> :
1991  IAcc<Opts...>
1992  {
1993  virtual const Opt& aoi () const = 0;
1994  virtual Opt& aoi () = 0;
1995  };
1996 
1997  /// Partial specialization for Names::inDimension
1998  template<class Opt, class... Opts>
1999  struct IAccS<Names::inDimension , Opt, Opts...> :
2000  IAcc<Opts...>
2001  {
2002  virtual const Opt& inDimension () const = 0;
2003  virtual Opt& inDimension () = 0;
2004  };
2005 
2006  /// Partial specialization for Names::outResults
2007  template<class Opt, class... Opts>
2008  struct IAccS<Names::outResults , Opt, Opts...> :
2009  IAcc<Opts...>
2010  {
2011  virtual const Opt& outResults () const = 0;
2012  virtual Opt& outResults () = 0;
2013  };
2014 
2015  /// Partial specialization for Names::geometryModel
2016  template<class Opt, class... Opts>
2017  struct IAccS<Names::geometryModel , Opt, Opts...> :
2018  IAcc<Opts...>
2019  {
2020  virtual const Opt& geometryModel () const = 0;
2021  virtual Opt& geometryModel () = 0;
2022  };
2023 
2024  /// Partial specialization for Names::calculationMode
2025  template<class Opt, class... Opts>
2026  struct IAccS<Names::calculationMode , Opt, Opts...> :
2027  IAcc<Opts...>
2028  {
2029  virtual const Opt& calculationMode () const = 0;
2030  virtual Opt& calculationMode () = 0;
2031  };
2032 
2033  /// Partial specialization for Names::perimeter
2034  template<class Opt, class... Opts>
2035  struct IAccS<Names::perimeter , Opt, Opts...> :
2036  IAcc<Opts...>
2037  {
2038  virtual const Opt& perimeter () const = 0;
2039  virtual Opt& perimeter () = 0;
2040  };
2041 
2042  /// Partial specialization for Names::area
2043  template<class Opt, class... Opts>
2044  struct IAccS<Names::area , Opt, Opts...> :
2045  IAcc<Opts...>
2046  {
2047  virtual const Opt& area () const = 0;
2048  virtual Opt& area () = 0;
2049  };
2050 
2051  /// Partial specialization for Names::initValue _OPALS_COMMENT_AFTER_("initialization value for specified cell (eg, opalsRasterize
2052  template<class Opt, class... Opts>
2053  struct IAccS<Names::initValue , Opt, Opts...> : ///< initialization value for specified cell (eg, opalsRasterize)
2054  IAcc<Opts...>
2055  {
2056  virtual const Opt& initValue () const = 0; ///< initialization value for specified cell (eg, opalsRasterize)
2057  virtual Opt& initValue () = 0; ///< initialization value for specified cell (eg, opalsRasterize)
2058  };
2059 
2060  /// Partial specialization for Names::samplingDist _OPALS_COMMENT_AFTER_("defines a uniform sampling distance (eg, opalsICP
2061  template<class Opt, class... Opts>
2062  struct IAccS<Names::samplingDist , Opt, Opts...> : ///< defines a uniform sampling distance (eg, opalsICP)
2063  IAcc<Opts...>
2064  {
2065  virtual const Opt& samplingDist () const = 0; ///< defines a uniform sampling distance (eg, opalsICP)
2066  virtual Opt& samplingDist () = 0; ///< defines a uniform sampling distance (eg, opalsICP)
2067  };
2068 
2069  /// Partial specialization for Names::lineVertexDist _OPALS_COMMENT_AFTER_("Regular distance for vertex spacing along linear geometries"
2070  template<class Opt, class... Opts>
2071  struct IAccS<Names::lineVertexDist , Opt, Opts...> : ///< Regular distance for vertex spacing along linear geometries
2072  IAcc<Opts...>
2073  {
2074  virtual const Opt& lineVertexDist () const = 0; ///< Regular distance for vertex spacing along linear geometries
2075  virtual Opt& lineVertexDist () = 0; ///< Regular distance for vertex spacing along linear geometries
2076  };
2077 
2078  /// Partial specialization for Names::lineBufferDist _OPALS_COMMENT_AFTER_("Line buffer distance "
2079  template<class Opt, class... Opts>
2080  struct IAccS<Names::lineBufferDist , Opt, Opts...> : ///< Line buffer distance
2081  IAcc<Opts...>
2082  {
2083  virtual const Opt& lineBufferDist () const = 0; ///< Line buffer distance
2084  virtual Opt& lineBufferDist () = 0; ///< Line buffer distance
2085  };
2086 
2087  /// Partial specialization for Names::modelPlaneThreshold _OPALS_COMMENT_AFTER_("defines a vertical distance threshold between a model and a plane (opalsModelFormAxis
2088  template<class Opt, class... Opts>
2089  struct IAccS<Names::modelPlaneThreshold , Opt, Opts...> : ///< defines a vertical distance threshold between a model and a plane (opalsModelFormAxis)
2090  IAcc<Opts...>
2091  {
2092  virtual const Opt& modelPlaneThreshold () const = 0; ///< defines a vertical distance threshold between a model and a plane (opalsModelFormAxis)
2093  virtual Opt& modelPlaneThreshold () = 0; ///< defines a vertical distance threshold between a model and a plane (opalsModelFormAxis)
2094  };
2095 
2096  /// Partial specialization for Names::redPoint _OPALS_COMMENT_AFTER_("defines the coordinates of a reduction point"
2097  template<class Opt, class... Opts>
2098  struct IAccS<Names::redPoint , Opt, Opts...> : ///< defines the coordinates of a reduction point
2099  IAcc<Opts...>
2100  {
2101  virtual const Opt& redPoint () const = 0; ///< defines the coordinates of a reduction point
2102  virtual Opt& redPoint () = 0; ///< defines the coordinates of a reduction point
2103  };
2104 
2105  /// Partial specialization for Names::plot
2106  template<class Opt, class... Opts>
2107  struct IAccS<Names::plot , Opt, Opts...> :
2108  IAcc<Opts...>
2109  {
2110  virtual const Opt& plot () const = 0;
2111  virtual Opt& plot () = 0;
2112  };
2113 
2114  /// Partial specialization for Names::subsetRadius
2115  template<class Opt, class... Opts>
2116  struct IAccS<Names::subsetRadius , Opt, Opts...> :
2117  IAcc<Opts...>
2118  {
2119  virtual const Opt& subsetRadius () const = 0;
2120  virtual Opt& subsetRadius () = 0;
2121  };
2122 
2123  /// Partial specialization for Names::outDirectory _OPALS_COMMENT_AFTER_("name of output directory"
2124  template<class Opt, class... Opts>
2125  struct IAccS<Names::outDirectory , Opt, Opts...> : ///< name of output directory
2126  IAcc<Opts...>
2127  {
2128  virtual const Opt& outDirectory () const = 0; ///< name of output directory
2129  virtual Opt& outDirectory () = 0; ///< name of output directory
2130  };
2131 
2132  /// Partial specialization for Names::tempDirectory _OPALS_COMMENT_AFTER_("name of temporary directory"
2133  template<class Opt, class... Opts>
2134  struct IAccS<Names::tempDirectory , Opt, Opts...> : ///< name of temporary directory
2135  IAcc<Opts...>
2136  {
2137  virtual const Opt& tempDirectory () const = 0; ///< name of temporary directory
2138  virtual Opt& tempDirectory () = 0; ///< name of temporary directory
2139  };
2140 
2141  /// Partial specialization for Names::transformData _OPALS_COMMENT_AFTER_("boolean flag indicating whether or not to transform the input data (eg. opalsICP
2142  template<class Opt, class... Opts>
2143  struct IAccS<Names::transformData , Opt, Opts...> : ///< boolean flag indicating whether or not to transform the input data (eg. opalsICP)
2144  IAcc<Opts...>
2145  {
2146  virtual const Opt& transformData () const = 0; ///< boolean flag indicating whether or not to transform the input data (eg. opalsICP)
2147  virtual Opt& transformData () = 0; ///< boolean flag indicating whether or not to transform the input data (eg. opalsICP)
2148  };
2149 
2150  /// Partial specialization for Names::fixedFile _OPALS_COMMENT_AFTER_("fixed dataset within adjustment (opalsICP
2151  template<class Opt, class... Opts>
2152  struct IAccS<Names::fixedFile , Opt, Opts...> : ///< fixed dataset within adjustment (opalsICP)
2153  IAcc<Opts...>
2154  {
2155  virtual const Opt& fixedFile () const = 0; ///< fixed dataset within adjustment (opalsICP)
2156  virtual Opt& fixedFile () = 0; ///< fixed dataset within adjustment (opalsICP)
2157  };
2158 
2159  /// Partial specialization for Names::normalSpaceSampling
2160  template<class Opt, class... Opts>
2161  struct IAccS<Names::normalSpaceSampling , Opt, Opts...> :
2162  IAcc<Opts...>
2163  {
2164  virtual const Opt& normalSpaceSampling () const = 0;
2165  virtual Opt& normalSpaceSampling () = 0;
2166  };
2167 
2168  /// Partial specialization for Names::maxLeverageSampling
2169  template<class Opt, class... Opts>
2170  struct IAccS<Names::maxLeverageSampling , Opt, Opts...> :
2171  IAcc<Opts...>
2172  {
2173  virtual const Opt& maxLeverageSampling () const = 0;
2174  virtual Opt& maxLeverageSampling () = 0;
2175  };
2176 
2177  /// Partial specialization for Names::multiBand _OPALS_COMMENT_AFTER_("used by opalsGrid to enable or disable multibans instead of multiple files for features.."
2178  template<class Opt, class... Opts>
2179  struct IAccS<Names::multiBand , Opt, Opts...> : ///< used by opalsGrid to enable or disable multibans instead of multiple files for features..
2180  IAcc<Opts...>
2181  {
2182  virtual const Opt& multiBand () const = 0; ///< used by opalsGrid to enable or disable multibans instead of multiple files for features..
2183  virtual Opt& multiBand () = 0; ///< used by opalsGrid to enable or disable multibans instead of multiple files for features..
2184  };
2185 
2186  /// Partial specialization for Names::storeStatistics _OPALS_COMMENT_AFTER_("used by zonal fit to store statistics as attribute in ODM file."
2187  template<class Opt, class... Opts>
2188  struct IAccS<Names::storeStatistics , Opt, Opts...> : ///< used by zonal fit to store statistics as attribute in ODM file.
2189  IAcc<Opts...>
2190  {
2191  virtual const Opt& storeStatistics () const = 0; ///< used by zonal fit to store statistics as attribute in ODM file.
2192  virtual Opt& storeStatistics () = 0; ///< used by zonal fit to store statistics as attribute in ODM file.
2193  };
2194 
2195  /// Partial specialization for Names::approxFile _OPALS_COMMENT_AFTER_("File containing approximation info."
2196  template<class Opt, class... Opts>
2197  struct IAccS<Names::approxFile , Opt, Opts...> : ///< File containing approximation info.
2198  IAcc<Opts...>
2199  {
2200  virtual const Opt& approxFile () const = 0; ///< File containing approximation info.
2201  virtual Opt& approxFile () = 0; ///< File containing approximation info.
2202  };
2203 
2204  /// Partial specialization for Names::procMode _OPALS_COMMENT_AFTER_("processing mode"
2205  template<class Opt, class... Opts>
2206  struct IAccS<Names::procMode , Opt, Opts...> : ///< processing mode
2207  IAcc<Opts...>
2208  {
2209  virtual const Opt& procMode () const = 0; ///< processing mode
2210  virtual Opt& procMode () = 0; ///< processing mode
2211  };
2212 
2213  /// Partial specialization for Names::suppressRungs _OPALS_COMMENT_AFTER_("remove all one-pixel-diagonal line elements (opalsVectorize, toPolyline
2214  template<class Opt, class... Opts>
2215  struct IAccS<Names::suppressRungs , Opt, Opts...> : ///< remove all one-pixel-diagonal line elements (opalsVectorize, toPolyline)
2216  IAcc<Opts...>
2217  {
2218  virtual const Opt& suppressRungs () const = 0; ///< remove all one-pixel-diagonal line elements (opalsVectorize, toPolyline)
2219  virtual Opt& suppressRungs () = 0; ///< remove all one-pixel-diagonal line elements (opalsVectorize, toPolyline)
2220  };
2221 
2222  /// Partial specialization for Names::processId _OPALS_COMMENT_AFTER_("defining a list of ids to process (opalsLineModeler
2223  template<class Opt, class... Opts>
2224  struct IAccS<Names::processId , Opt, Opts...> : ///< defining a list of ids to process (opalsLineModeler)
2225  IAcc<Opts...>
2226  {
2227  virtual const Opt& processId () const = 0; ///< defining a list of ids to process (opalsLineModeler)
2228  virtual Opt& processId () = 0; ///< defining a list of ids to process (opalsLineModeler)
2229  };
2230 
2231  /// Partial specialization for Names::ignoreId _OPALS_COMMENT_AFTER_("defining a list of ids to be ignored (opalsLineModeler
2232  template<class Opt, class... Opts>
2233  struct IAccS<Names::ignoreId , Opt, Opts...> : ///< defining a list of ids to be ignored (opalsLineModeler)
2234  IAcc<Opts...>
2235  {
2236  virtual const Opt& ignoreId () const = 0; ///< defining a list of ids to be ignored (opalsLineModeler)
2237  virtual Opt& ignoreId () = 0; ///< defining a list of ids to be ignored (opalsLineModeler)
2238  };
2239 
2240  /// Partial specialization for Names::criterion _OPALS_COMMENT_AFTER_("defining the segment homogeneity criterion (opalsSegmentation
2241  template<class Opt, class... Opts>
2242  struct IAccS<Names::criterion , Opt, Opts...> : ///< defining the segment homogeneity criterion (opalsSegmentation)
2243  IAcc<Opts...>
2244  {
2245  virtual const Opt& criterion () const = 0; ///< defining the segment homogeneity criterion (opalsSegmentation)
2246  virtual Opt& criterion () = 0; ///< defining the segment homogeneity criterion (opalsSegmentation)
2247  };
2248 
2249  /// Partial specialization for Names::minHeight _OPALS_COMMENT_AFTER_("minimum (object
2250  template<class Opt, class... Opts>
2251  struct IAccS<Names::minHeight , Opt, Opts...> : ///< minimum (object) height
2252  IAcc<Opts...>
2253  {
2254  virtual const Opt& minHeight () const = 0; ///< minimum (object) height
2255  virtual Opt& minHeight () = 0; ///< minimum (object) height
2256  };
2257 
2258  /// Partial specialization for Names::maxWidth _OPALS_COMMENT_AFTER_("maximum (object
2259  template<class Opt, class... Opts>
2260  struct IAccS<Names::maxWidth , Opt, Opts...> : ///< maximum (object) width
2261  IAcc<Opts...>
2262  {
2263  virtual const Opt& maxWidth () const = 0; ///< maximum (object) width
2264  virtual Opt& maxWidth () = 0; ///< maximum (object) width
2265  };
2266 
2267  /// Partial specialization for Names::minConsensus _OPALS_COMMENT_AFTER_("minimum level of consensus"
2268  template<class Opt, class... Opts>
2269  struct IAccS<Names::minConsensus , Opt, Opts...> : ///< minimum level of consensus
2270  IAcc<Opts...>
2271  {
2272  virtual const Opt& minConsensus () const = 0; ///< minimum level of consensus
2273  virtual Opt& minConsensus () = 0; ///< minimum level of consensus
2274  };
2275 
2276  /// Partial specialization for Names::mergePolygon _OPALS_COMMENT_AFTER_("merge polygon method (eg. opalsImport
2277  template<class Opt, class... Opts>
2278  struct IAccS<Names::mergePolygon , Opt, Opts...> : ///< merge polygon method (eg. opalsImport)
2279  IAcc<Opts...>
2280  {
2281  virtual const Opt& mergePolygon () const = 0; ///< merge polygon method (eg. opalsImport)
2282  virtual Opt& mergePolygon () = 0; ///< merge polygon method (eg. opalsImport)
2283  };
2284 
2285  /// Partial specialization for Names::thinOut _OPALS_COMMENT_AFTER_("thin out contour lines (opalsIsolines
2286  template<class Opt, class... Opts>
2287  struct IAccS<Names::thinOut , Opt, Opts...> : ///< thin out contour lines (opalsIsolines)
2288  IAcc<Opts...>
2289  {
2290  virtual const Opt& thinOut () const = 0; ///< thin out contour lines (opalsIsolines)
2291  virtual Opt& thinOut () = 0; ///< thin out contour lines (opalsIsolines)
2292  };
2293 
2294  /// Partial specialization for Names::closeMin _OPALS_COMMENT_AFTER_("suppress closed contours with area < closeMin (opalsIsolines
2295  template<class Opt, class... Opts>
2296  struct IAccS<Names::closeMin , Opt, Opts...> : ///< suppress closed contours with area < closeMin (opalsIsolines)
2297  IAcc<Opts...>
2298  {
2299  virtual const Opt& closeMin () const = 0; ///< suppress closed contours with area < closeMin (opalsIsolines)
2300  virtual Opt& closeMin () = 0; ///< suppress closed contours with area < closeMin (opalsIsolines)
2301  };
2302 
2303  /// Partial specialization for Names::densification _OPALS_COMMENT_AFTER_("densification mode (opalsIsolines
2304  template<class Opt, class... Opts>
2305  struct IAccS<Names::densification , Opt, Opts...> : ///< densification mode (opalsIsolines)
2306  IAcc<Opts...>
2307  {
2308  virtual const Opt& densification () const = 0; ///< densification mode (opalsIsolines)
2309  virtual Opt& densification () = 0; ///< densification mode (opalsIsolines)
2310  };
2311 
2312  /// Partial specialization for Names::detector _OPALS_COMMENT_AFTER_("edge detection method (opalsEdgeDetect
2313  template<class Opt, class... Opts>
2314  struct IAccS<Names::detector , Opt, Opts...> : ///< edge detection method (opalsEdgeDetect)
2315  IAcc<Opts...>
2316  {
2317  virtual const Opt& detector () const = 0; ///< edge detection method (opalsEdgeDetect)
2318  virtual Opt& detector () = 0; ///< edge detection method (opalsEdgeDetect)
2319  };
2320 
2321  /// Partial specialization for Names::threshold _OPALS_COMMENT_AFTER_("threshold (opalsEdgeDetect
2322  template<class Opt, class... Opts>
2323  struct IAccS<Names::threshold , Opt, Opts...> : ///< threshold (opalsEdgeDetect)
2324  IAcc<Opts...>
2325  {
2326  virtual const Opt& threshold () const = 0; ///< threshold (opalsEdgeDetect)
2327  virtual Opt& threshold () = 0; ///< threshold (opalsEdgeDetect)
2328  };
2329 
2330  /// Partial specialization for Names::method _OPALS_COMMENT_AFTER_("method of computation (opalsFillGaps, opalsLineTopology
2331  template<class Opt, class... Opts>
2332  struct IAccS<Names::method , Opt, Opts...> : ///< method of computation (opalsFillGaps, opalsLineTopology)
2333  IAcc<Opts...>
2334  {
2335  virtual const Opt& method () const = 0; ///< method of computation (opalsFillGaps, opalsLineTopology)
2336  virtual Opt& method () = 0; ///< method of computation (opalsFillGaps, opalsLineTopology)
2337  };
2338 
2339  /// Partial specialization for Names::boundaryRatio _OPALS_COMMENT_AFTER_("ratio between the valid boundary pixel of a gap and the number of gap-pixel that lie on the image boundary (opalsFillGaps
2340  template<class Opt, class... Opts>
2341  struct IAccS<Names::boundaryRatio , Opt, Opts...> : ///< ratio between the valid boundary pixel of a gap and the number of gap-pixel that lie on the image boundary (opalsFillGaps)
2342  IAcc<Opts...>
2343  {
2344  virtual const Opt& boundaryRatio () const = 0; ///< ratio between the valid boundary pixel of a gap and the number of gap-pixel that lie on the image boundary (opalsFillGaps)
2345  virtual Opt& boundaryRatio () = 0; ///< ratio between the valid boundary pixel of a gap and the number of gap-pixel that lie on the image boundary (opalsFillGaps)
2346  };
2347 
2348  /// Partial specialization for Names::avgDist _OPALS_COMMENT_AFTER_("average distance (opalsLineTopology
2349  template<class Opt, class... Opts>
2350  struct IAccS<Names::avgDist , Opt, Opts...> : ///< average distance (opalsLineTopology)
2351  IAcc<Opts...>
2352  {
2353  virtual const Opt& avgDist () const = 0; ///< average distance (opalsLineTopology)
2354  virtual Opt& avgDist () = 0; ///< average distance (opalsLineTopology)
2355  };
2356 
2357  /// Partial specialization for Names::merge _OPALS_COMMENT_AFTER_("Parameter group 'merge' (opalsLineTopology
2358  template<class Opt, class... Opts>
2359  struct IAccS<Names::merge , Opt, Opts...> : ///< Parameter group 'merge' (opalsLineTopology)
2360  IAcc<Opts...>
2361  {
2362  virtual const Opt& merge () const = 0; ///< Parameter group 'merge' (opalsLineTopology)
2363  virtual Opt& merge () = 0; ///< Parameter group 'merge' (opalsLineTopology)
2364  };
2365 
2366  /// Partial specialization for Names::minWeight _OPALS_COMMENT_AFTER_("minimum weight (opalsLineTopology
2367  template<class Opt, class... Opts>
2368  struct IAccS<Names::minWeight , Opt, Opts...> : ///< minimum weight (opalsLineTopology)
2369  IAcc<Opts...>
2370  {
2371  virtual const Opt& minWeight () const = 0; ///< minimum weight (opalsLineTopology)
2372  virtual Opt& minWeight () = 0; ///< minimum weight (opalsLineTopology)
2373  };
2374 
2375  /// Partial specialization for Names::relWeightLead _OPALS_COMMENT_AFTER_("relative weight lead (opalsLineTopology
2376  template<class Opt, class... Opts>
2377  struct IAccS<Names::relWeightLead , Opt, Opts...> : ///< relative weight lead (opalsLineTopology)
2378  IAcc<Opts...>
2379  {
2380  virtual const Opt& relWeightLead () const = 0; ///< relative weight lead (opalsLineTopology)
2381  virtual Opt& relWeightLead () = 0; ///< relative weight lead (opalsLineTopology)
2382  };
2383 
2384  /// Partial specialization for Names::revertDist _OPALS_COMMENT_AFTER_("revert distance (opalsLineTopology
2385  template<class Opt, class... Opts>
2386  struct IAccS<Names::revertDist , Opt, Opts...> : ///< revert distance (opalsLineTopology)
2387  IAcc<Opts...>
2388  {
2389  virtual const Opt& revertDist () const = 0; ///< revert distance (opalsLineTopology)
2390  virtual Opt& revertDist () = 0; ///< revert distance (opalsLineTopology)
2391  };
2392 
2393  /// Partial specialization for Names::revertInterval _OPALS_COMMENT_AFTER_("revert interval (opalsLineTopology
2394  template<class Opt, class... Opts>
2395  struct IAccS<Names::revertInterval , Opt, Opts...> : ///< revert interval (opalsLineTopology)
2396  IAcc<Opts...>
2397  {
2398  virtual const Opt& revertInterval () const = 0; ///< revert interval (opalsLineTopology)
2399  virtual Opt& revertInterval () = 0; ///< revert interval (opalsLineTopology)
2400  };
2401 
2402  /// Partial specialization for Names::searchGeneration _OPALS_COMMENT_AFTER_("search generation (opalsLineTopology
2403  template<class Opt, class... Opts>
2404  struct IAccS<Names::searchGeneration , Opt, Opts...> : ///< search generation (opalsLineTopology)
2405  IAcc<Opts...>
2406  {
2407  virtual const Opt& searchGeneration () const = 0; ///< search generation (opalsLineTopology)
2408  virtual Opt& searchGeneration () = 0; ///< search generation (opalsLineTopology)
2409  };
2410 
2411  /// Partial specialization for Names::preventIntersection _OPALS_COMMENT_AFTER_("prevent intersection of lines (opalsLineTopology
2412  template<class Opt, class... Opts>
2413  struct IAccS<Names::preventIntersection , Opt, Opts...> : ///< prevent intersection of lines (opalsLineTopology)
2414  IAcc<Opts...>
2415  {
2416  virtual const Opt& preventIntersection () const = 0; ///< prevent intersection of lines (opalsLineTopology)
2417  virtual Opt& preventIntersection () = 0; ///< prevent intersection of lines (opalsLineTopology)
2418  };
2419 
2420  /// Partial specialization for Names::wf _OPALS_COMMENT_AFTER_("Parameter group 'wf' containing weight factor options (opalsLineTopology
2421  template<class Opt, class... Opts>
2422  struct IAccS<Names::wf , Opt, Opts...> : ///< Parameter group 'wf' containing weight factor options (opalsLineTopology)
2423  IAcc<Opts...>
2424  {
2425  virtual const Opt& wf () const = 0; ///< Parameter group 'wf' containing weight factor options (opalsLineTopology)
2426  virtual Opt& wf () = 0; ///< Parameter group 'wf' containing weight factor options (opalsLineTopology)
2427  };
2428 
2429  /// Partial specialization for Names::dist _OPALS_COMMENT_AFTER_("weight factor distance (opalsLineTopology
2430  template<class Opt, class... Opts>
2431  struct IAccS<Names::dist , Opt, Opts...> : ///< weight factor distance (opalsLineTopology)
2432  IAcc<Opts...>
2433  {
2434  virtual const Opt& dist () const = 0; ///< weight factor distance (opalsLineTopology)
2435  virtual Opt& dist () = 0; ///< weight factor distance (opalsLineTopology)
2436  };
2437 
2438  /// Partial specialization for Names::angle _OPALS_COMMENT_AFTER_("weight factor angle (Hz, V
2439  template<class Opt, class... Opts>
2440  struct IAccS<Names::angle , Opt, Opts...> : ///< weight factor angle (Hz, V) (opalsLineTopology)
2441  IAcc<Opts...>
2442  {
2443  virtual const Opt& angle () const = 0; ///< weight factor angle (Hz, V) (opalsLineTopology)
2444  virtual Opt& angle () = 0; ///< weight factor angle (Hz, V) (opalsLineTopology)
2445  };
2446 
2447  /// Partial specialization for Names::straightness _OPALS_COMMENT_AFTER_("weight factor straightness (opalsLineTopology
2448  template<class Opt, class... Opts>
2449  struct IAccS<Names::straightness , Opt, Opts...> : ///< weight factor straightness (opalsLineTopology)
2450  IAcc<Opts...>
2451  {
2452  virtual const Opt& straightness () const = 0; ///< weight factor straightness (opalsLineTopology)
2453  virtual Opt& straightness () = 0; ///< weight factor straightness (opalsLineTopology)
2454  };
2455 
2456  /// Partial specialization for Names::perpDist _OPALS_COMMENT_AFTER_("weight factor perpendicular distance (opalsLineTopology
2457  template<class Opt, class... Opts>
2458  struct IAccS<Names::perpDist , Opt, Opts...> : ///< weight factor perpendicular distance (opalsLineTopology)
2459  IAcc<Opts...>
2460  {
2461  virtual const Opt& perpDist () const = 0; ///< weight factor perpendicular distance (opalsLineTopology)
2462  virtual Opt& perpDist () = 0; ///< weight factor perpendicular distance (opalsLineTopology)
2463  };
2464 
2465  /// Partial specialization for Names::clean _OPALS_COMMENT_AFTER_("Parameter group 'clean' (opalsLineTopology
2466  template<class Opt, class... Opts>
2467  struct IAccS<Names::clean , Opt, Opts...> : ///< Parameter group 'clean' (opalsLineTopology)
2468  IAcc<Opts...>
2469  {
2470  virtual const Opt& clean () const = 0; ///< Parameter group 'clean' (opalsLineTopology)
2471  virtual Opt& clean () = 0; ///< Parameter group 'clean' (opalsLineTopology)
2472  };
2473 
2474  /// Partial specialization for Names::intersectSnapDist _OPALS_COMMENT_AFTER_("omit distance for missing intersections (opalsLineTopology
2475  template<class Opt, class... Opts>
2476  struct IAccS<Names::intersectSnapDist , Opt, Opts...> : ///< omit distance for missing intersections (opalsLineTopology)
2477  IAcc<Opts...>
2478  {
2479  virtual const Opt& intersectSnapDist () const = 0; ///< omit distance for missing intersections (opalsLineTopology)
2480  virtual Opt& intersectSnapDist () = 0; ///< omit distance for missing intersections (opalsLineTopology)
2481  };
2482 
2483  /// Partial specialization for Names::deleteTempData _OPALS_COMMENT_AFTER_("Delete temporary / intermediate data (opalsTerrainFilter
2484  template<class Opt, class... Opts>
2485  struct IAccS<Names::deleteTempData , Opt, Opts...> : ///< Delete temporary / intermediate data (opalsTerrainFilter)
2486  IAcc<Opts...>
2487  {
2488  virtual const Opt& deleteTempData () const = 0; ///< Delete temporary / intermediate data (opalsTerrainFilter)
2489  virtual Opt& deleteTempData () = 0; ///< Delete temporary / intermediate data (opalsTerrainFilter)
2490  };
2491 
2492  /// Partial specialization for Names::tempData _OPALS_COMMENT_AFTER_("Temporary / intermediate data group (opalsStripAdjust
2493  template<class Opt, class... Opts>
2494  struct IAccS<Names::tempData , Opt, Opts...> : ///< Temporary / intermediate data group (opalsStripAdjust)
2495  IAcc<Opts...>
2496  {
2497  virtual const Opt& tempData () const = 0; ///< Temporary / intermediate data group (opalsStripAdjust)
2498  virtual Opt& tempData () = 0; ///< Temporary / intermediate data group (opalsStripAdjust)
2499  };
2500 
2501  /// Partial specialization for Names::directory _OPALS_COMMENT_AFTER_("Temporary / intermediate data directory path (opalsStripAdjust
2502  template<class Opt, class... Opts>
2503  struct IAccS<Names::directory , Opt, Opts...> : ///< Temporary / intermediate data directory path (opalsStripAdjust)
2504  IAcc<Opts...>
2505  {
2506  virtual const Opt& directory () const = 0; ///< Temporary / intermediate data directory path (opalsStripAdjust)
2507  virtual Opt& directory () = 0; ///< Temporary / intermediate data directory path (opalsStripAdjust)
2508  };
2509 
2510  /// Partial specialization for Names::cleanup _OPALS_COMMENT_AFTER_("Cleanup / delete temporary / intermediate data (opalsStripAdjust
2511  template<class Opt, class... Opts>
2512  struct IAccS<Names::cleanup , Opt, Opts...> : ///< Cleanup / delete temporary / intermediate data (opalsStripAdjust)
2513  IAcc<Opts...>
2514  {
2515  virtual const Opt& cleanup () const = 0; ///< Cleanup / delete temporary / intermediate data (opalsStripAdjust)
2516  virtual Opt& cleanup () = 0; ///< Cleanup / delete temporary / intermediate data (opalsStripAdjust)
2517  };
2518 
2519  /// Partial specialization for Names::compress _OPALS_COMMENT_AFTER_("Compress temporary / intermediate data (opalsStripAdjust
2520  template<class Opt, class... Opts>
2521  struct IAccS<Names::compress , Opt, Opts...> : ///< Compress temporary / intermediate data (opalsStripAdjust)
2522  IAcc<Opts...>
2523  {
2524  virtual const Opt& compress () const = 0; ///< Compress temporary / intermediate data (opalsStripAdjust)
2525  virtual Opt& compress () = 0; ///< Compress temporary / intermediate data (opalsStripAdjust)
2526  };
2527 
2528  /// Partial specialization for Names::utm _OPALS_COMMENT_AFTER_("UTM definition group (opalsStripAdjust
2529  template<class Opt, class... Opts>
2530  struct IAccS<Names::utm , Opt, Opts...> : ///< UTM definition group (opalsStripAdjust)
2531  IAcc<Opts...>
2532  {
2533  virtual const Opt& utm () const = 0; ///< UTM definition group (opalsStripAdjust)
2534  virtual Opt& utm () = 0; ///< UTM definition group (opalsStripAdjust)
2535  };
2536 
2537  /// Partial specialization for Names::zone _OPALS_COMMENT_AFTER_("UTM definition group (opalsStripAdjust
2538  template<class Opt, class... Opts>
2539  struct IAccS<Names::zone , Opt, Opts...> : ///< UTM definition group (opalsStripAdjust)
2540  IAcc<Opts...>
2541  {
2542  virtual const Opt& zone () const = 0; ///< UTM definition group (opalsStripAdjust)
2543  virtual Opt& zone () = 0; ///< UTM definition group (opalsStripAdjust)
2544  };
2545 
2546  /// Partial specialization for Names::hemisphere _OPALS_COMMENT_AFTER_("UTM definition group (opalsStripAdjust
2547  template<class Opt, class... Opts>
2548  struct IAccS<Names::hemisphere , Opt, Opts...> : ///< UTM definition group (opalsStripAdjust)
2549  IAcc<Opts...>
2550  {
2551  virtual const Opt& hemisphere () const = 0; ///< UTM definition group (opalsStripAdjust)
2552  virtual Opt& hemisphere () = 0; ///< UTM definition group (opalsStripAdjust)
2553  };
2554 
2555  /// Partial specialization for Names::adjustment _OPALS_COMMENT_AFTER_("adjustment group (opalsStripAdjust
2556  template<class Opt, class... Opts>
2557  struct IAccS<Names::adjustment , Opt, Opts...> : ///< adjustment group (opalsStripAdjust)
2558  IAcc<Opts...>
2559  {
2560  virtual const Opt& adjustment () const = 0; ///< adjustment group (opalsStripAdjust)
2561  virtual Opt& adjustment () = 0; ///< adjustment group (opalsStripAdjust)
2562  };
2563 
2564  /// Partial specialization for Names::covariance _OPALS_COMMENT_AFTER_("estimate covariance? (opalsStripAdjust
2565  template<class Opt, class... Opts>
2566  struct IAccS<Names::covariance , Opt, Opts...> : ///< estimate covariance? (opalsStripAdjust)
2567  IAcc<Opts...>
2568  {
2569  virtual const Opt& covariance () const = 0; ///< estimate covariance? (opalsStripAdjust)
2570  virtual Opt& covariance () = 0; ///< estimate covariance? (opalsStripAdjust)
2571  };
2572 
2573  /// Partial specialization for Names::strips _OPALS_COMMENT_AFTER_("strip group (opalsStripAdjust
2574  template<class Opt, class... Opts>
2575  struct IAccS<Names::strips , Opt, Opts...> : ///< strip group (opalsStripAdjust)
2576  IAcc<Opts...>
2577  {
2578  virtual const Opt& strips () const = 0; ///< strip group (opalsStripAdjust)
2579  virtual Opt& strips () = 0; ///< strip group (opalsStripAdjust)
2580  };
2581 
2582  /// Partial specialization for Names::calcScanAngle _OPALS_COMMENT_AFTER_("strip group (opalsStripAdjust
2583  template<class Opt, class... Opts>
2584  struct IAccS<Names::calcScanAngle , Opt, Opts...> : ///< strip group (opalsStripAdjust)
2585  IAcc<Opts...>
2586  {
2587  virtual const Opt& calcScanAngle () const = 0; ///< strip group (opalsStripAdjust)
2588  virtual Opt& calcScanAngle () = 0; ///< strip group (opalsStripAdjust)
2589  };
2590 
2591  /// Partial specialization for Names::scannerOrientation _OPALS_COMMENT_AFTER_("strip group (opalsStripAdjust
2592  template<class Opt, class... Opts>
2593  struct IAccS<Names::scannerOrientation , Opt, Opts...> : ///< strip group (opalsStripAdjust)
2594  IAcc<Opts...>
2595  {
2596  virtual const Opt& scannerOrientation () const = 0; ///< strip group (opalsStripAdjust)
2597  virtual Opt& scannerOrientation () = 0; ///< strip group (opalsStripAdjust)
2598  };
2599 
2600  /// Partial specialization for Names::session _OPALS_COMMENT_AFTER_("strip group (opalsStripAdjust
2601  template<class Opt, class... Opts>
2602  struct IAccS<Names::session , Opt, Opts...> : ///< strip group (opalsStripAdjust)
2603  IAcc<Opts...>
2604  {
2605  virtual const Opt& session () const = 0; ///< strip group (opalsStripAdjust)
2606  virtual Opt& session () = 0; ///< strip group (opalsStripAdjust)
2607  };
2608 
2609  /// Partial specialization for Names::sessions _OPALS_COMMENT_AFTER_("sessions group (opalsStripAdjust
2610  template<class Opt, class... Opts>
2611  struct IAccS<Names::sessions , Opt, Opts...> : ///< sessions group (opalsStripAdjust)
2612  IAcc<Opts...>
2613  {
2614  virtual const Opt& sessions () const = 0; ///< sessions group (opalsStripAdjust)
2615  virtual Opt& sessions () = 0; ///< sessions group (opalsStripAdjust)
2616  };
2617 
2618  /// Partial specialization for Names::onlyLastEchoes _OPALS_COMMENT_AFTER_("strip group (opalsStripAdjust
2619  template<class Opt, class... Opts>
2620  struct IAccS<Names::onlyLastEchoes , Opt, Opts...> : ///< strip group (opalsStripAdjust)
2621  IAcc<Opts...>
2622  {
2623  virtual const Opt& onlyLastEchoes () const = 0; ///< strip group (opalsStripAdjust)
2624  virtual Opt& onlyLastEchoes () = 0; ///< strip group (opalsStripAdjust)
2625  };
2626 
2627  /// Partial specialization for Names::echoWidthMax _OPALS_COMMENT_AFTER_("strip.filter group (opalsStripAdjust
2628  template<class Opt, class... Opts>
2629  struct IAccS<Names::echoWidthMax , Opt, Opts...> : ///< strip.filter group (opalsStripAdjust)
2630  IAcc<Opts...>
2631  {
2632  virtual const Opt& echoWidthMax () const = 0; ///< strip.filter group (opalsStripAdjust)
2633  virtual Opt& echoWidthMax () = 0; ///< strip.filter group (opalsStripAdjust)
2634  };
2635 
2636  /// Partial specialization for Names::scanAngleMaxAbs _OPALS_COMMENT_AFTER_("strip.filter group (opalsStripAdjust
2637  template<class Opt, class... Opts>
2638  struct IAccS<Names::scanAngleMaxAbs , Opt, Opts...> : ///< strip.filter group (opalsStripAdjust)
2639  IAcc<Opts...>
2640  {
2641  virtual const Opt& scanAngleMaxAbs () const = 0; ///< strip.filter group (opalsStripAdjust)
2642  virtual Opt& scanAngleMaxAbs () = 0; ///< strip.filter group (opalsStripAdjust)
2643  };
2644 
2645  /// Partial specialization for Names::trajectory _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2646  template<class Opt, class... Opts>
2647  struct IAccS<Names::trajectory , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2648  IAcc<Opts...>
2649  {
2650  virtual const Opt& trajectory () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2651  virtual Opt& trajectory () = 0; ///< strip.trajectory group (opalsStripAdjust)
2652  };
2653 
2654  /// Partial specialization for Names::correctionModel _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2655  template<class Opt, class... Opts>
2656  struct IAccS<Names::correctionModel , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2657  IAcc<Opts...>
2658  {
2659  virtual const Opt& correctionModel () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2660  virtual Opt& correctionModel () = 0; ///< strip.trajectory group (opalsStripAdjust)
2661  };
2662 
2663  /// Partial specialization for Names::samplingInterval _OPALS_COMMENT_AFTER_("trajectory sampling interval [s] strip.trajectory group (opalsStripAdjust
2664  template<class Opt, class... Opts>
2665  struct IAccS<Names::samplingInterval , Opt, Opts...> : ///< trajectory sampling interval [s] strip.trajectory group (opalsStripAdjust)
2666  IAcc<Opts...>
2667  {
2668  virtual const Opt& samplingInterval () const = 0; ///< trajectory sampling interval [s] strip.trajectory group (opalsStripAdjust)
2669  virtual Opt& samplingInterval () = 0; ///< trajectory sampling interval [s] strip.trajectory group (opalsStripAdjust)
2670  };
2671 
2672  /// Partial specialization for Names::boundaryDerivativeIsZero _OPALS_COMMENT_AFTER_("strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust
2673  template<class Opt, class... Opts>
2674  struct IAccS<Names::boundaryDerivativeIsZero , Opt, Opts...> : ///< strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
2675  IAcc<Opts...>
2676  {
2677  virtual const Opt& boundaryDerivativeIsZero () const = 0; ///< strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
2678  virtual Opt& boundaryDerivativeIsZero () = 0; ///< strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
2679  };
2680 
2681  /// Partial specialization for Names::first _OPALS_COMMENT_AFTER_("strip.trajectory.boundaryDerivativeIsZero group; first stage to be processed (opalsStripAdjust
2682  template<class Opt, class... Opts>
2683  struct IAccS<Names::first , Opt, Opts...> : ///< strip.trajectory.boundaryDerivativeIsZero group; first stage to be processed (opalsStripAdjust)
2684  IAcc<Opts...>
2685  {
2686  virtual const Opt& first () const = 0; ///< strip.trajectory.boundaryDerivativeIsZero group; first stage to be processed (opalsStripAdjust)
2687  virtual Opt& first () = 0; ///< strip.trajectory.boundaryDerivativeIsZero group; first stage to be processed (opalsStripAdjust)
2688  };
2689 
2690  /// Partial specialization for Names::second _OPALS_COMMENT_AFTER_("strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust
2691  template<class Opt, class... Opts>
2692  struct IAccS<Names::second , Opt, Opts...> : ///< strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
2693  IAcc<Opts...>
2694  {
2695  virtual const Opt& second () const = 0; ///< strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
2696  virtual Opt& second () = 0; ///< strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
2697  };
2698 
2699  /// Partial specialization for Names::dX _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2700  template<class Opt, class... Opts>
2701  struct IAccS<Names::dX , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2702  IAcc<Opts...>
2703  {
2704  virtual const Opt& dX () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2705  virtual Opt& dX () = 0; ///< strip.trajectory group (opalsStripAdjust)
2706  };
2707 
2708  /// Partial specialization for Names::dY _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2709  template<class Opt, class... Opts>
2710  struct IAccS<Names::dY , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2711  IAcc<Opts...>
2712  {
2713  virtual const Opt& dY () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2714  virtual Opt& dY () = 0; ///< strip.trajectory group (opalsStripAdjust)
2715  };
2716 
2717  /// Partial specialization for Names::dZ _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2718  template<class Opt, class... Opts>
2719  struct IAccS<Names::dZ , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2720  IAcc<Opts...>
2721  {
2722  virtual const Opt& dZ () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2723  virtual Opt& dZ () = 0; ///< strip.trajectory group (opalsStripAdjust)
2724  };
2725 
2726  /// Partial specialization for Names::dRoll _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2727  template<class Opt, class... Opts>
2728  struct IAccS<Names::dRoll , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2729  IAcc<Opts...>
2730  {
2731  virtual const Opt& dRoll () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2732  virtual Opt& dRoll () = 0; ///< strip.trajectory group (opalsStripAdjust)
2733  };
2734 
2735  /// Partial specialization for Names::dPitch _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2736  template<class Opt, class... Opts>
2737  struct IAccS<Names::dPitch , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2738  IAcc<Opts...>
2739  {
2740  virtual const Opt& dPitch () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2741  virtual Opt& dPitch () = 0; ///< strip.trajectory group (opalsStripAdjust)
2742  };
2743 
2744  /// Partial specialization for Names::dYaw _OPALS_COMMENT_AFTER_("strip.trajectory group (opalsStripAdjust
2745  template<class Opt, class... Opts>
2746  struct IAccS<Names::dYaw , Opt, Opts...> : ///< strip.trajectory group (opalsStripAdjust)
2747  IAcc<Opts...>
2748  {
2749  virtual const Opt& dYaw () const = 0; ///< strip.trajectory group (opalsStripAdjust)
2750  virtual Opt& dYaw () = 0; ///< strip.trajectory group (opalsStripAdjust)
2751  };
2752 
2753  /// Partial specialization for Names::value _OPALS_COMMENT_AFTER_("strip.trajectory.dX/dY/dZ/dRoll/dPitch/dYaw groups (opalsStripAdjust
2754  template<class Opt, class... Opts>
2755  struct IAccS<Names::value , Opt, Opts...> : ///< strip.trajectory.dX/dY/dZ/dRoll/dPitch/dYaw groups (opalsStripAdjust)
2756  IAcc<Opts...>
2757  {
2758  virtual const Opt& value () const = 0; ///< strip.trajectory.dX/dY/dZ/dRoll/dPitch/dYaw groups (opalsStripAdjust)
2759  virtual Opt& value () = 0; ///< strip.trajectory.dX/dY/dZ/dRoll/dPitch/dYaw groups (opalsStripAdjust)
2760  };
2761 
2762  /// Partial specialization for Names::normals _OPALS_COMMENT_AFTER_("normals group (opalsStripAdjust
2763  template<class Opt, class... Opts>
2764  struct IAccS<Names::normals , Opt, Opts...> : ///< normals group (opalsStripAdjust)
2765  IAcc<Opts...>
2766  {
2767  virtual const Opt& normals () const = 0; ///< normals group (opalsStripAdjust)
2768  virtual Opt& normals () = 0; ///< normals group (opalsStripAdjust)
2769  };
2770 
2771  /// Partial specialization for Names::maxPointDensity _OPALS_COMMENT_AFTER_("(opalsStripAdjust
2772  template<class Opt, class... Opts>
2773  struct IAccS<Names::maxPointDensity , Opt, Opts...> : ///< (opalsStripAdjust)
2774  IAcc<Opts...>
2775  {
2776  virtual const Opt& maxPointDensity () const = 0; ///< (opalsStripAdjust)
2777  virtual Opt& maxPointDensity () = 0; ///< (opalsStripAdjust)
2778  };
2779 
2780  /// Partial specialization for Names::controlPointClouds _OPALS_COMMENT_AFTER_("controlPointClouds group(opalsStripAdjust
2781  template<class Opt, class... Opts>
2782  struct IAccS<Names::controlPointClouds , Opt, Opts...> : ///< controlPointClouds group(opalsStripAdjust)
2783  IAcc<Opts...>
2784  {
2785  virtual const Opt& controlPointClouds () const = 0; ///< controlPointClouds group(opalsStripAdjust)
2786  virtual Opt& controlPointClouds () = 0; ///< controlPointClouds group(opalsStripAdjust)
2787  };
2788 
2789  /// Partial specialization for Names::groundControlPoints _OPALS_COMMENT_AFTER_("groundControlPoints group(opalsStripAdjust
2790  template<class Opt, class... Opts>
2791  struct IAccS<Names::groundControlPoints , Opt, Opts...> : ///< groundControlPoints group(opalsStripAdjust)
2792  IAcc<Opts...>
2793  {
2794  virtual const Opt& groundControlPoints () const = 0; ///< groundControlPoints group(opalsStripAdjust)
2795  virtual Opt& groundControlPoints () = 0; ///< groundControlPoints group(opalsStripAdjust)
2796  };
2797 
2798  /// Partial specialization for Names::timeLag _OPALS_COMMENT_AFTER_("sessions.trajectory group(opalsStripAdjust
2799  template<class Opt, class... Opts>
2800  struct IAccS<Names::timeLag , Opt, Opts...> : ///< sessions.trajectory group(opalsStripAdjust)
2801  IAcc<Opts...>
2802  {
2803  virtual const Opt& timeLag () const = 0; ///< sessions.trajectory group(opalsStripAdjust)
2804  virtual Opt& timeLag () = 0; ///< sessions.trajectory group(opalsStripAdjust)
2805  };
2806 
2807  /// Partial specialization for Names::leverArm _OPALS_COMMENT_AFTER_("sessions.adjustment group(opalsStripAdjust
2808  template<class Opt, class... Opts>
2809  struct IAccS<Names::leverArm , Opt, Opts...> : ///< sessions.adjustment group(opalsStripAdjust)
2810  IAcc<Opts...>
2811  {
2812  virtual const Opt& leverArm () const = 0; ///< sessions.adjustment group(opalsStripAdjust)
2813  virtual Opt& leverArm () = 0; ///< sessions.adjustment group(opalsStripAdjust)
2814  };
2815 
2816  /// Partial specialization for Names::X _OPALS_COMMENT_AFTER_("sessions.adjustment.leverArm group(opalsStripAdjust
2817  template<class Opt, class... Opts>
2818  struct IAccS<Names::X , Opt, Opts...> : ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2819  IAcc<Opts...>
2820  {
2821  virtual const Opt& X () const = 0; ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2822  virtual Opt& X () = 0; ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2823  };
2824 
2825  /// Partial specialization for Names::Y _OPALS_COMMENT_AFTER_("sessions.adjustment.leverArm group(opalsStripAdjust
2826  template<class Opt, class... Opts>
2827  struct IAccS<Names::Y , Opt, Opts...> : ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2828  IAcc<Opts...>
2829  {
2830  virtual const Opt& Y () const = 0; ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2831  virtual Opt& Y () = 0; ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2832  };
2833 
2834  /// Partial specialization for Names::Z _OPALS_COMMENT_AFTER_("sessions.adjustment.leverArm group(opalsStripAdjust
2835  template<class Opt, class... Opts>
2836  struct IAccS<Names::Z , Opt, Opts...> : ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2837  IAcc<Opts...>
2838  {
2839  virtual const Opt& Z () const = 0; ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2840  virtual Opt& Z () = 0; ///< sessions.adjustment.leverArm group(opalsStripAdjust)
2841  };
2842 
2843  /// Partial specialization for Names::misalignment _OPALS_COMMENT_AFTER_("sessions.adjustment.misalignment group(opalsStripAdjust
2844  template<class Opt, class... Opts>
2845  struct IAccS<Names::misalignment , Opt, Opts...> : ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2846  IAcc<Opts...>
2847  {
2848  virtual const Opt& misalignment () const = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2849  virtual Opt& misalignment () = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2850  };
2851 
2852  /// Partial specialization for Names::omega _OPALS_COMMENT_AFTER_("sessions.adjustment.misalignment group(opalsStripAdjust
2853  template<class Opt, class... Opts>
2854  struct IAccS<Names::omega , Opt, Opts...> : ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2855  IAcc<Opts...>
2856  {
2857  virtual const Opt& omega () const = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2858  virtual Opt& omega () = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2859  };
2860 
2861  /// Partial specialization for Names::phi _OPALS_COMMENT_AFTER_("sessions.adjustment.misalignment group(opalsStripAdjust
2862  template<class Opt, class... Opts>
2863  struct IAccS<Names::phi , Opt, Opts...> : ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2864  IAcc<Opts...>
2865  {
2866  virtual const Opt& phi () const = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2867  virtual Opt& phi () = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2868  };
2869 
2870  /// Partial specialization for Names::kappa _OPALS_COMMENT_AFTER_("sessions.adjustment.misalignment group(opalsStripAdjust
2871  template<class Opt, class... Opts>
2872  struct IAccS<Names::kappa , Opt, Opts...> : ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2873  IAcc<Opts...>
2874  {
2875  virtual const Opt& kappa () const = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2876  virtual Opt& kappa () = 0; ///< sessions.adjustment.misalignment group(opalsStripAdjust)
2877  };
2878 
2879  /// Partial specialization for Names::scanner _OPALS_COMMENT_AFTER_("sessions.adjustment.scanner group(opalsStripAdjust
2880  template<class Opt, class... Opts>
2881  struct IAccS<Names::scanner , Opt, Opts...> : ///< sessions.adjustment.scanner group(opalsStripAdjust)
2882  IAcc<Opts...>
2883  {
2884  virtual const Opt& scanner () const = 0; ///< sessions.adjustment.scanner group(opalsStripAdjust)
2885  virtual Opt& scanner () = 0; ///< sessions.adjustment.scanner group(opalsStripAdjust)
2886  };
2887 
2888  /// Partial specialization for Names::range _OPALS_COMMENT_AFTER_("scanner range group (opalsStripAdjust
2889  template<class Opt, class... Opts>
2890  struct IAccS<Names::range , Opt, Opts...> : ///< scanner range group (opalsStripAdjust)
2891  IAcc<Opts...>
2892  {
2893  virtual const Opt& range () const = 0; ///< scanner range group (opalsStripAdjust)
2894  virtual Opt& range () = 0; ///< scanner range group (opalsStripAdjust)
2895  };
2896 
2897  /// Partial specialization for Names::offset _OPALS_COMMENT_AFTER_("scanner range offset (opalsStripAdjust
2898  template<class Opt, class... Opts>
2899  struct IAccS<Names::offset , Opt, Opts...> : ///< scanner range offset (opalsStripAdjust)
2900  IAcc<Opts...>
2901  {
2902  virtual const Opt& offset () const = 0; ///< scanner range offset (opalsStripAdjust)
2903  virtual Opt& offset () = 0; ///< scanner range offset (opalsStripAdjust)
2904  };
2905 
2906  /// Partial specialization for Names::scale _OPALS_COMMENT_AFTER_("scanner range scale (opalsStripAdjust
2907  template<class Opt, class... Opts>
2908  struct IAccS<Names::scale , Opt, Opts...> : ///< scanner range scale (opalsStripAdjust)
2909  IAcc<Opts...>
2910  {
2911  virtual const Opt& scale () const = 0; ///< scanner range scale (opalsStripAdjust)
2912  virtual Opt& scale () = 0; ///< scanner range scale (opalsStripAdjust)
2913  };
2914 
2915  /// Partial specialization for Names::scanAngle _OPALS_COMMENT_AFTER_("sessions.adjustment.scanner.scanAngleOffset group(opalsStripAdjust
2916  template<class Opt, class... Opts>
2917  struct IAccS<Names::scanAngle , Opt, Opts...> : ///< sessions.adjustment.scanner.scanAngleOffset group(opalsStripAdjust)
2918  IAcc<Opts...>
2919  {
2920  virtual const Opt& scanAngle () const = 0; ///< sessions.adjustment.scanner.scanAngleOffset group(opalsStripAdjust)
2921  virtual Opt& scanAngle () = 0; ///< sessions.adjustment.scanner.scanAngleOffset group(opalsStripAdjust)
2922  };
2923 
2924  /// Partial specialization for Names::tiltAngle _OPALS_COMMENT_AFTER_("sessions.adjustment.scanner.tiltAngleOffset group(opalsStripAdjust
2925  template<class Opt, class... Opts>
2926  struct IAccS<Names::tiltAngle , Opt, Opts...> : ///< sessions.adjustment.scanner.tiltAngleOffset group(opalsStripAdjust)
2927  IAcc<Opts...>
2928  {
2929  virtual const Opt& tiltAngle () const = 0; ///< sessions.adjustment.scanner.tiltAngleOffset group(opalsStripAdjust)
2930  virtual Opt& tiltAngle () = 0; ///< sessions.adjustment.scanner.tiltAngleOffset group(opalsStripAdjust)
2931  };
2932 
2933  /// Partial specialization for Names::datum _OPALS_COMMENT_AFTER_("sessions.adjustment.datum group(opalsStripAdjust
2934  template<class Opt, class... Opts>
2935  struct IAccS<Names::datum , Opt, Opts...> : ///< sessions.adjustment.datum group(opalsStripAdjust)
2936  IAcc<Opts...>
2937  {
2938  virtual const Opt& datum () const = 0; ///< sessions.adjustment.datum group(opalsStripAdjust)
2939  virtual Opt& datum () = 0; ///< sessions.adjustment.datum group(opalsStripAdjust)
2940  };
2941 
2942  /// Partial specialization for Names::correspondences _OPALS_COMMENT_AFTER_("correspondences group(opalsStripAdjust
2943  template<class Opt, class... Opts>
2944  struct IAccS<Names::correspondences , Opt, Opts...> : ///< correspondences group(opalsStripAdjust)
2945  IAcc<Opts...>
2946  {
2947  virtual const Opt& correspondences () const = 0; ///< correspondences group(opalsStripAdjust)
2948  virtual Opt& correspondences () = 0; ///< correspondences group(opalsStripAdjust)
2949  };
2950 
2951  /// Partial specialization for Names::strip2strip _OPALS_COMMENT_AFTER_("correspondences.strip2strip group(opalsStripAdjust
2952  template<class Opt, class... Opts>
2953  struct IAccS<Names::strip2strip , Opt, Opts...> : ///< correspondences.strip2strip group(opalsStripAdjust)
2954  IAcc<Opts...>
2955  {
2956  virtual const Opt& strip2strip () const = 0; ///< correspondences.strip2strip group(opalsStripAdjust)
2957  virtual Opt& strip2strip () = 0; ///< correspondences.strip2strip group(opalsStripAdjust)
2958  };
2959 
2960  /// Partial specialization for Names::selection _OPALS_COMMENT_AFTER_("correspondences.strip2strip.selection group(opalsStripAdjust
2961  template<class Opt, class... Opts>
2962  struct IAccS<Names::selection , Opt, Opts...> : ///< correspondences.strip2strip.selection group(opalsStripAdjust)
2963  IAcc<Opts...>
2964  {
2965  virtual const Opt& selection () const = 0; ///< correspondences.strip2strip.selection group(opalsStripAdjust)
2966  virtual Opt& selection () = 0; ///< correspondences.strip2strip.selection group(opalsStripAdjust)
2967  };
2968 
2969  /// Partial specialization for Names::subsamplingPercentPoi _OPALS_COMMENT_AFTER_("correspondences.strip2strip.selection group(opalsStripAdjust
2970  template<class Opt, class... Opts>
2971  struct IAccS<Names::subsamplingPercentPoi , Opt, Opts...> : ///< correspondences.strip2strip.selection group(opalsStripAdjust)
2972  IAcc<Opts...>
2973  {
2974  virtual const Opt& subsamplingPercentPoi () const = 0; ///< correspondences.strip2strip.selection group(opalsStripAdjust)
2975  virtual Opt& subsamplingPercentPoi () = 0; ///< correspondences.strip2strip.selection group(opalsStripAdjust)
2976  };
2977 
2978  /// Partial specialization for Names::weighting _OPALS_COMMENT_AFTER_("correspondences.strip2strip.weighting group(opalsStripAdjust
2979  template<class Opt, class... Opts>
2980  struct IAccS<Names::weighting , Opt, Opts...> : ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
2981  IAcc<Opts...>
2982  {
2983  virtual const Opt& weighting () const = 0; ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
2984  virtual Opt& weighting () = 0; ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
2985  };
2986 
2987  /// Partial specialization for Names::byDeltaAngle _OPALS_COMMENT_AFTER_("correspondences.strip2strip.weighting group(opalsStripAdjust
2988  template<class Opt, class... Opts>
2989  struct IAccS<Names::byDeltaAngle , Opt, Opts...> : ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
2990  IAcc<Opts...>
2991  {
2992  virtual const Opt& byDeltaAngle () const = 0; ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
2993  virtual Opt& byDeltaAngle () = 0; ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
2994  };
2995 
2996  /// Partial specialization for Names::byRoughness _OPALS_COMMENT_AFTER_("correspondences.strip2strip.weighting group(opalsStripAdjust
2997  template<class Opt, class... Opts>
2998  struct IAccS<Names::byRoughness , Opt, Opts...> : ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
2999  IAcc<Opts...>
3000  {
3001  virtual const Opt& byRoughness () const = 0; ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
3002  virtual Opt& byRoughness () = 0; ///< correspondences.strip2strip.weighting group(opalsStripAdjust)
3003  };
3004 
3005  /// Partial specialization for Names::rejection _OPALS_COMMENT_AFTER_("correspondences.strip2strip.rejection group(opalsStripAdjust
3006  template<class Opt, class... Opts>
3007  struct IAccS<Names::rejection , Opt, Opts...> : ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
3008  IAcc<Opts...>
3009  {
3010  virtual const Opt& rejection () const = 0; ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
3011  virtual Opt& rejection () = 0; ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
3012  };
3013 
3014  /// Partial specialization for Names::maxRoughness _OPALS_COMMENT_AFTER_("correspondences.strip2strip.rejection group(opalsStripAdjust
3015  template<class Opt, class... Opts>
3016  struct IAccS<Names::maxRoughness , Opt, Opts...> : ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
3017  IAcc<Opts...>
3018  {
3019  virtual const Opt& maxRoughness () const = 0; ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
3020  virtual Opt& maxRoughness () = 0; ///< correspondences.strip2strip.rejection group(opalsStripAdjust)
3021  };
3022 
3023  /// Partial specialization for Names::control2strip _OPALS_COMMENT_AFTER_("correspondences.control2strip group(opalsStripAdjust
3024  template<class Opt, class... Opts>
3025  struct IAccS<Names::control2strip , Opt, Opts...> : ///< correspondences.control2strip group(opalsStripAdjust)
3026  IAcc<Opts...>
3027  {
3028  virtual const Opt& control2strip () const = 0; ///< correspondences.control2strip group(opalsStripAdjust)
3029  virtual Opt& control2strip () = 0; ///< correspondences.control2strip group(opalsStripAdjust)
3030  };
3031 
3032  /// Partial specialization for Names::dpSigPriori _OPALS_COMMENT_AFTER_("correspondences.control2strip group(opalsStripAdjust
3033  template<class Opt, class... Opts>
3034  struct IAccS<Names::dpSigPriori , Opt, Opts...> : ///< correspondences.control2strip group(opalsStripAdjust)
3035  IAcc<Opts...>
3036  {
3037  virtual const Opt& dpSigPriori () const = 0; ///< correspondences.control2strip group(opalsStripAdjust)
3038  virtual Opt& dpSigPriori () = 0; ///< correspondences.control2strip group(opalsStripAdjust)
3039  };
3040 
3041  /// Partial specialization for Names::patchLength _OPALS_COMMENT_AFTER_("patch length for structure line modelling (opalsLineModeler
3042  template<class Opt, class... Opts>
3043  struct IAccS<Names::patchLength , Opt, Opts...> : ///< patch length for structure line modelling (opalsLineModeler)
3044  IAcc<Opts...>
3045  {
3046  virtual const Opt& patchLength () const = 0; ///< patch length for structure line modelling (opalsLineModeler)
3047  virtual Opt& patchLength () = 0; ///< patch length for structure line modelling (opalsLineModeler)
3048  };
3049 
3050  /// Partial specialization for Names::patchWidth _OPALS_COMMENT_AFTER_("patch width for structure line modelling (opalsLineModeler
3051  template<class Opt, class... Opts>
3052  struct IAccS<Names::patchWidth , Opt, Opts...> : ///< patch width for structure line modelling (opalsLineModeler)
3053  IAcc<Opts...>
3054  {
3055  virtual const Opt& patchWidth () const = 0; ///< patch width for structure line modelling (opalsLineModeler)
3056  virtual Opt& patchWidth () = 0; ///< patch width for structure line modelling (opalsLineModeler)
3057  };
3058 
3059  /// Partial specialization for Names::pointCount _OPALS_COMMENT_AFTER_("min und max point count for patches (opalsLineModeler
3060  template<class Opt, class... Opts>
3061  struct IAccS<Names::pointCount , Opt, Opts...> : ///< min und max point count for patches (opalsLineModeler)
3062  IAcc<Opts...>
3063  {
3064  virtual const Opt& pointCount () const = 0; ///< min und max point count for patches (opalsLineModeler)
3065  virtual Opt& pointCount () = 0; ///< min und max point count for patches (opalsLineModeler)
3066  };
3067 
3068  /// Partial specialization for Names::minAngle _OPALS_COMMENT_AFTER_("minimum intersection angle (opalsLineModeler
3069  template<class Opt, class... Opts>
3070  struct IAccS<Names::minAngle , Opt, Opts...> : ///< minimum intersection angle (opalsLineModeler)
3071  IAcc<Opts...>
3072  {
3073  virtual const Opt& minAngle () const = 0; ///< minimum intersection angle (opalsLineModeler)
3074  virtual Opt& minAngle () = 0; ///< minimum intersection angle (opalsLineModeler)
3075  };
3076 
3077  /// Partial specialization for Names::sigmaPoint _OPALS_COMMENT_AFTER_("height sigma of the point cloud data (opalsLineModeler
3078  template<class Opt, class... Opts>
3079  struct IAccS<Names::sigmaPoint , Opt, Opts...> : ///< height sigma of the point cloud data (opalsLineModeler)
3080  IAcc<Opts...>
3081  {
3082  virtual const Opt& sigmaPoint () const = 0; ///< height sigma of the point cloud data (opalsLineModeler)
3083  virtual Opt& sigmaPoint () = 0; ///< height sigma of the point cloud data (opalsLineModeler)
3084  };
3085 
3086  /// Partial specialization for Names::sigmaApprox _OPALS_COMMENT_AFTER_("2d sigma of the structure line approximation (opalsLineModeler
3087  template<class Opt, class... Opts>
3088  struct IAccS<Names::sigmaApprox , Opt, Opts...> : ///< 2d sigma of the structure line approximation (opalsLineModeler)
3089  IAcc<Opts...>
3090  {
3091  virtual const Opt& sigmaApprox () const = 0; ///< 2d sigma of the structure line approximation (opalsLineModeler)
3092  virtual Opt& sigmaApprox () = 0; ///< 2d sigma of the structure line approximation (opalsLineModeler)
3093  };
3094 
3095  /// Partial specialization for Names::approximative _OPALS_COMMENT_AFTER_("use precise(=slow
3096  template<class Opt, class... Opts>
3097  struct IAccS<Names::approximative , Opt, Opts...> : ///< use precise(=slow) or approximative(=fast) computation (opalsBounds)
3098  IAcc<Opts...>
3099  {
3100  virtual const Opt& approximative () const = 0; ///< use precise(=slow) or approximative(=fast) computation (opalsBounds)
3101  virtual Opt& approximative () = 0; ///< use precise(=slow) or approximative(=fast) computation (opalsBounds)
3102  };
3103 
3104  /// Partial specialization for Names::maxArea _OPALS_COMMENT_AFTER_("maximum area (opalsFillGaps
3105  template<class Opt, class... Opts>
3106  struct IAccS<Names::maxArea , Opt, Opts...> : ///< maximum area (opalsFillGaps)
3107  IAcc<Opts...>
3108  {
3109  virtual const Opt& maxArea () const = 0; ///< maximum area (opalsFillGaps)
3110  virtual Opt& maxArea () = 0; ///< maximum area (opalsFillGaps)
3111  };
3112 
3113  /// Partial specialization for Names::maxPixelRigorous _OPALS_COMMENT_AFTER_("maximum number of gap-pixel for rigorous adaptive fill (opalsFillGaps
3114  template<class Opt, class... Opts>
3115  struct IAccS<Names::maxPixelRigorous , Opt, Opts...> : ///< maximum number of gap-pixel for rigorous adaptive fill (opalsFillGaps)
3116  IAcc<Opts...>
3117  {
3118  virtual const Opt& maxPixelRigorous () const = 0; ///< maximum number of gap-pixel for rigorous adaptive fill (opalsFillGaps)
3119  virtual Opt& maxPixelRigorous () = 0; ///< maximum number of gap-pixel for rigorous adaptive fill (opalsFillGaps)
3120  };
3121 
3122  /// Partial specialization for Names::gapInfo _OPALS_COMMENT_AFTER_("write additional gap information to files (opalsFillGaps
3123  template<class Opt, class... Opts>
3124  struct IAccS<Names::gapInfo , Opt, Opts...> : ///< write additional gap information to files (opalsFillGaps)
3125  IAcc<Opts...>
3126  {
3127  virtual const Opt& gapInfo () const = 0; ///< write additional gap information to files (opalsFillGaps)
3128  virtual Opt& gapInfo () = 0; ///< write additional gap information to files (opalsFillGaps)
3129  };
3130 
3131  /// Partial specialization for Names::sigmaSmooth _OPALS_COMMENT_AFTER_("gaussian smoothing sigma (opalsEdgeDetect
3132  template<class Opt, class... Opts>
3133  struct IAccS<Names::sigmaSmooth , Opt, Opts...> : ///< gaussian smoothing sigma (opalsEdgeDetect)
3134  IAcc<Opts...>
3135  {
3136  virtual const Opt& sigmaSmooth () const = 0; ///< gaussian smoothing sigma (opalsEdgeDetect)
3137  virtual Opt& sigmaSmooth () = 0; ///< gaussian smoothing sigma (opalsEdgeDetect)
3138  };
3139 
3140  /// Partial specialization for Names::exportHeader _OPALS_COMMENT_AFTER_("export header features (opalsInfo
3141  template<class Opt, class... Opts>
3142  struct IAccS<Names::exportHeader , Opt, Opts...> : ///< export header features (opalsInfo) -> deprecated
3143  IAcc<Opts...>
3144  {
3145  virtual const Opt& exportHeader () const = 0; ///< export header features (opalsInfo) -> deprecated
3146  virtual Opt& exportHeader () = 0; ///< export header features (opalsInfo) -> deprecated
3147  };
3148 
3149  /// Partial specialization for Names::seedCalculator _OPALS_COMMENT_AFTER_("Calculator for seed point order (opalsSegmentation
3150  template<class Opt, class... Opts>
3151  struct IAccS<Names::seedCalculator , Opt, Opts...> : ///< Calculator for seed point order (opalsSegmentation)
3152  IAcc<Opts...>
3153  {
3154  virtual const Opt& seedCalculator () const = 0; ///< Calculator for seed point order (opalsSegmentation)
3155  virtual Opt& seedCalculator () = 0; ///< Calculator for seed point order (opalsSegmentation)
3156  };
3157 
3158  /// Partial specialization for Names::condClustering _OPALS_COMMENT_AFTER_("Parameter group 'condClustering' containing options for conditional clustering (opalsSegmentation
3159  template<class Opt, class... Opts>
3160  struct IAccS<Names::condClustering , Opt, Opts...> : ///< Parameter group 'condClustering' containing options for conditional clustering (opalsSegmentation)
3161  IAcc<Opts...>
3162  {
3163  virtual const Opt& condClustering () const = 0; ///< Parameter group 'condClustering' containing options for conditional clustering (opalsSegmentation)
3164  virtual Opt& condClustering () = 0; ///< Parameter group 'condClustering' containing options for conditional clustering (opalsSegmentation)
3165  };
3166 
3167  /// Partial specialization for Names::planeExtraction _OPALS_COMMENT_AFTER_("Parameter group 'planeExtraction' containing options for planar surface extraction (opalsSegmentation
3168  template<class Opt, class... Opts>
3169  struct IAccS<Names::planeExtraction , Opt, Opts...> : ///< Parameter group 'planeExtraction' containing options for planar surface extraction (opalsSegmentation)
3170  IAcc<Opts...>
3171  {
3172  virtual const Opt& planeExtraction () const = 0; ///< Parameter group 'planeExtraction' containing options for planar surface extraction (opalsSegmentation)
3173  virtual Opt& planeExtraction () = 0; ///< Parameter group 'planeExtraction' containing options for planar surface extraction (opalsSegmentation)
3174  };
3175 
3176  /// Partial specialization for Names::pyramidLevels _OPALS_COMMENT_AFTER_("Number of data/image pyramid levels (opalsTerrainFilter
3177  template<class Opt, class... Opts>
3178  struct IAccS<Names::pyramidLevels , Opt, Opts...> : ///< Number of data/image pyramid levels (opalsTerrainFilter)
3179  IAcc<Opts...>
3180  {
3181  virtual const Opt& pyramidLevels () const = 0; ///< Number of data/image pyramid levels (opalsTerrainFilter)
3182  virtual Opt& pyramidLevels () = 0; ///< Number of data/image pyramid levels (opalsTerrainFilter)
3183  };
3184 
3185  /// Partial specialization for Names::bulkPoints _OPALS_COMMENT_AFTER_("specific parameter for category bulk points (opalsTerrainFilter
3186  template<class Opt, class... Opts>
3187  struct IAccS<Names::bulkPoints , Opt, Opts...> : ///< specific parameter for category bulk points (opalsTerrainFilter)
3188  IAcc<Opts...>
3189  {
3190  virtual const Opt& bulkPoints () const = 0; ///< specific parameter for category bulk points (opalsTerrainFilter)
3191  virtual Opt& bulkPoints () = 0; ///< specific parameter for category bulk points (opalsTerrainFilter)
3192  };
3193 
3194  /// Partial specialization for Names::keyPoints _OPALS_COMMENT_AFTER_("specific parameter for category key points (opalsTerrainFilter
3195  template<class Opt, class... Opts>
3196  struct IAccS<Names::keyPoints , Opt, Opts...> : ///< specific parameter for category key points (opalsTerrainFilter)
3197  IAcc<Opts...>
3198  {
3199  virtual const Opt& keyPoints () const = 0; ///< specific parameter for category key points (opalsTerrainFilter)
3200  virtual Opt& keyPoints () = 0; ///< specific parameter for category key points (opalsTerrainFilter)
3201  };
3202 
3203  /// Partial specialization for Names::formLines _OPALS_COMMENT_AFTER_("specific parameter for category form lines (opalsTerrainFilter
3204  template<class Opt, class... Opts>
3205  struct IAccS<Names::formLines , Opt, Opts...> : ///< specific parameter for category form lines (opalsTerrainFilter)
3206  IAcc<Opts...>
3207  {
3208  virtual const Opt& formLines () const = 0; ///< specific parameter for category form lines (opalsTerrainFilter)
3209  virtual Opt& formLines () = 0; ///< specific parameter for category form lines (opalsTerrainFilter)
3210  };
3211 
3212  /// Partial specialization for Names::breakLines _OPALS_COMMENT_AFTER_("specific parameter for category break lines (opalsTerrainFilter
3213  template<class Opt, class... Opts>
3214  struct IAccS<Names::breakLines , Opt, Opts...> : ///< specific parameter for category break lines (opalsTerrainFilter)
3215  IAcc<Opts...>
3216  {
3217  virtual const Opt& breakLines () const = 0; ///< specific parameter for category break lines (opalsTerrainFilter)
3218  virtual Opt& breakLines () = 0; ///< specific parameter for category break lines (opalsTerrainFilter)
3219  };
3220 
3221  /// Partial specialization for Names::robustInterpolation _OPALS_COMMENT_AFTER_("group of specific parameters for robust interpolation (opalsTerrainFilter
3222  template<class Opt, class... Opts>
3223  struct IAccS<Names::robustInterpolation , Opt, Opts...> : ///< group of specific parameters for robust interpolation (opalsTerrainFilter)
3224  IAcc<Opts...>
3225  {
3226  virtual const Opt& robustInterpolation () const = 0; ///< group of specific parameters for robust interpolation (opalsTerrainFilter)
3227  virtual Opt& robustInterpolation () = 0; ///< group of specific parameters for robust interpolation (opalsTerrainFilter)
3228  };
3229 
3230  /// Partial specialization for Names::writeFilterInfo _OPALS_COMMENT_AFTER_("write filter information to odm (opalsTerrainFilter
3231  template<class Opt, class... Opts>
3232  struct IAccS<Names::writeFilterInfo , Opt, Opts...> : ///< write filter information to odm (opalsTerrainFilter)
3233  IAcc<Opts...>
3234  {
3235  virtual const Opt& writeFilterInfo () const = 0; ///< write filter information to odm (opalsTerrainFilter)
3236  virtual Opt& writeFilterInfo () = 0; ///< write filter information to odm (opalsTerrainFilter)
3237  };
3238 
3239  /// Partial specialization for Names::filterThresholds _OPALS_COMMENT_AFTER_("filter thresholds for hierarchical levels (opalsTerrainFilter
3240  template<class Opt, class... Opts>
3241  struct IAccS<Names::filterThresholds , Opt, Opts...> : ///< filter thresholds for hierarchical levels (opalsTerrainFilter)
3242  IAcc<Opts...>
3243  {
3244  virtual const Opt& filterThresholds () const = 0; ///< filter thresholds for hierarchical levels (opalsTerrainFilter)
3245  virtual Opt& filterThresholds () = 0; ///< filter thresholds for hierarchical levels (opalsTerrainFilter)
3246  };
3247 
3248  /// Partial specialization for Names::lowerThresholdScale _OPALS_COMMENT_AFTER_("scale for asymmetric filter thresholds (opalsTerrainFilter
3249  template<class Opt, class... Opts>
3250  struct IAccS<Names::lowerThresholdScale , Opt, Opts...> : ///< scale for asymmetric filter thresholds (opalsTerrainFilter)
3251  IAcc<Opts...>
3252  {
3253  virtual const Opt& lowerThresholdScale () const = 0; ///< scale for asymmetric filter thresholds (opalsTerrainFilter)
3254  virtual Opt& lowerThresholdScale () = 0; ///< scale for asymmetric filter thresholds (opalsTerrainFilter)
3255  };
3256 
3257  /// Partial specialization for Names::robustIter _OPALS_COMMENT_AFTER_("number of robust iterations (opalsStripAdjust
3258  template<class Opt, class... Opts>
3259  struct IAccS<Names::robustIter , Opt, Opts...> : ///< number of robust iterations (opalsStripAdjust)
3260  IAcc<Opts...>
3261  {
3262  virtual const Opt& robustIter () const = 0; ///< number of robust iterations (opalsStripAdjust)
3263  virtual Opt& robustIter () = 0; ///< number of robust iterations (opalsStripAdjust)
3264  };
3265 
3266  /// Partial specialization for Names::images _OPALS_COMMENT_AFTER_("images group (opalsStripAdjust
3267  template<class Opt, class... Opts>
3268  struct IAccS<Names::images , Opt, Opts...> : ///< images group (opalsStripAdjust)
3269  IAcc<Opts...>
3270  {
3271  virtual const Opt& images () const = 0; ///< images group (opalsStripAdjust)
3272  virtual Opt& images () = 0; ///< images group (opalsStripAdjust)
3273  };
3274 
3275  /// Partial specialization for Names::camera _OPALS_COMMENT_AFTER_("camera ID (opalsStripAdjust
3276  template<class Opt, class... Opts>
3277  struct IAccS<Names::camera , Opt, Opts...> : ///< camera ID (opalsStripAdjust)
3278  IAcc<Opts...>
3279  {
3280  virtual const Opt& camera () const = 0; ///< camera ID (opalsStripAdjust)
3281  virtual Opt& camera () = 0; ///< camera ID (opalsStripAdjust)
3282  };
3283 
3284  /// Partial specialization for Names::cameras _OPALS_COMMENT_AFTER_("cameras group (opalsStripAdjust
3285  template<class Opt, class... Opts>
3286  struct IAccS<Names::cameras , Opt, Opts...> : ///< cameras group (opalsStripAdjust)
3287  IAcc<Opts...>
3288  {
3289  virtual const Opt& cameras () const = 0; ///< cameras group (opalsStripAdjust)
3290  virtual Opt& cameras () = 0; ///< cameras group (opalsStripAdjust)
3291  };
3292 
3293  /// Partial specialization for Names::extOri _OPALS_COMMENT_AFTER_("exterior orientation (opalsStripAdjust
3294  template<class Opt, class... Opts>
3295  struct IAccS<Names::extOri , Opt, Opts...> : ///< exterior orientation (opalsStripAdjust)
3296  IAcc<Opts...>
3297  {
3298  virtual const Opt& extOri () const = 0; ///< exterior orientation (opalsStripAdjust)
3299  virtual Opt& extOri () = 0; ///< exterior orientation (opalsStripAdjust)
3300  };
3301 
3302  /// Partial specialization for Names::dExtOri _OPALS_COMMENT_AFTER_("delta exterior orientation (opalsStripAdjust
3303  template<class Opt, class... Opts>
3304  struct IAccS<Names::dExtOri , Opt, Opts...> : ///< delta exterior orientation (opalsStripAdjust)
3305  IAcc<Opts...>
3306  {
3307  virtual const Opt& dExtOri () const = 0; ///< delta exterior orientation (opalsStripAdjust)
3308  virtual Opt& dExtOri () = 0; ///< delta exterior orientation (opalsStripAdjust)
3309  };
3310 
3311  /// Partial specialization for Names::X0 _OPALS_COMMENT_AFTER_("Projection center's X-coordinate"
3312  template<class Opt, class... Opts>
3313  struct IAccS<Names::X0 , Opt, Opts...> : ///< Projection center's X-coordinate
3314  IAcc<Opts...>
3315  {
3316  virtual const Opt& X0 () const = 0; ///< Projection center's X-coordinate
3317  virtual Opt& X0 () = 0; ///< Projection center's X-coordinate
3318  };
3319 
3320  /// Partial specialization for Names::Y0 _OPALS_COMMENT_AFTER_("Projection center's Y-coordinate"
3321  template<class Opt, class... Opts>
3322  struct IAccS<Names::Y0 , Opt, Opts...> : ///< Projection center's Y-coordinate
3323  IAcc<Opts...>
3324  {
3325  virtual const Opt& Y0 () const = 0; ///< Projection center's Y-coordinate
3326  virtual Opt& Y0 () = 0; ///< Projection center's Y-coordinate
3327  };
3328 
3329  /// Partial specialization for Names::Z0 _OPALS_COMMENT_AFTER_("Projection center's Z-coordinate"
3330  template<class Opt, class... Opts>
3331  struct IAccS<Names::Z0 , Opt, Opts...> : ///< Projection center's Z-coordinate
3332  IAcc<Opts...>
3333  {
3334  virtual const Opt& Z0 () const = 0; ///< Projection center's Z-coordinate
3335  virtual Opt& Z0 () = 0; ///< Projection center's Z-coordinate
3336  };
3337 
3338  /// Partial specialization for Names::dX0 _OPALS_COMMENT_AFTER_("Projection center's X-coordinate offset (opalsStripAdjust
3339  template<class Opt, class... Opts>
3340  struct IAccS<Names::dX0 , Opt, Opts...> : ///< Projection center's X-coordinate offset (opalsStripAdjust)
3341  IAcc<Opts...>
3342  {
3343  virtual const Opt& dX0 () const = 0; ///< Projection center's X-coordinate offset (opalsStripAdjust)
3344  virtual Opt& dX0 () = 0; ///< Projection center's X-coordinate offset (opalsStripAdjust)
3345  };
3346 
3347  /// Partial specialization for Names::dY0 _OPALS_COMMENT_AFTER_("Projection center's Y-coordinate offset (opalsStripAdjust
3348  template<class Opt, class... Opts>
3349  struct IAccS<Names::dY0 , Opt, Opts...> : ///< Projection center's Y-coordinate offset (opalsStripAdjust)
3350  IAcc<Opts...>
3351  {
3352  virtual const Opt& dY0 () const = 0; ///< Projection center's Y-coordinate offset (opalsStripAdjust)
3353  virtual Opt& dY0 () = 0; ///< Projection center's Y-coordinate offset (opalsStripAdjust)
3354  };
3355 
3356  /// Partial specialization for Names::dZ0 _OPALS_COMMENT_AFTER_("Projection center's Z-coordinate offset (opalsStripAdjust
3357  template<class Opt, class... Opts>
3358  struct IAccS<Names::dZ0 , Opt, Opts...> : ///< Projection center's Z-coordinate offset (opalsStripAdjust)
3359  IAcc<Opts...>
3360  {
3361  virtual const Opt& dZ0 () const = 0; ///< Projection center's Z-coordinate offset (opalsStripAdjust)
3362  virtual Opt& dZ0 () = 0; ///< Projection center's Z-coordinate offset (opalsStripAdjust)
3363  };
3364 
3365  /// Partial specialization for Names::dOmega _OPALS_COMMENT_AFTER_("omega angle offset (opalsStripAdjust
3366  template<class Opt, class... Opts>
3367  struct IAccS<Names::dOmega , Opt, Opts...> : ///< omega angle offset (opalsStripAdjust)
3368  IAcc<Opts...>
3369  {
3370  virtual const Opt& dOmega () const = 0; ///< omega angle offset (opalsStripAdjust)
3371  virtual Opt& dOmega () = 0; ///< omega angle offset (opalsStripAdjust)
3372  };
3373 
3374  /// Partial specialization for Names::dPhi _OPALS_COMMENT_AFTER_("phi angle offset (opalsStripAdjust
3375  template<class Opt, class... Opts>
3376  struct IAccS<Names::dPhi , Opt, Opts...> : ///< phi angle offset (opalsStripAdjust)
3377  IAcc<Opts...>
3378  {
3379  virtual const Opt& dPhi () const = 0; ///< phi angle offset (opalsStripAdjust)
3380  virtual Opt& dPhi () = 0; ///< phi angle offset (opalsStripAdjust)
3381  };
3382 
3383  /// Partial specialization for Names::dKappa _OPALS_COMMENT_AFTER_("kappa angle offset (opalsStripAdjust
3384  template<class Opt, class... Opts>
3385  struct IAccS<Names::dKappa , Opt, Opts...> : ///< kappa angle offset (opalsStripAdjust)
3386  IAcc<Opts...>
3387  {
3388  virtual const Opt& dKappa () const = 0; ///< kappa angle offset (opalsStripAdjust)
3389  virtual Opt& dKappa () = 0; ///< kappa angle offset (opalsStripAdjust)
3390  };
3391 
3392  /// Partial specialization for Names::intOri _OPALS_COMMENT_AFTER_("interior orientation (opalsStripAdjust
3393  template<class Opt, class... Opts>
3394  struct IAccS<Names::intOri , Opt, Opts...> : ///< interior orientation (opalsStripAdjust)
3395  IAcc<Opts...>
3396  {
3397  virtual const Opt& intOri () const = 0; ///< interior orientation (opalsStripAdjust)
3398  virtual Opt& intOri () = 0; ///< interior orientation (opalsStripAdjust)
3399  };
3400 
3401  /// Partial specialization for Names::c _OPALS_COMMENT_AFTER_("focal length (opalsStripAdjust
3402  template<class Opt, class... Opts>
3403  struct IAccS<Names::c , Opt, Opts...> : ///< focal length (opalsStripAdjust)
3404  IAcc<Opts...>
3405  {
3406  virtual const Opt& c () const = 0; ///< focal length (opalsStripAdjust)
3407  virtual Opt& c () = 0; ///< focal length (opalsStripAdjust)
3408  };
3409 
3410  /// Partial specialization for Names::distortion _OPALS_COMMENT_AFTER_("lens distortion (opalsStripAdjust
3411  template<class Opt, class... Opts>
3412  struct IAccS<Names::distortion , Opt, Opts...> : ///< lens distortion (opalsStripAdjust)
3413  IAcc<Opts...>
3414  {
3415  virtual const Opt& distortion () const = 0; ///< lens distortion (opalsStripAdjust)
3416  virtual Opt& distortion () = 0; ///< lens distortion (opalsStripAdjust)
3417  };
3418 
3419  /// Partial specialization for Names::undistort _OPALS_COMMENT_AFTER_("create undistorted images (opalsStripAdjust
3420  template<class Opt, class... Opts>
3421  struct IAccS<Names::undistort , Opt, Opts...> : ///< create undistorted images (opalsStripAdjust)
3422  IAcc<Opts...>
3423  {
3424  virtual const Opt& undistort () const = 0; ///< create undistorted images (opalsStripAdjust)
3425  virtual Opt& undistort () = 0; ///< create undistorted images (opalsStripAdjust)
3426  };
3427 
3428  /// Partial specialization for Names::rho0 _OPALS_COMMENT_AFTER_("lens distortion normalization radius (opalsStripAdjust
3429  template<class Opt, class... Opts>
3430  struct IAccS<Names::rho0 , Opt, Opts...> : ///< lens distortion normalization radius (opalsStripAdjust)
3431  IAcc<Opts...>
3432  {
3433  virtual const Opt& rho0 () const = 0; ///< lens distortion normalization radius (opalsStripAdjust)
3434  virtual Opt& rho0 () = 0; ///< lens distortion normalization radius (opalsStripAdjust)
3435  };
3436 
3437  /// Partial specialization for Names::a3 _OPALS_COMMENT_AFTER_("radial lens distortion, 3rd degree ORIENT:3 (opalsStripAdjust
3438  template<class Opt, class... Opts>
3439  struct IAccS<Names::a3 , Opt, Opts...> : ///< radial lens distortion, 3rd degree ORIENT:3 (opalsStripAdjust)
3440  IAcc<Opts...>
3441  {
3442  virtual const Opt& a3 () const = 0; ///< radial lens distortion, 3rd degree ORIENT:3 (opalsStripAdjust)
3443  virtual Opt& a3 () = 0; ///< radial lens distortion, 3rd degree ORIENT:3 (opalsStripAdjust)
3444  };
3445 
3446  /// Partial specialization for Names::a4 _OPALS_COMMENT_AFTER_("radial lens distortion, 5th degree ORIENT:4 (opalsStripAdjust
3447  template<class Opt, class... Opts>
3448  struct IAccS<Names::a4 , Opt, Opts...> : ///< radial lens distortion, 5th degree ORIENT:4 (opalsStripAdjust)
3449  IAcc<Opts...>
3450  {
3451  virtual const Opt& a4 () const = 0; ///< radial lens distortion, 5th degree ORIENT:4 (opalsStripAdjust)
3452  virtual Opt& a4 () = 0; ///< radial lens distortion, 5th degree ORIENT:4 (opalsStripAdjust)
3453  };
3454 
3455  /// Partial specialization for Names::a5 _OPALS_COMMENT_AFTER_("tangential lens distortion, bilinear in y ORIENT:5 (opalsStripAdjust
3456  template<class Opt, class... Opts>
3457  struct IAccS<Names::a5 , Opt, Opts...> : ///< tangential lens distortion, bilinear in y ORIENT:5 (opalsStripAdjust)
3458  IAcc<Opts...>
3459  {
3460  virtual const Opt& a5 () const = 0; ///< tangential lens distortion, bilinear in y ORIENT:5 (opalsStripAdjust)
3461  virtual Opt& a5 () = 0; ///< tangential lens distortion, bilinear in y ORIENT:5 (opalsStripAdjust)
3462  };
3463 
3464  /// Partial specialization for Names::a6 _OPALS_COMMENT_AFTER_("tangential lens distortion, bilinear in x ORIENT:6 (opalsStripAdjust
3465  template<class Opt, class... Opts>
3466  struct IAccS<Names::a6 , Opt, Opts...> : ///< tangential lens distortion, bilinear in x ORIENT:6 (opalsStripAdjust)
3467  IAcc<Opts...>
3468  {
3469  virtual const Opt& a6 () const = 0; ///< tangential lens distortion, bilinear in x ORIENT:6 (opalsStripAdjust)
3470  virtual Opt& a6 () = 0; ///< tangential lens distortion, bilinear in x ORIENT:6 (opalsStripAdjust)
3471  };
3472 
3473  /// Partial specialization for Names::oriFile _OPALS_COMMENT_AFTER_("file with a priori exterior image orientation (opalsStripAdjust
3474  template<class Opt, class... Opts>
3475  struct IAccS<Names::oriFile , Opt, Opts...> : ///< file with a priori exterior image orientation (opalsStripAdjust)
3476  IAcc<Opts...>
3477  {
3478  virtual const Opt& oriFile () const = 0; ///< file with a priori exterior image orientation (opalsStripAdjust)
3479  virtual Opt& oriFile () = 0; ///< file with a priori exterior image orientation (opalsStripAdjust)
3480  };
3481 
3482  /// Partial specialization for Names::obsFile _OPALS_COMMENT_AFTER_("file with image point observations (opalsStripAdjust
3483  template<class Opt, class... Opts>
3484  struct IAccS<Names::obsFile , Opt, Opts...> : ///< file with image point observations (opalsStripAdjust)
3485  IAcc<Opts...>
3486  {
3487  virtual const Opt& obsFile () const = 0; ///< file with image point observations (opalsStripAdjust)
3488  virtual Opt& obsFile () = 0; ///< file with image point observations (opalsStripAdjust)
3489  };
3490 
3491  /// Partial specialization for Names::forwardIntersect _OPALS_COMMENT_AFTER_("forward intersection of tie points group (opalsStripAdjust
3492  template<class Opt, class... Opts>
3493  struct IAccS<Names::forwardIntersect , Opt, Opts...> : ///< forward intersection of tie points group (opalsStripAdjust)
3494  IAcc<Opts...>
3495  {
3496  virtual const Opt& forwardIntersect () const = 0; ///< forward intersection of tie points group (opalsStripAdjust)
3497  virtual Opt& forwardIntersect () = 0; ///< forward intersection of tie points group (opalsStripAdjust)
3498  };
3499 
3500  /// Partial specialization for Names::xSigPriori _OPALS_COMMENT_AFTER_("standard deviation a priori of x-coordinate (opalsStripAdjust
3501  template<class Opt, class... Opts>
3502  struct IAccS<Names::xSigPriori , Opt, Opts...> : ///< standard deviation a priori of x-coordinate (opalsStripAdjust)
3503  IAcc<Opts...>
3504  {
3505  virtual const Opt& xSigPriori () const = 0; ///< standard deviation a priori of x-coordinate (opalsStripAdjust)
3506  virtual Opt& xSigPriori () = 0; ///< standard deviation a priori of x-coordinate (opalsStripAdjust)
3507  };
3508 
3509  /// Partial specialization for Names::ySigPriori _OPALS_COMMENT_AFTER_("standard deviation a priori of x-coordinate (opalsStripAdjust
3510  template<class Opt, class... Opts>
3511  struct IAccS<Names::ySigPriori , Opt, Opts...> : ///< standard deviation a priori of x-coordinate (opalsStripAdjust)
3512  IAcc<Opts...>
3513  {
3514  virtual const Opt& ySigPriori () const = 0; ///< standard deviation a priori of x-coordinate (opalsStripAdjust)
3515  virtual Opt& ySigPriori () = 0; ///< standard deviation a priori of x-coordinate (opalsStripAdjust)
3516  };
3517 
3518  /// Partial specialization for Names::image2image _OPALS_COMMENT_AFTER_("image-to-image correspondences group (opalsStripAdjust
3519  template<class Opt, class... Opts>
3520  struct IAccS<Names::image2image , Opt, Opts...> : ///< image-to-image correspondences group (opalsStripAdjust)
3521  IAcc<Opts...>
3522  {
3523  virtual const Opt& image2image () const = 0; ///< image-to-image correspondences group (opalsStripAdjust)
3524  virtual Opt& image2image () = 0; ///< image-to-image correspondences group (opalsStripAdjust)
3525  };
3526 
3527  /// Partial specialization for Names::minImageCount _OPALS_COMMENT_AFTER_("minimum number of image points for a tie point (opalsStripAdjust
3528  template<class Opt, class... Opts>
3529  struct IAccS<Names::minImageCount , Opt, Opts...> : ///< minimum number of image points for a tie point (opalsStripAdjust)
3530  IAcc<Opts...>
3531  {
3532  virtual const Opt& minImageCount () const = 0; ///< minimum number of image points for a tie point (opalsStripAdjust)
3533  virtual Opt& minImageCount () = 0; ///< minimum number of image points for a tie point (opalsStripAdjust)
3534  };
3535 
3536  /// Partial specialization for Names::image2strip _OPALS_COMMENT_AFTER_("image-to-strip correspondences group (opalsStripAdjust
3537  template<class Opt, class... Opts>
3538  struct IAccS<Names::image2strip , Opt, Opts...> : ///< image-to-strip correspondences group (opalsStripAdjust)
3539  IAcc<Opts...>
3540  {
3541  virtual const Opt& image2strip () const = 0; ///< image-to-strip correspondences group (opalsStripAdjust)
3542  virtual Opt& image2strip () = 0; ///< image-to-strip correspondences group (opalsStripAdjust)
3543  };
3544 
3545  /// Partial specialization for Names::extrapolationCheck _OPALS_COMMENT_AFTER_("check for extrapolation (opalsGrid
3546  template<class Opt, class... Opts>
3547  struct IAccS<Names::extrapolationCheck , Opt, Opts...> : ///< check for extrapolation (opalsGrid)
3548  IAcc<Opts...>
3549  {
3550  virtual const Opt& extrapolationCheck () const = 0; ///< check for extrapolation (opalsGrid)
3551  virtual Opt& extrapolationCheck () = 0; ///< check for extrapolation (opalsGrid)
3552  };
3553 
3554  /// Partial specialization for Names::splitByAttribute _OPALS_COMMENT_AFTER_("split data set by a certain (integer-valued
3555  template<class Opt, class... Opts>
3556  struct IAccS<Names::splitByAttribute , Opt, Opts...> : ///< split data set by a certain (integer-valued) attribute(opalsTranslate)
3557  IAcc<Opts...>
3558  {
3559  virtual const Opt& splitByAttribute () const = 0; ///< split data set by a certain (integer-valued) attribute(opalsTranslate)
3560  virtual Opt& splitByAttribute () = 0; ///< split data set by a certain (integer-valued) attribute(opalsTranslate)
3561  };
3562 
3563  /// Partial specialization for Names::applyTrafo _OPALS_COMMENT_AFTER_("determines whether to apply transformation to first or second input file(opalsDiff
3564  template<class Opt, class... Opts>
3565  struct IAccS<Names::applyTrafo , Opt, Opts...> : ///< determines whether to apply transformation to first or second input file(opalsDiff)
3566  IAcc<Opts...>
3567  {
3568  virtual const Opt& applyTrafo () const = 0; ///< determines whether to apply transformation to first or second input file(opalsDiff)
3569  virtual Opt& applyTrafo () = 0; ///< determines whether to apply transformation to first or second input file(opalsDiff)
3570  };
3571 
3572  /// Partial specialization for Names::exactComputation _OPALS_COMMENT_AFTER_("flag for exact median computation (opalsHisto
3573  template<class Opt, class... Opts>
3574  struct IAccS<Names::exactComputation , Opt, Opts...> : ///< flag for exact median computation (opalsHisto)
3575  IAcc<Opts...>
3576  {
3577  virtual const Opt& exactComputation () const = 0; ///< flag for exact median computation (opalsHisto)
3578  virtual Opt& exactComputation () = 0; ///< flag for exact median computation (opalsHisto)
3579  };
3580 
3581  /// Partial specialization for Names::spikeRemoval _OPALS_COMMENT_AFTER_("flag for removing spikes in the final modelling result (opalsLineModeler
3582  template<class Opt, class... Opts>
3583  struct IAccS<Names::spikeRemoval , Opt, Opts...> : ///< flag for removing spikes in the final modelling result (opalsLineModeler)
3584  IAcc<Opts...>
3585  {
3586  virtual const Opt& spikeRemoval () const = 0; ///< flag for removing spikes in the final modelling result (opalsLineModeler)
3587  virtual Opt& spikeRemoval () = 0; ///< flag for removing spikes in the final modelling result (opalsLineModeler)
3588  };
3589 
3590  /// Partial specialization for Names::oriFormat _OPALS_COMMENT_AFTER_("file format for image orientations (opalsSnellius
3591  template<class Opt, class... Opts>
3592  struct IAccS<Names::oriFormat , Opt, Opts...> : ///< file format for image orientations (opalsSnellius)
3593  IAcc<Opts...>
3594  {
3595  virtual const Opt& oriFormat () const = 0; ///< file format for image orientations (opalsSnellius)
3596  virtual Opt& oriFormat () = 0; ///< file format for image orientations (opalsSnellius)
3597  };
3598 
3599  /// Partial specialization for Names::workflow _OPALS_COMMENT_AFTER_("group for workflow control (opalsStripAdjust
3600  template<class Opt, class... Opts>
3601  struct IAccS<Names::workflow , Opt, Opts...> : ///< group for workflow control (opalsStripAdjust)
3602  IAcc<Opts...>
3603  {
3604  virtual const Opt& workflow () const = 0; ///< group for workflow control (opalsStripAdjust)
3605  virtual Opt& workflow () = 0; ///< group for workflow control (opalsStripAdjust)
3606  };
3607 
3608  /// Partial specialization for Names::stages _OPALS_COMMENT_AFTER_("group to limit the stages to be processed (opalsStripAdjust
3609  template<class Opt, class... Opts>
3610  struct IAccS<Names::stages , Opt, Opts...> : ///< group to limit the stages to be processed (opalsStripAdjust)
3611  IAcc<Opts...>
3612  {
3613  virtual const Opt& stages () const = 0; ///< group to limit the stages to be processed (opalsStripAdjust)
3614  virtual Opt& stages () = 0; ///< group to limit the stages to be processed (opalsStripAdjust)
3615  };
3616 
3617  /// Partial specialization for Names::last _OPALS_COMMENT_AFTER_("last stage to be processed (opalsStripAdjust
3618  template<class Opt, class... Opts>
3619  struct IAccS<Names::last , Opt, Opts...> : ///< last stage to be processed (opalsStripAdjust)
3620  IAcc<Opts...>
3621  {
3622  virtual const Opt& last () const = 0; ///< last stage to be processed (opalsStripAdjust)
3623  virtual Opt& last () = 0; ///< last stage to be processed (opalsStripAdjust)
3624  };
3625 
3626  /// Partial specialization for Names::strip _OPALS_COMMENT_AFTER_("strip ID of an image (opalsStripAdjust
3627  template<class Opt, class... Opts>
3628  struct IAccS<Names::strip , Opt, Opts...> : ///< strip ID of an image (opalsStripAdjust)
3629  IAcc<Opts...>
3630  {
3631  virtual const Opt& strip () const = 0; ///< strip ID of an image (opalsStripAdjust)
3632  virtual Opt& strip () = 0; ///< strip ID of an image (opalsStripAdjust)
3633  };
3634 
3635  /// Partial specialization for Names::checkPoints _OPALS_COMMENT_AFTER_("IDs of check points (opalsStripAdjust
3636  template<class Opt, class... Opts>
3637  struct IAccS<Names::checkPoints , Opt, Opts...> : ///< IDs of check points (opalsStripAdjust)
3638  IAcc<Opts...>
3639  {
3640  virtual const Opt& checkPoints () const = 0; ///< IDs of check points (opalsStripAdjust)
3641  virtual Opt& checkPoints () = 0; ///< IDs of check points (opalsStripAdjust)
3642  };
3643 
3644  /// Partial specialization for Names::maxReprojectionError _OPALS_COMMENT_AFTER_("maximum reprojection error (opalsStripAdjust
3645  template<class Opt, class... Opts>
3646  struct IAccS<Names::maxReprojectionError , Opt, Opts...> : ///< maximum reprojection error (opalsStripAdjust)
3647  IAcc<Opts...>
3648  {
3649  virtual const Opt& maxReprojectionError () const = 0; ///< maximum reprojection error (opalsStripAdjust)
3650  virtual Opt& maxReprojectionError () = 0; ///< maximum reprojection error (opalsStripAdjust)
3651  };
3652 
3653  /// Partial specialization for Names::segments _OPALS_COMMENT_AFTER_("segment manager (opalsSegmentation
3654  template<class Opt, class... Opts>
3655  struct IAccS<Names::segments , Opt, Opts...> : ///< segment manager (opalsSegmentation)
3656  IAcc<Opts...>
3657  {
3658  virtual const Opt& segments () const = 0; ///< segment manager (opalsSegmentation)
3659  virtual Opt& segments () = 0; ///< segment manager (opalsSegmentation)
3660  };
3661 
3662  /// Partial specialization for Names::alphaShapeRefPlane _OPALS_COMMENT_AFTER_("reference plane for alpha shapes (opalsSegmentation
3663  template<class Opt, class... Opts>
3664  struct IAccS<Names::alphaShapeRefPlane , Opt, Opts...> : ///< reference plane for alpha shapes (opalsSegmentation)
3665  IAcc<Opts...>
3666  {
3667  virtual const Opt& alphaShapeRefPlane () const = 0; ///< reference plane for alpha shapes (opalsSegmentation)
3668  virtual Opt& alphaShapeRefPlane () = 0; ///< reference plane for alpha shapes (opalsSegmentation)
3669  };
3670 
3671  /// Partial specialization for Names::sort _OPALS_COMMENT_AFTER_("sorting method (opalsSegmentation: sorting of segments
3672  template<class Opt, class... Opts>
3673  struct IAccS<Names::sort , Opt, Opts...> : ///< sorting method (opalsSegmentation: sorting of segments)
3674  IAcc<Opts...>
3675  {
3676  virtual const Opt& sort () const = 0; ///< sorting method (opalsSegmentation: sorting of segments)
3677  virtual Opt& sort () = 0; ///< sorting method (opalsSegmentation: sorting of segments)
3678  };
3679 
3680  /// Partial specialization for Names::byproduct _OPALS_COMMENT_AFTER_("optional output that is not the central result of a module run (opalsSegmentation: segment odm representation
3681  template<class Opt, class... Opts>
3682  struct IAccS<Names::byproduct , Opt, Opts...> : ///< optional output that is not the central result of a module run (opalsSegmentation: segment odm representation)
3683  IAcc<Opts...>
3684  {
3685  virtual const Opt& byproduct () const = 0; ///< optional output that is not the central result of a module run (opalsSegmentation: segment odm representation)
3686  virtual Opt& byproduct () = 0; ///< optional output that is not the central result of a module run (opalsSegmentation: segment odm representation)
3687  };
3688 
3689  /// Partial specialization for Names::crsTrafo _OPALS_COMMENT_AFTER_("crs transformation group (opalsTranslate
3690  template<class Opt, class... Opts>
3691  struct IAccS<Names::crsTrafo , Opt, Opts...> : ///< crs transformation group (opalsTranslate)
3692  IAcc<Opts...>
3693  {
3694  virtual const Opt& crsTrafo () const = 0; ///< crs transformation group (opalsTranslate)
3695  virtual Opt& crsTrafo () = 0; ///< crs transformation group (opalsTranslate)
3696  };
3697 
3698  /// Partial specialization for Names::inCRS _OPALS_COMMENT_AFTER_("input coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate
3699  template<class Opt, class... Opts>
3700  struct IAccS<Names::inCRS , Opt, Opts...> : ///< input coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
3701  IAcc<Opts...>
3702  {
3703  virtual const Opt& inCRS () const = 0; ///< input coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
3704  virtual Opt& inCRS () = 0; ///< input coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
3705  };
3706 
3707  /// Partial specialization for Names::outCRS _OPALS_COMMENT_AFTER_("output coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate
3708  template<class Opt, class... Opts>
3709  struct IAccS<Names::outCRS , Opt, Opts...> : ///< output coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
3710  IAcc<Opts...>
3711  {
3712  virtual const Opt& outCRS () const = 0; ///< output coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
3713  virtual Opt& outCRS () = 0; ///< output coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
3714  };
3715 
3716  /// Partial specialization for Names::groundTiePoints _OPALS_COMMENT_AFTER_("group for tie object points (opalsStripAdjust
3717  template<class Opt, class... Opts>
3718  struct IAccS<Names::groundTiePoints , Opt, Opts...> : ///< group for tie object points (opalsStripAdjust)
3719  IAcc<Opts...>
3720  {
3721  virtual const Opt& groundTiePoints () const = 0; ///< group for tie object points (opalsStripAdjust)
3722  virtual Opt& groundTiePoints () = 0; ///< group for tie object points (opalsStripAdjust)
3723  };
3724 
3725  /// Partial specialization for Names::aFormat _OPALS_COMMENT_AFTER_("format for approximate file (opalsDBH
3726  template<class Opt, class... Opts>
3727  struct IAccS<Names::aFormat , Opt, Opts...> : ///< format for approximate file (opalsDBH)
3728  IAcc<Opts...>
3729  {
3730  virtual const Opt& aFormat () const = 0; ///< format for approximate file (opalsDBH)
3731  virtual Opt& aFormat () = 0; ///< format for approximate file (opalsDBH)
3732  };
3733 
3734  /// Partial specialization for Names::trace _OPALS_COMMENT_AFTER_("for tracing a stem up and downwards (opalsDBH
3735  template<class Opt, class... Opts>
3736  struct IAccS<Names::trace , Opt, Opts...> : ///< for tracing a stem up and downwards (opalsDBH)
3737  IAcc<Opts...>
3738  {
3739  virtual const Opt& trace () const = 0; ///< for tracing a stem up and downwards (opalsDBH)
3740  virtual Opt& trace () = 0; ///< for tracing a stem up and downwards (opalsDBH)
3741  };
3742 
3743  /// Partial specialization for Names::classifyOverlap _OPALS_COMMENT_AFTER_("test option for opalsTerrainFiler"
3744  template<class Opt, class... Opts>
3745  struct IAccS<Names::classifyOverlap , Opt, Opts...> : ///< test option for opalsTerrainFiler
3746  IAcc<Opts...>
3747  {
3748  virtual const Opt& classifyOverlap () const = 0; ///< test option for opalsTerrainFiler
3749  virtual Opt& classifyOverlap () = 0; ///< test option for opalsTerrainFiler
3750  };
3751 
3752  /// Partial specialization for Names::valueFrequency _OPALS_COMMENT_AFTER_("option for opalsInfo for extracting the value frequencies for certain attributes/bands"
3753  template<class Opt, class... Opts>
3754  struct IAccS<Names::valueFrequency , Opt, Opts...> : ///< option for opalsInfo for extracting the value frequencies for certain attributes/bands
3755  IAcc<Opts...>
3756  {
3757  virtual const Opt& valueFrequency () const = 0; ///< option for opalsInfo for extracting the value frequencies for certain attributes/bands
3758  virtual Opt& valueFrequency () = 0; ///< option for opalsInfo for extracting the value frequencies for certain attributes/bands
3759  };
3760 
3761  /// Partial specialization for Names::skipEmptyBins _OPALS_COMMENT_AFTER_("skips empty bin entries in the histogram (opalsHisto
3762  template<class Opt, class... Opts>
3763  struct IAccS<Names::skipEmptyBins , Opt, Opts...> : ///< skips empty bin entries in the histogram (opalsHisto)
3764  IAcc<Opts...>
3765  {
3766  virtual const Opt& skipEmptyBins () const = 0; ///< skips empty bin entries in the histogram (opalsHisto)
3767  virtual Opt& skipEmptyBins () = 0; ///< skips empty bin entries in the histogram (opalsHisto)
3768  };
3769 
3770  /// Partial specialization for Names::exportOverview _OPALS_COMMENT_AFTER_("export overview features (opalsInfo
3771  template<class Opt, class... Opts>
3772  struct IAccS<Names::exportOverview , Opt, Opts...> : ///< export overview features (opalsInfo)
3773  IAcc<Opts...>
3774  {
3775  virtual const Opt& exportOverview () const = 0; ///< export overview features (opalsInfo)
3776  virtual Opt& exportOverview () = 0; ///< export overview features (opalsInfo)
3777  };
3778 
3779  /// Partial specialization for Names::mergeWidth _OPALS_COMMENT_AFTER_("merge width defining the band for blending multiple raster (opalsGridMerge
3780  template<class Opt, class... Opts>
3781  struct IAccS<Names::mergeWidth , Opt, Opts...> : ///< merge width defining the band for blending multiple raster (opalsGridMerge)
3782  IAcc<Opts...>
3783  {
3784  virtual const Opt& mergeWidth () const = 0; ///< merge width defining the band for blending multiple raster (opalsGridMerge)
3785  virtual Opt& mergeWidth () = 0; ///< merge width defining the band for blending multiple raster (opalsGridMerge)
3786  };
3787 
3788  /// Partial specialization for Names::nonOverlapMerge _OPALS_COMMENT_AFTER_("merging non-overlapping datasets (opalsGridMerge
3789  template<class Opt, class... Opts>
3790  struct IAccS<Names::nonOverlapMerge , Opt, Opts...> : ///< merging non-overlapping datasets (opalsGridMerge)
3791  IAcc<Opts...>
3792  {
3793  virtual const Opt& nonOverlapMerge () const = 0; ///< merging non-overlapping datasets (opalsGridMerge)
3794  virtual Opt& nonOverlapMerge () = 0; ///< merging non-overlapping datasets (opalsGridMerge)
3795  };
3796 
3797  /// Partial specialization for Names::mergeFunc _OPALS_COMMENT_AFTER_("merge function for blending multiple raster (opalsGridMerge
3798  template<class Opt, class... Opts>
3799  struct IAccS<Names::mergeFunc , Opt, Opts...> : ///< merge function for blending multiple raster (opalsGridMerge)
3800  IAcc<Opts...>
3801  {
3802  virtual const Opt& mergeFunc () const = 0; ///< merge function for blending multiple raster (opalsGridMerge)
3803  virtual Opt& mergeFunc () = 0; ///< merge function for blending multiple raster (opalsGridMerge)
3804  };
3805 
3806  /// Partial specialization for Names::activateBorderMerge _OPALS_COMMENT_AFTER_("flag if grid files should be merged at the border (opalsGridMerge
3807  template<class Opt, class... Opts>
3808  struct IAccS<Names::activateBorderMerge , Opt, Opts...> : ///< flag if grid files should be merged at the border (opalsGridMerge)
3809  IAcc<Opts...>
3810  {
3811  virtual const Opt& activateBorderMerge () const = 0; ///< flag if grid files should be merged at the border (opalsGridMerge)
3812  virtual Opt& activateBorderMerge () = 0; ///< flag if grid files should be merged at the border (opalsGridMerge)
3813  };
3814 
3815  /// Partial specialization for Names::style _OPALS_COMMENT_AFTER_("Parameter group 'style' containing styling-options for isolines (opalsIsolines
3816  template<class Opt, class... Opts>
3817  struct IAccS<Names::style , Opt, Opts...> : ///< Parameter group 'style' containing styling-options for isolines (opalsIsolines)
3818  IAcc<Opts...>
3819  {
3820  virtual const Opt& style () const = 0; ///< Parameter group 'style' containing styling-options for isolines (opalsIsolines)
3821  virtual Opt& style () = 0; ///< Parameter group 'style' containing styling-options for isolines (opalsIsolines)
3822  };
3823 
3824  /// Partial specialization for Names::maxSlope _OPALS_COMMENT_AFTER_("defines maximum slope to consider (opalsIsolines
3825  template<class Opt, class... Opts>
3826  struct IAccS<Names::maxSlope , Opt, Opts...> : ///< defines maximum slope to consider (opalsIsolines)
3827  IAcc<Opts...>
3828  {
3829  virtual const Opt& maxSlope () const = 0; ///< defines maximum slope to consider (opalsIsolines)
3830  virtual Opt& maxSlope () = 0; ///< defines maximum slope to consider (opalsIsolines)
3831  };
3832 
3833  /// Partial specialization for Names::deviation _OPALS_COMMENT_AFTER_("byproduct deviation file (opalsGridMerge
3834  template<class Opt, class... Opts>
3835  struct IAccS<Names::deviation , Opt, Opts...> : ///< byproduct deviation file (opalsGridMerge)
3836  IAcc<Opts...>
3837  {
3838  virtual const Opt& deviation () const = 0; ///< byproduct deviation file (opalsGridMerge)
3839  virtual Opt& deviation () = 0; ///< byproduct deviation file (opalsGridMerge)
3840  };
3841 
3842  /// Partial specialization for Names::processStructure _OPALS_COMMENT_AFTER_("byproduct structure file (opalsGridMerge
3843  template<class Opt, class... Opts>
3844  struct IAccS<Names::processStructure , Opt, Opts...> : ///< byproduct structure file (opalsGridMerge)
3845  IAcc<Opts...>
3846  {
3847  virtual const Opt& processStructure () const = 0; ///< byproduct structure file (opalsGridMerge)
3848  virtual Opt& processStructure () = 0; ///< byproduct structure file (opalsGridMerge)
3849  };
3850 
3851  /// Partial specialization for Names::maxBridgeDist _OPALS_COMMENT_AFTER_("defines maximum distance to be bridged (opalsIsolines
3852  template<class Opt, class... Opts>
3853  struct IAccS<Names::maxBridgeDist , Opt, Opts...> : ///< defines maximum distance to be bridged (opalsIsolines)
3854  IAcc<Opts...>
3855  {
3856  virtual const Opt& maxBridgeDist () const = 0; ///< defines maximum distance to be bridged (opalsIsolines)
3857  virtual Opt& maxBridgeDist () = 0; ///< defines maximum distance to be bridged (opalsIsolines)
3858  };
3859 
3860  /// Partial specialization for Names::generateOFD _OPALS_COMMENT_AFTER_("defines maximum distance to be bridged (opalsInfo
3861  template<class Opt, class... Opts>
3862  struct IAccS<Names::generateOFD , Opt, Opts...> : ///< defines maximum distance to be bridged (opalsInfo)
3863  IAcc<Opts...>
3864  {
3865  virtual const Opt& generateOFD () const = 0; ///< defines maximum distance to be bridged (opalsInfo)
3866  virtual Opt& generateOFD () = 0; ///< defines maximum distance to be bridged (opalsInfo)
3867  };
3868 
3869  /// Partial specialization for Names::file _OPALS_COMMENT_AFTER_("generic file parameter (opalsInfo
3870  template<class Opt, class... Opts>
3871  struct IAccS<Names::file , Opt, Opts...> : ///< generic file parameter (opalsInfo)
3872  IAcc<Opts...>
3873  {
3874  virtual const Opt& file () const = 0; ///< generic file parameter (opalsInfo)
3875  virtual Opt& file () = 0; ///< generic file parameter (opalsInfo)
3876  };
3877 
3878  /// Partial specialization for Names::format _OPALS_COMMENT_AFTER_("generic format parameter (opalsInfo
3879  template<class Opt, class... Opts>
3880  struct IAccS<Names::format , Opt, Opts...> : ///< generic format parameter (opalsInfo)
3881  IAcc<Opts...>
3882  {
3883  virtual const Opt& format () const = 0; ///< generic format parameter (opalsInfo)
3884  virtual Opt& format () = 0; ///< generic format parameter (opalsInfo)
3885  };
3886 
3887  /// Partial specialization for Names::distributionFunc _OPALS_COMMENT_AFTER_("definition of reference distribution (opalsHisto
3888  template<class Opt, class... Opts>
3889  struct IAccS<Names::distributionFunc , Opt, Opts...> : ///< definition of reference distribution (opalsHisto)
3890  IAcc<Opts...>
3891  {
3892  virtual const Opt& distributionFunc () const = 0; ///< definition of reference distribution (opalsHisto)
3893  virtual Opt& distributionFunc () = 0; ///< definition of reference distribution (opalsHisto)
3894  };
3895 
3896  /// Partial specialization for Names::cumulativeHistogram _OPALS_COMMENT_AFTER_("flag for activating the cumulative histogram (opalsHisto
3897  template<class Opt, class... Opts>
3898  struct IAccS<Names::cumulativeHistogram , Opt, Opts...> : ///< flag for activating the cumulative histogram (opalsHisto)
3899  IAcc<Opts...>
3900  {
3901  virtual const Opt& cumulativeHistogram () const = 0; ///< flag for activating the cumulative histogram (opalsHisto)
3902  virtual Opt& cumulativeHistogram () = 0; ///< flag for activating the cumulative histogram (opalsHisto)
3903  };
3904 
3905  /// Partial specialization for Names::setAttribute _OPALS_COMMENT_AFTER_("generic ground point calculator setting (opalsTerrainFilter
3906  template<class Opt, class... Opts>
3907  struct IAccS<Names::setAttribute , Opt, Opts...> : ///< generic ground point calculator setting (opalsTerrainFilter)
3908  IAcc<Opts...>
3909  {
3910  virtual const Opt& setAttribute () const = 0; ///< generic ground point calculator setting (opalsTerrainFilter)
3911  virtual Opt& setAttribute () = 0; ///< generic ground point calculator setting (opalsTerrainFilter)
3912  };
3913 
3914  /// Partial specialization for Names::enduranceMode _OPALS_COMMENT_AFTER_("force to continue processing (with next file/dataset
3915  template<class Opt, class... Opts>
3916  struct IAccS<Names::enduranceMode , Opt, Opts...> : ///< force to continue processing (with next file/dataset) where normally an expcetions would be thrown (opalsInfo)
3917  IAcc<Opts...>
3918  {
3919  virtual const Opt& enduranceMode () const = 0; ///< force to continue processing (with next file/dataset) where normally an expcetions would be thrown (opalsInfo)
3920  virtual Opt& enduranceMode () = 0; ///< force to continue processing (with next file/dataset) where normally an expcetions would be thrown (opalsInfo)
3921  };
3922 
3923  /// Partial specialization for Names::refinePlanes _OPALS_COMMENT_AFTER_("activates refining step for plane extraction (opalsSegementation
3924  template<class Opt, class... Opts>
3925  struct IAccS<Names::refinePlanes , Opt, Opts...> : ///< activates refining step for plane extraction (opalsSegementation)
3926  IAcc<Opts...>
3927  {
3928  virtual const Opt& refinePlanes () const = 0; ///< activates refining step for plane extraction (opalsSegementation)
3929  virtual Opt& refinePlanes () = 0; ///< activates refining step for plane extraction (opalsSegementation)
3930  };
3931 
3932  /// Partial specialization for Names::detailedAnalysis _OPALS_COMMENT_AFTER_("record detailed analysis while processing (opalsTerrainFilter
3933  template<class Opt, class... Opts>
3934  struct IAccS<Names::detailedAnalysis , Opt, Opts...> : ///< record detailed analysis while processing (opalsTerrainFilter)
3935  IAcc<Opts...>
3936  {
3937  virtual const Opt& detailedAnalysis () const = 0; ///< record detailed analysis while processing (opalsTerrainFilter)
3938  virtual Opt& detailedAnalysis () = 0; ///< record detailed analysis while processing (opalsTerrainFilter)
3939  };
3940 
3941  }
3942 
3943  /// Ultimately, defines the specialization of IAcc in the namespace according to Opt's enumerator.
3944  /** IAcc derives from another specialization of itself (in the same namespace) for the subsequent options, and finally from IBase.
3945  It does so by help of IAcc in that namespace.
3946  \tparam Opt The first member of a group, the one to define the specialization of IAcc for.
3947  \tparam Opts The other members of that group. */
3948  template<class... Opts>
3949  struct IAcc_
3950  {
3951  using Type = IBase;
3952  };
3953 
3954  template<class Opt, class... Opts>
3955  struct IAcc_<Opt, Opts...>
3956  {
3957  using Name = typename Opt::Name;
3958  using Type = std::conditional_t<
3959  Name::value <= Names::LastShared,
3960  std::conditional_t<
3961  Name::value <= Names::LastGlobal,
3962  glob::IAcc<Opt, Opts...>,
3963  comm::IAcc<Opt, Opts...>
3964  >,
3965  spec::IAcc<Opt, Opts...>
3966  >;
3967  };
3968 
3969  /// The specialization of IAcc for the first member of a group.
3970  /** \tparam Opts The members of the group. */
3971  template<class... Opts>
3972  using IAcc = typename IAcc_<Opts...>::Type;
3973 
3974  }
3975 }
3976 
@ images
images group (opalsStripAdjust)
@ scale
scanner range scale (opalsStripAdjust)
@ echoWidthMax
strip.filter group (opalsStripAdjust)
@ nbThreads
number of concurrent threads
@ postfix_absKmaxDir
postfix for azimuth of maximum absolute curvature grid files
@ extOri
exterior orientation (opalsStripAdjust)
def thalweg_shapefile(self, th_en, logger)
Creates shapefile containing the thalweg.
Definition: hydThalweg.py:710
@ correctionModel
strip.trajectory group (opalsStripAdjust)
@ logFile
log file path
@ intOri
interior orientation (opalsStripAdjust)
@ testErrorProbability
Probability of raising a test exception.
@ alphaShapeRefPlane
reference plane for alpha shapes (opalsSegmentation)
@ lineVertexDist
Regular distance for vertex spacing along linear geometries.
@ dOmega
omega angle offset (opalsStripAdjust)
@ Y0
Projection center's Y-coordinate.
@ redPoint
defines the coordinates of a reduction point
@ transformData
boolean flag indicating whether or not to transform the input data (eg. opalsICP)
def cut_to_water_surface(self, wb_spl, outGeo)
Interpolates the water surface height for each section and restricts the spline to the water surface.
Definition: hydThalweg.py:431
@ statistic
general statistic information about a given input file (opalsInfo)
@ detector
edge detection method (opalsEdgeDetect)
@ perpDist
weight factor perpendicular distance (opalsLineTopology)
@ boundaryDerivativeIsZero
strip.trajectory.boundaryDerivativeIsZero group (opalsStripAdjust)
@ mounting
compute 3D-shifts and flight direction aligned rotations (roll-pitch-yaw)
@ samplingInterval
trajectory sampling interval [s] strip.trajectory group (opalsStripAdjust)
@ postfix_slope
postfix for slope grid files (deprecated use slpPerc instead)
@ skipVoidAreas
skip all void parts of datasets for data processing (opalsALgebra)
@ postfix_sigma0
postfix for sigma0 grid files
typename IAcc_< Opts... >::Type IAcc
The specialization of IAcc_ according to the given options.
Definition: IAccess.hpp:589
@ cameras
cameras group (opalsStripAdjust)
@ maxWidth
maximum (object) width
def filter_secs(self, outGeo, logger=None)
Removes sections with not enough points and with points only in one half of the section.
Definition: hydThalweg.py:286
@ revertDist
revert distance (opalsLineTopology)
@ nonOverlapMerge
merging non-overlapping datasets (opalsGridMerge)
def P0P1(self, outGeo)
Extracts the origin and x-axis of each cross-section in global and local coordinates.
Definition: hydThalweg.py:630
@ storeMetaInfo
level of meta info that are stored (opalsNormals)
@ trace
for tracing a stem up and downwards (opalsDBH)
@ probabilities
(list of) probability values [0..1] (opalsHisto))
@ a5
tangential lens distortion, bilinear in y ORIENT:5 (opalsStripAdjust)
@ postfix_ny
postfix for normal y grid files
@ xSigPriori
standard deviation a priori of x-coordinate (opalsStripAdjust)
@ adjustment
adjustment group (opalsStripAdjust)
@ minConsensus
minimum level of consensus
@ weighting
correspondences.strip2strip.weighting group(opalsStripAdjust)
@ postfix_slpPerc
postfix for slpPerc grid files
@ omega
sessions.adjustment.misalignment group(opalsStripAdjust)
@ outParamFile
final parameter export
@ trafo
affine 3-d transformation (opalsExport)
@ hollowingThresh
point count above which to not triangulate all data but only their outer regions or borders (opalsBou...
def plot_sections(self, outGeo, wb_spl, wb_th, logger, outGeoNonGround=None)
creates section plots, each plot contains the section points, the thalweg point and the spline of one...
Definition: hydThalweg.py:536
@ systemEchoWidth
echo width of system waveform - necessary for non FWF Data (opalsRadioCal)
@ scope
scope of execution
@ dRoll
strip.trajectory group (opalsStripAdjust)
@ postfix_pcount
postfix for point count grid files
typename IAcc_< Opts... >::Type IAcc
The specialization of IAcc_ according to the given options.
Definition: IAccess.hpp:744
@ mntCalFile
mounting calibration file (opalsAddTraj)
@ image2strip
image-to-strip correspondences group (opalsStripAdjust)
@ nBins
number of different bins (e.g. opalsHisto)
@ oformat_tin
default TIN output format
@ gridMask
grid mask file
@ binWidth
width of a single bin (e.g. opalsHisto)
@ Z0
Projection center's Z-coordinate.
logger
Definition: hydThalweg.py:745
@ borderFile
border file path (e.g. opalsTIN)
@ preventIntersection
prevent intersection of lines (opalsLineTopology)
@ postfix_shannon_entropy
postfix for shannon entropy grid files
@ closeMin
suppress closed contours with area < closeMin (opalsIsolines)
@ first
apply transformation to the first grid before subtracting
@ Y
sessions.adjustment.leverArm group(opalsStripAdjust)
@ postfix_pdens
postfix for point density grid files
@ approxFile
File containing approximation info.
@ convThreshold
adjustment convergence threshold (opalsGeorefApprox)
@ gridFile
grid model file
@ maxBridgeDist
defines maximum distance to be bridged (opalsIsolines)
@ dist
weight factor distance (opalsLineTopology)
typename IAcc_< Opts... >::Type IAcc
The specialization of IAcc_ according to the given options.
Definition: IAccess.hpp:38
@ postfix_mean
postfix for mean grid files
@ avgDist
average distance (opalsLineTopology)
@ ratioMode
echo ratio calculation mode
@ format
generic format parameter (opalsInfo)
@ obsTrafPars
input transformation parameters (opalsGeorefApprox)
@ postfix_center
postfix for closest-to-cell-center grid files
@ maxRoughness
correspondences.strip2strip.rejection group(opalsStripAdjust)
@ oriFile
file with a priori exterior image orientation (opalsStripAdjust)
@ sigmaPoint
height sigma of the point cloud data (opalsLineModeler)
@ sunPosition
sun position (opalsShade)
@ division
division mode for surface simplification (opalsSimplify)
@ paramMapping
mapping of parameters from file to own parameters
@ minHeight
minimum (object) height
@ postfix_exposDeg
postfix for exposition grid files
def thalweg_points(self, wb_spl)
Computes the thalweg point of each section as the median of the spline minima corresponding to self....
Definition: hydThalweg.py:498
@ suppressRungs
remove all one-pixel-diagonal line elements (opalsVectorize, toPolyline)
@ byRoughness
correspondences.strip2strip.weighting group(opalsStripAdjust)
@ second
apply transformation to the second grid before subtracting
@ maxArea
maximum area (opalsFillGaps)
@ file
generic file parameter (opalsInfo)
@ coord_ref_sys
default coordinate reference system (EPSG Code, WKT string or PRJ-File)
@ penetration
estimated penetration rate
@ criterion
defining the segment homogeneity criterion (opalsSegmentation)
@ task
String to replace $OPALS_TASK with.
@ debugNormalsLen
length of the normal vectors (opalsNormals)
@ postfix_quadratic_entropy
postfix for quadratic entropy grid files
@ phi
sessions.adjustment.misalignment group(opalsStripAdjust)
@ shading
shading algorithm (opalsShade)
@ inGeoid
input geoid model raster file (opalsReproject)
@ fixedFile
fixed dataset within adjustment (opalsICP)
@ modelPlaneThreshold
defines a vertical distance threshold between a model and a plane (opalsModelFormAxis)
@ postfix_excen
postfix for excentricity grid files
@ column_name_alias
column name alias
@ dExtOri
delta exterior orientation (opalsStripAdjust)
@ multiBand
used by opalsGrid to enable or disable multibans instead of multiple files for features....
@ condClustering
Parameter group 'condClustering' containing options for conditional clustering (opalsSegmentation)
@ robFactor
factor used for robust estimation(opalsLSM)
@ deleteTempData
Delete temporary / intermediate data (opalsTerrainFilter)
@ edgeHandling
controls pixel values beyond the image border (opalsConvolution)
@ byDeltaAngle
correspondences.strip2strip.weighting group(opalsStripAdjust)
@ iFilter
input filter (e.g. opalsTIN)
@ distributionFunc
definition of reference distribution (opalsHisto)
@ last
last stage to be processed (opalsStripAdjust)
@ band
raster band number/index in case of multi-layer rasters
@ trajectory
strip.trajectory group (opalsStripAdjust)
@ inSRS
input spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
@ obsFile
file with image point observations (opalsStripAdjust)
@ correspondences
correspondences group(opalsStripAdjust)
def knots(self, c_sort_sec, stepsize)
Evaluates the knots of one spline.
Definition: hydThalweg.py:371
@ fileLogLevel
verbosity level of log file output
@ postfix_min
postfix for minimum grid files
@ postfix_majority
postfix for majority grid files
@ revertInterval
revert interval (opalsLineTopology)
@ sectionRange
start/stop stationing along the axis(opalsSection))
@ relWeightLead
relative weight lead (opalsLineTopology)
@ kappa
sessions.adjustment.misalignment group(opalsStripAdjust)
@ onlyLastEchoes
strip group (opalsStripAdjust)
@ offsetPal
offset value to be applied to the given palette (opalsZcolor)
@ rejection
correspondences.strip2strip.rejection group(opalsStripAdjust)
@ maxSigmaMAD
correspondences.strip2strip.rejection group(opalsStripAdjust)
@ postfix_kminDir
postfix for azimuth of minimum curvature grid files
@ stages
group to limit the stages to be processed (opalsStripAdjust)
@ activateBorderMerge
flag if grid files should be merged at the border (opalsGridMerge)
@ direction
normals direction (e.g. opalsNormals)
@ testErrorBeforeRun
Raise test exception before or after run.
@ tFormat
file format of the trajectory file (opalsImport)
@ postfix_median
postfix for median grid files
@ postfix_stdDev
postfix for standard deviation grid files
@ sigmaApriori
estimated accuracy of observations before adjustment (opalsRobFilter)
@ cfgFile
configuration file
@ lsmTrafo
LSM transformation type (opalsLSM)
@ workflow
group for workflow control (opalsStripAdjust)
def classify(self, buffered_odm, logger)
Classifies points of dataset into ground- and non-ground-points.
Definition: hydThalweg.py:136
@ perimeter
Calculate only the perimeter.
@ maxPixelRigorous
maximum number of gap-pixel for rigorous adaptive fill (opalsFillGaps)
@ ySigPriori
standard deviation a priori of x-coordinate (opalsStripAdjust)
@ a6
tangential lens distortion, bilinear in x ORIENT:6 (opalsStripAdjust)
@ pairList
a list strip pairs (e.g. opalsOverlap)
@ oformat_grid
default grid output format
def sec_stats(self, outGeo)
Extracts the stationing of each cross-section origin out of outGeo.
Definition: hydThalweg.py:263
@ legend
on / off / file=filename where legend in SVG format is to be written (opalsZcolor)
@ utm
UTM definition group (opalsStripAdjust)
@ ignoreId
defining a list of ids to be ignored (opalsLineModeler)
@ dY
strip.trajectory group (opalsStripAdjust)
@ strip2strip
correspondences.strip2strip group(opalsStripAdjust)
@ skipEmptyBins
skips empty bin entries in the histogram (opalsHisto)
@ Z
sessions.adjustment.leverArm group(opalsStripAdjust)
@ postfix_stdDevMad
postfix for standard deviation MAD grid files
@ intersectSnapDist
omit distance for missing intersections (opalsLineTopology)
@ refinePlanes
activates refining step for plane extraction (opalsSegementation)
@ forwardIntersect
forward intersection of tie points group (opalsStripAdjust)
@ wf
Parameter group 'wf' containing weight factor options (opalsLineTopology)
@ minArea
minimum area
@ samplingDist
defines a uniform sampling distance (eg, opalsICP)
@ dX0
Projection center's X-coordinate offset (opalsStripAdjust)
@ strip
strip ID of an image (opalsStripAdjust)
@ writeFilterInfo
write filter information to odm (opalsTerrainFilter)
@ inZOffset
height offset of input SRS (opalsReproject)
@ splitByAttribute
split data set by a certain (integer-valued) attribute(opalsTranslate)
@ subsamplingPercentPoi
correspondences.strip2strip.selection group(opalsStripAdjust)
@ control2strip
correspondences.control2strip group(opalsStripAdjust)
@ maxSlope
defines maximum slope to consider (opalsIsolines)
@ temp
File path to replace $OPALS_TEMP with.
@ session
strip group (opalsStripAdjust)
@ method
method of computation (opalsFillGaps, opalsLineTopology)
Ultimately, defines the specialization of IAcc in the namespace according to Opt's enumerator.
Definition: IAccess.hpp:3949
@ outGeoid
output geoid model raster file (opalsReproject)
@ cumulativeHistogram
flag for activating the cumulative histogram (opalsHisto)
@ crsTrafo
crs transformation group (opalsTranslate)
@ alphaRadius
circumcircle radius for alpha shape (opalsBounds)
Provides access method(s) to the first given option with name(s) according to that option's enumerato...
Definition: IAccess.hpp:726
def spline(self, outGeo, stepsize=1)
Fits a spline to the points of each (ground)-section.
Definition: hydThalweg.py:316
@ datum
sessions.adjustment.datum group(opalsStripAdjust)
@ spotData
file containing (2D) positions (opalsLSM))
@ misalignment
sessions.adjustment.misalignment group(opalsStripAdjust)
@ tiltAngle
sessions.adjustment.scanner.tiltAngleOffset group(opalsStripAdjust)
@ scalePal
scale factor to be applied to the given palette (opalsZcolor)
@ postfix_nx
postfix for normal x grid files
@ zone
UTM definition group (opalsStripAdjust)
@ zRange
range of z-values to be used for z-coloring (e.g. opalsZcolor)
@ maxPointDensity
(opalsStripAdjust)
@ pyramidLevels
Number of data/image pyramid levels (opalsTerrainFilter)
@ outCRS
output coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
@ threshold
threshold (opalsEdgeDetect)
Definition: hydThalweg.py:33
@ postfix_quantile
postfix for quantile grid files
@ scanner
sessions.adjustment.scanner group(opalsStripAdjust)
@ timeLag
sessions.trajectory group(opalsStripAdjust)
@ clean
Parameter group 'clean' (opalsLineTopology)
@ mergePolygon
merge polygon method (eg. opalsImport)
@ image2image
image-to-image correspondences group (opalsStripAdjust)
@ byproduct
optional output that is not the central result of a module run (opalsSegmentation: segment odm repres...
@ deviation
byproduct deviation file (opalsGridMerge)
@ lsmMode
LSM processing mode (opalsLSM)
@ createAlpha
indicator for grid mask creation as alpha channel (opalsMask)
@ segments
segment manager (opalsSegmentation)
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
@ postfix_range
postfix for differences between maximum and minimum grid files
@ mergeFunc
merge function for blending multiple raster (opalsGridMerge)
@ procMode
processing mode
@ inGeometry
input (OGC) geometry
@ normalize
normalize results (e.g. opalsConvolution)
@ lineBufferDist
Line buffer distance.
@ postfix_var
postfix for variance grid files
@ outSRS
output spatial reference system as WKT/proj4 description string or EPSG code (opalsReproject)
@ refModel
defines a reference model (e.g., horizontal/tilted plane or raster model)
@ oriFormat
file format for image orientations (opalsSnellius)
@ distortion
lens distortion (opalsStripAdjust)
@ inParamFiles
parameters to import from file
@ postfix_kmin
postfix for minimum curvature grid files
@ densityRange
density range (e.g. opalsHisto)
@ breakLines
specific parameter for category break lines (opalsTerrainFilter)
@ robustIter
number of robust iterations (opalsStripAdjust)
@ postfix_nmin
postfix for n-minimum grid files
@ minImageCount
minimum number of image points for a tie point (opalsStripAdjust)
@ detailedAnalysis
record detailed analysis while processing (opalsTerrainFilter)
@ valueFrequency
option for opalsInfo for extracting the value frequencies for certain attributes/bands
@ force_coord_ref_sys
forces using CRS from coord_ref_sys option
@ exportOverview
export overview features (opalsInfo)
@ dpSigPriori
correspondences.control2strip group(opalsStripAdjust)
@ leverArm
sessions.adjustment group(opalsStripAdjust)
@ ignoreNoData
ignore no-data pixels within kernel neighbourhood (opalsConvolution)
@ bulkPoints
specific parameter for category bulk points (opalsTerrainFilter)
@ trafoType
transformation type (opalsICP)
@ kernelSize
output grid size equals entire kernel size
def check_echo_attribute(self, odm)
Definition: hydThalweg.py:123
@ maxTol
maximum tolerance (e.g. opalsSimplify)
@ maxAngleDev
maximum angle between two elements (opalsICP, opalsLineTopology)
@ navFrame
navigation frame (opalsAddTraj)
@ sampleRange
sample (attribute) range (e.g. opalsHisto)
@ formLines
specific parameter for category form lines (opalsTerrainFilter)
@ lowerThresholdScale
scale for asymmetric filter thresholds (opalsTerrainFilter)
@ storeStatistics
used by zonal fit to store statistics as attribute in ODM file.
@ sigmaShift
sigma of additional shift observations (opalsGeorefApprox)
@ directory
Temporary / intermediate data directory path (opalsStripAdjust)
@ camera
camera ID (opalsStripAdjust)
@ patchWidth
patch width for structure line modelling (opalsLineModeler)
@ outTrafPars
output transformation parameters (opalsLSM, opalsGeorefApprox)
@ dKappa
kappa angle offset (opalsStripAdjust)
@ postfix_kmean
postfix for mean curvature grid files
@ coord_system
DEPRECATED OPTION: use option coord_ref_sys instead!
@ postfix_precision
postfix for precision grid files
@ levels
individual height levels (e.g. opalsIsolines)
@ robustWFAdpation
adaptations of the robust weight function (opalsRobFilter)
Provides access method(s) to the first given option with name(s) according to that option's enumerato...
Definition: IAccess.hpp:20
@ boundsType
boundary type to use (e.g. opalsBounds)
@ X
sessions.adjustment.leverArm group(opalsStripAdjust)
@ processStructure
byproduct structure file (opalsGridMerge)
Names
Enumerates all option names.
Definition: OptionNames.hpp:19
@ aFormat
format for approximate file (opalsDBH)
@ processId
defining a list of ids to process (opalsLineModeler)
@ undistort
create undistorted images (opalsStripAdjust)
def sections_non_ground(self, classified_odm, logger)
Creates cross-sections of (non-ground-)points.
Definition: hydThalweg.py:225
@ adaptive
Uses adaptive plane fit with inverse distance weighting.
@ tempDirectory
name of temporary directory
@ extrapolationCheck
check for extrapolation (opalsGrid)
@ c
focal length (opalsStripAdjust)
@ filter
string to be parsed in construction of DM::IFilter (various modules)
def thalweg_en(self, outGeo, wb_th)
Computes the global coordinates of each thalweg point.
Definition: hydThalweg.py:690
@ minWeight
minimum weight (opalsLineTopology)
@ postfix_max
postfix for maximum grid files
@ covariance
estimate covariance? (opalsStripAdjust)
@ merge
Parameter group 'merge' (opalsLineTopology)
@ offset
scanner range offset (opalsStripAdjust)
@ oformat_lidar
default lidar output format
def transformation_parameters(self, outGeo)
Computes the parameters of a similarity transformation.
Definition: hydThalweg.py:655
@ nClasses
number of different classes (e.g. opalsZColor)
@ fillMask
input file (vector or raster) containing the data mask (e.g. result of opalsBounds) (opalsFillGaps)
@ controlPointClouds
controlPointClouds group(opalsStripAdjust)
@ scannerOrientation
strip group (opalsStripAdjust)
@ robustInterpolation
group of specific parameters for robust interpolation (opalsTerrainFilter)
@ exactComputation
flag for exact median computation (opalsHisto)
@ inCRS
input coordinate reference system as WKT/proj4 description string or EPSG code (opalsTranslate)
@ outGeometry
output (OGC) geometry
@ scanAngleMaxAbs
strip.filter group (opalsStripAdjust)
@ outDirectory
name of output directory
@ area
Calculate only the area.
@ max_log_file_mb
Maximum log file size [MB].
@ tolerance_abs
absolute tolerance value
def cse(self, outGeo)
Extracts cross-distances, stationings and elevations of the points in each section out of outGeo.
Definition: hydThalweg.py:243
@ range
scanner range group (opalsStripAdjust)
@ oformat_vector
default vector output format
@ dZ
strip.trajectory group (opalsStripAdjust)
@ groundTiePoints
group for tie object points (opalsStripAdjust)
@ storeBeamInfo
defines beam information that is attached during import (opalsImport)
@ gapInfo
write additional gap information to files (opalsFillGaps)
@ snapRadius
snap radius (e.g. opalsTIN: used for connecting close line endings)
def buffer(self, logger)
Creates a buffer-shapefile out of the axisfile and the section width.
Definition: hydThalweg.py:81
@ postfix_attribute
postfix for grid files repesenting an abitrary attribute
For an empty parameter pack, IAcc_ defines IBase as its Type.
Definition: IAccess.hpp:24
@ calcScanAngle
strip group (opalsStripAdjust)
Provides access method(s) to the first given option with name(s) according to that option's enumerato...
Definition: IAccess.hpp:571
@ dPhi
phi angle offset (opalsStripAdjust)
@ scanAngle
sessions.adjustment.scanner.scanAngleOffset group(opalsStripAdjust)
@ restoreOrder
restore natural order of data (opalsExport)
@ tolerance_rel
relative tolerance factor
@ sigmaSmooth
gaussian smoothing sigma (opalsEdgeDetect)
@ dX
strip.trajectory group (opalsStripAdjust)
@ tempData
Temporary / intermediate data group (opalsStripAdjust)
@ stripList
a list strip (opalsGeorefApprox)
@ postfix_z
postfix for grid files representing z
@ searchMode
dimension of nearest neighbor search (opalsNormals)
@ exportHeader
export header features (opalsInfo) -> deprecated
@ approximative
use precise(=slow) or approximative(=fast) computation (opalsBounds)
@ X0
Projection center's X-coordinate.
@ condition
condition formula string for grid mask computation (opalsMask)
@ straightness
weight factor straightness (opalsLineTopology)
@ timeRange
process only a subset of the data the given time range (opalsFullwave)
@ feature
Use a statistic feature of the boundary gap points for filling.
@ style
Parameter group 'style' containing styling-options for isolines (opalsIsolines)
@ dY0
Projection center's Y-coordinate offset (opalsStripAdjust)
@ oFilter
output filter (e.g. opalsTIN)
@ rho0
lens distortion normalization radius (opalsStripAdjust)
@ refractiveIndex
refractive index (e.g. opalsSnellius)
@ mtaZone
defines the MTA zone to resolve ambiguities of multiple-pluses-in-air-scanners (opalsFullwave)
@ outZOffset
height offset of output SRS (opalsReproject)
@ sort
sorting method (opalsSegmentation: sorting of segments)
@ seedCalculator
Calculator for seed point order (opalsSegmentation)
@ postfix_nmax
postfix for n-maximum grid files
@ dPitch
strip.trajectory group (opalsStripAdjust)
@ histogram
generic histogram (opalsHisto)
@ filterThresholds
filter thresholds for hierarchical levels (opalsTerrainFilter)
@ sigmaApprox
2d sigma of the structure line approximation (opalsLineModeler)
classifyGroundPoints
Definition: hydThalweg.py:138
@ overlap
specifies the overlap for sequential operations
@ maxReprojectionError
maximum reprojection error (opalsStripAdjust)
def sections(self, classified_odm, logger)
Creates cross-sections of (ground-)points.
Definition: hydThalweg.py:187
@ plotFile
name of plot file (e.g. opalsHisto)
@ minAngle
minimum intersection angle (opalsLineModeler)
@ postfix_kmaxDir
postfix for azimuth of maximum curvature grid files
@ selection
correspondences.strip2strip.selection group(opalsStripAdjust)
@ formula
formula string for algebraic grid computations (opalsAlgebra)
@ points_in_memory
limit number of points kept in memory by the ODM
@ postfix_rms
postfix for rms grid files
@ cleanup
Cleanup / delete temporary / intermediate data (opalsStripAdjust)
@ planeExtraction
Parameter group 'planeExtraction' containing options for planar surface extraction (opalsSegmentation...
@ checkPoints
IDs of check points (opalsStripAdjust)
@ postfix_exposRad
postfix for exposition grid files
@ mergeWidth
merge width defining the band for blending multiple raster (opalsGridMerge)
@ compressCollinear
export/store first and last vertices only of a series of collinear vertices (e.g. opalsContouring)
@ enduranceMode
force to continue processing (with next file/dataset) where normally an expcetions would be thrown (o...
@ data_type_grid
default output grid/raster data type
@ angle
weight factor angle (Hz, V) (opalsLineTopology)
For an empty parameter pack, IAcc_ defines IBase as its Type.
Definition: IAccess.hpp:730
scriptName
Definition: hydThalweg.py:747
@ alphaFile
output file path for alpha shape (opalsTIN)
@ postfix_slpRad
postfix for slpRad grid files
typename IAcc_< Opts... >::Type IAcc
The specialization of IAcc for the first member of a group.
Definition: IAccess.hpp:3972
@ fixedStrip
fixed strip within the adjustment (opalsGeorefApprox)
@ screenLogLevel
verbosity level of screen output
@ deleteUselessOutFile
delete useless output file
@ initValue
initialization value for specified cell (eg, opalsRasterize)
@ strips
strip group (opalsStripAdjust)
@ dYaw
strip.trajectory group (opalsStripAdjust)
@ hemisphere
UTM definition group (opalsStripAdjust)
@ applyTrafo
determines whether to apply transformation to first or second input file(opalsDiff)
@ voxelSize
defines the size (edge length) of voxel cube)
@ postfix_expos
postfix for exposition grid files (deprecated use exposRad instead)
@ postfix_sum
postfix for sum grid files
@ create_option
dataset create options
@ maxMemory
amount of memory [MB] to be used by (various) modules
@ postfix_openness
postfix for openness grid files
@ palFile
palette file (opalsZcolor)
@ groundControlPoints
groundControlPoints group(opalsStripAdjust)
@ densification
densification mode (opalsIsolines)
@ searchGeneration
search generation (opalsLineTopology)
@ generateOFD
defines maximum distance to be bridged (opalsInfo)
@ maxDist
maximum point distance (e.g. opalsSimplify, opalsSegmentation)
@ operation
coordinate operation for crs transformations (opalsTranslate)
def section_outlines(self, outGeo, logger)
Creates the section outlines and stores them in a shp-file.
Definition: hydThalweg.py:594
@ boundaryRatio
ratio between the valid boundary pixel of a gap and the number of gap-pixel that lie on the image bou...
@ pointCount
min und max point count for patches (opalsLineModeler)
@ setAttribute
generic ground point calculator setting (opalsTerrainFilter)
For an empty parameter pack, IAcc_ defines IBase as its Type.
Definition: IAccess.hpp:575
@ postfix_slpDeg
postfix for slpDeg grid files
@ compress
Compress temporary / intermediate data (opalsStripAdjust)
@ spikeRemoval
flag for removing spikes in the final modelling result (opalsLineModeler)
@ keyPoints
specific parameter for category key points (opalsTerrainFilter)
@ patchLength
patch length for structure line modelling (opalsLineModeler)
@ classifyOverlap
test option for opalsTerrainFiler
@ postfix_kgauss
postfix for gaussian curvature grid files
@ lineBufferedScreenLog
line buffered log output to screen
@ overlapFile
overlap file path (e.g. opalsOverlap )
@ maxIter
maximum number of iterations (various modules)
Base class of all option types.
Definition: IOption.hpp:39
@ postfix_minority
postfix for minority grid files
@ minLength
minimum length
@ postfix_sigmaz
postfix for sigmaZ grid files
@ sessions
sessions group (opalsStripAdjust)
@ dZ0
Projection center's Z-coordinate offset (opalsStripAdjust)
@ postfix_kmax
postfix for maximum curvature grid files