9 #ifndef hifi_Controllers_Filters_Acceleration_Limiter_h
10 #define hifi_Controllers_Filters_Acceleration_Limiter_h
12 #include "../Filter.h"
14 namespace controller {
16 class AccelerationLimiterFilter :
public Filter {
17 REGISTER_FILTER_CLASS(AccelerationLimiterFilter);
20 AccelerationLimiterFilter() {}
22 AxisValue apply(AxisValue value)
const override {
return value; }
23 Pose apply(Pose value)
const override;
24 bool parseParameters(
const QJsonValue& parameters)
override;
27 float _rotationAccelerationLimit { FLT_MAX };
28 float _translationAccelerationLimit { FLT_MAX };
29 float _rotationSnapThreshold { 0.0f };
30 float _translationSnapThreshold { 0.0f };
32 mutable glm::vec3 _prevPos[3];
33 mutable glm::quat _prevRot[3];
34 mutable glm::vec3 _unfilteredPrevPos[3];
35 mutable glm::quat _unfilteredPrevRot[3];
36 mutable bool _prevValid {
false };