IDS peak AFL v2.1.0
Loading...
Searching...
No Matches
peak_afl_ifeature.hpp
Go to the documentation of this file.
1
6
7#pragma once
8
12
13namespace peak
14{
15namespace pipeline
16{
17namespace modules
18{
19namespace autofeature
20{
25
26namespace features
27{
53template <typename T>
55{
56public:
62 virtual ~IFeature() = default;
63
79 virtual void Set(const T& value) = 0;
80
95 PEAK_COMMON_NO_DISCARD virtual T Get() const = 0;
96};
97
120template <typename T>
121class IRangeFeature : public IFeature<T>
122{
123public:
141 PEAK_COMMON_NO_DISCARD virtual peak::common::detail::RangeT<T> GetRange() const = 0;
142};
143
163template <typename T>
164class IListFeature : public IFeature<T>
165{
166public:
184 PEAK_COMMON_NO_DISCARD virtual std::vector<T> GetList() const = 0;
185};
186} // namespace features
187} // namespace autofeature
188} // namespace modules
189} // namespace pipeline
190} // namespace peak
Represents a continuous numeric interval with inclusive lower and upper bounds.
Definition peak_common_interval.hpp:39
Represents a numeric range with defined boundaries and a fixed increment.
Definition peak_common_range.hpp:40
Interface for objects that can be serialized to and deserialized from an archive.
Definition peak_common_iserializable.hpp:26
Base interface for auto feature implementations.
Definition peak_afl_ifeature.hpp:55
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:165
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:122
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:35
Interfaces and implementations for defining and controlling data processing pipelines.
Definition peak_afl_generic_auto_brightness.hpp:33
peak::common::detail::RangeT< double > RangeD
Type alias for double-precision range values.
Definition peak_afl_ifeature.hpp:22
peak::common::detail::IntervalT< double > IntervalD
Type alias for double-precision interval values.
Definition peak_afl_ifeature.hpp:24