Overte C++ Documentation
ClampFilter.h
1 //
2 // Created by Bradley Austin Davis 2015/10/25
3 // Copyright 2015 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 
9 #pragma once
10 #ifndef hifi_Controllers_Filters_Clamp_h
11 #define hifi_Controllers_Filters_Clamp_h
12 
13 #include "../Filter.h"
14 
15 namespace controller {
16 
17 class ClampFilter : public Filter {
18  REGISTER_FILTER_CLASS(ClampFilter);
19 public:
20  ClampFilter(float min = 0.0, float max = 1.0) : _min(min), _max(max) {};
21  virtual AxisValue apply(AxisValue value) const override {
22  return { glm::clamp(value.value, _min, _max), value.timestamp, value.valid };
23  }
24 
25  virtual Pose apply(Pose value) const override { return value; }
26 
27  virtual bool parseParameters(const QJsonValue& parameters) override;
28 protected:
29  float _min = 0.0f;
30  float _max = 1.0f;
31 };
32 
33 }
34 
35 #endif