27#include <LimitTrigger.h>
29#include <spdlog/fmt/fmt.h>
30#include <spdlog/spdlog.h>
52 static bool InRange(T min, T max, T value) {
53 return value >= min && value <= max;
57 static T CoerceIntoRange(T min, T max, T value) {
58 return (value < min) ? min : (value > max) ? max : value;
62 static bool InRangeAndCoerce(T min, T max, T value, T *output) {
67 (*output) = Range::CoerceIntoRange(min, max, value);
86 template <
typename T,
typename... TArgs>
88 bool inRange =
InRange(min, max, value);
89 if (inRange ==
false) {
90 limitTrigger.
check(lArgs...);
Abstract interface class for limiting some action to predefined execution.
Definition LimitTrigger.h:66
void check(TcheckArgs... args)
Should be called from code when out of bounds conditions for triggering is detected.
Definition LimitTrigger.h:77
virtual void reset()=0
Pure virtual placeholder to reset any internal variables.
Utility range checking functions.
Definition Range.h:39
static bool InRange(T min, T max, T value)
Template function to check if a value is inside a given range.
Definition Range.h:52
static bool InRangeTrigger(T min, T max, T value, LimitTrigger< TArgs... > &limitTrigger, TArgs... lArgs)
Tests if value is in given range.
Definition Range.h:87