IDS peak AFL v2.0.2
Loading...
Searching...
No Matches
peak_afl_ifeature.hpp
Go to the documentation of this file.
1
10
11#pragma once
12
16
17namespace peak
18{
19namespace pipeline
20{
21namespace modules
22{
23namespace autofeature
24{
29
30namespace features
31{
57template <typename T>
59{
60public:
66 virtual ~IFeature() = default;
67
83 virtual void Set(const T& value) = 0;
84
99 PEAK_COMMON_NO_DISCARD virtual T Get() const = 0;
100};
101
124template <typename T>
125class IRangeFeature : public IFeature<T>
126{
127public:
145 PEAK_COMMON_NO_DISCARD virtual peak::common::detail::RangeT<T> GetRange() const = 0;
146};
147
167template <typename T>
168class IListFeature : public IFeature<T>
169{
170public:
188 PEAK_COMMON_NO_DISCARD virtual std::vector<T> GetList() const = 0;
189};
190} // namespace features
191} // namespace autofeature
192} // namespace modules
193} // namespace pipeline
194} // namespace peak
Represents a continuous numeric interval with inclusive lower and upper bounds.
Definition peak_common_interval.hpp:44
Represents a numeric range with defined boundaries and a fixed increment.
Definition peak_common_range.hpp:44
Interface for objects that can be serialized to and deserialized from an archive.
Definition peak_common_iserializable.hpp:31
Base interface for auto feature implementations.
Definition peak_afl_ifeature.hpp:59
virtual T Get() const =0
Gets the current feature value.
virtual ~IFeature()=default
Virtual destructor for proper cleanup of derived classes.
virtual void Set(const T &value)=0
Sets the feature value.
Interface for features that have a list of valid values.
Definition peak_afl_ifeature.hpp:169
virtual std::vector< T > GetList() const =0
Gets the list of valid values for this feature.
Interface for features that have a valid range of values.
Definition peak_afl_ifeature.hpp:126
virtual peak::common::detail::RangeT< T > GetRange() const =0
Gets the valid range for this feature's values.
Interface definitions and implementations for individual module types used within a pipeline.
Definition peak_afl_generic_auto_brightness.hpp:39
Interfaces and implementations for defining and controlling data processing pipelines.
Definition peak_afl_generic_auto_brightness.hpp:37
peak::common::detail::RangeT< double > RangeD
Type alias for double-precision range values.
Definition peak_afl_ifeature.hpp:26
peak::common::detail::IntervalT< double > IntervalD
Type alias for double-precision interval values.
Definition peak_afl_ifeature.hpp:28