10 #include <opals/fwd.hpp>
11 #include <opals/UsageLevel.hpp>
12 #include <opals/ValueSource.hpp>
13 #include <opals/OptionNames.hpp>
14 #include <type_traits>
33 using NameT = std::integral_constant< Names, nam >;
62 template< Names nam,
bool rdOnly,
class T >
66 typedef NameT<nam> Name;
74 virtual bool empty()
const = 0;
77 virtual const T&
get()
const = 0;
79 virtual const T&
getOr(
const T& default_)
const = 0;
85 template< Names nam,
class T >
87 :
ILeaf< nam, true, T >
90 virtual void set(
const T&
value) = 0;
96 #include <opals/IAccess.hpp>
107 template<
Names nam,
bool rdOnly,
class... Opts >
109 :
IAcc< rdOnly, Opts... >
111 typedef NameT<nam> Name;
119 template<
Names nam,
bool rdOnly,
class... Opts >
123 typedef NameT<nam> Name;
127 virtual std::size_t
size()
const = 0;
138 template<
Names nam,
class... Opts >
142 typedef NameT<nam> Name;
146 virtual std::size_t
size()
const = 0;
166 template<
Names nam,
bool rdOnly,
class... Opts >
173 template<
Names nam,
class... Opts >
178 virtual void resize( std::size_t
size ) = 0;
186 template<
Names nam,
bool rdOnly, std::size_t N,
class... Opts >
virtual Specs specialization() const =0
The sub-type of this option.
virtual UsageLevel minUsageLevel() const =0
For a leaf, this is its own usage level. For a node, this is the minimum usage level of all of its de...
virtual bool readOnly() const =0
Returns true if this or any of its parents is read-only.
A container of read-only options.
Definition: IOption.hpp:120
virtual UsageLevel usageLevel() const =0
Frequency / expected skills of users that access this leaf.
UsageLevel
Frequency of use / needed level of user experience of an option.
Definition: UsageLevel.hpp:8
Leaf that holds a read-only value.
Definition: IOption.hpp:63
virtual String shortDescription() const =0
One-liner that describes this option.
Contains the public interface of OPALS.
Definition: ApplyTrafo.hpp:5
Specs
Enumerates all option types.
Definition: IOption.hpp:23
ValueSource
Origin of an option value.
Definition: ValueSource.hpp:8
virtual String longDescription() const =0
Longer text that describes this option in more detail.
Names
Enumerates all option names.
Definition: OptionNames.hpp:19
virtual String name() const =0
The option name as string.
virtual ValueSource valueSource() const =0
The context in which the value has been set.
An array of N options.
Definition: IOption.hpp:187
virtual Names enumerator() const =0
The option name as enumerator.
virtual bool empty() const =0
If its value has not been set, a leaf is considered empty.
virtual const T & getOr(const T &default_) const =0
Get the value or default_ if empty.
A group of options.
Definition: IOption.hpp:108
@ vector
General vector data file (las, shp, ..)
virtual String path() const =0
The option name as string, preceded by the names of its parents, if any, interspersed with '....
A dynamic character string whose interface conforms to STL's std::string.
Definition: String.hpp:35
virtual const T & get() const =0
Get the value.
typename IAcc_< rdOnly, Opts... >::Type IAcc
The specialization of GetIAcc for the first member of a group.
Definition: IAccess.hpp:6809
A vector of a variable number of read-only options.
Definition: IOption.hpp:167
virtual const Element & all() const =0
Access the default element.
virtual std::size_t size() const =0
The number of actual elements.
Base class of all option types.
Definition: IOption.hpp:36
@ value
strip.trajectory.dX/dY/dZ/dRoll/dPitch/dYaw groups (opalsStripAdjust)
virtual const Element & operator[](std::size_t idx) const =0
Access an actual element.