IDS peak AFL v1.8.0
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{
25
30
31namespace features
32{
33
59template <typename T>
61{
62public:
68 virtual ~IFeature() = default;
69
85 virtual void Set(const T& value) = 0;
86
101 PEAK_COMMON_NO_DISCARD virtual T Get() const = 0;
102};
103
126template <typename T>
127class IRangeFeature : public IFeature<T>
128{
129public:
148};
149
169template <typename T>
170class IListFeature : public IFeature<T>
171{
172public:
190 PEAK_COMMON_NO_DISCARD virtual std::vector<T> GetList() const = 0;
191};
192
193} // namespace features
194} // namespace autofeature
195} // namespace modules
196} // namespace pipeline
197} // 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:61
virtual PEAK_COMMON_NO_DISCARD 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:171
virtual PEAK_COMMON_NO_DISCARD 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:128
virtual PEAK_COMMON_NO_DISCARD peak::common::detail::RangeT< T > GetRange() const =0
Gets the valid range for this feature's values.
#define PEAK_COMMON_NO_DISCARD
Compatability macro for the nodiscard attribute.
Definition peak_common_defines.hpp:91
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:27
peak::common::detail::IntervalT< double > IntervalD
Type alias for double-precision interval values.
Definition peak_afl_ifeature.hpp:29