mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 17:01:18 +02:00
Add filter to map the boolean negation of a flag.
This commit is contained in:
parent
2cd10fd459
commit
af751c8b8c
5 changed files with 40 additions and 0 deletions
|
@ -22,6 +22,7 @@
|
||||||
#include "filters/DeadZoneFilter.h"
|
#include "filters/DeadZoneFilter.h"
|
||||||
#include "filters/HysteresisFilter.h"
|
#include "filters/HysteresisFilter.h"
|
||||||
#include "filters/InvertFilter.h"
|
#include "filters/InvertFilter.h"
|
||||||
|
#include "filters/NotFilter.h"
|
||||||
#include "filters/PulseFilter.h"
|
#include "filters/PulseFilter.h"
|
||||||
#include "filters/ScaleFilter.h"
|
#include "filters/ScaleFilter.h"
|
||||||
#include "filters/TranslateFilter.h"
|
#include "filters/TranslateFilter.h"
|
||||||
|
@ -40,6 +41,7 @@ REGISTER_FILTER_CLASS_INSTANCE(ConstrainToPositiveIntegerFilter, "constrainToPos
|
||||||
REGISTER_FILTER_CLASS_INSTANCE(DeadZoneFilter, "deadZone")
|
REGISTER_FILTER_CLASS_INSTANCE(DeadZoneFilter, "deadZone")
|
||||||
REGISTER_FILTER_CLASS_INSTANCE(HysteresisFilter, "hysteresis")
|
REGISTER_FILTER_CLASS_INSTANCE(HysteresisFilter, "hysteresis")
|
||||||
REGISTER_FILTER_CLASS_INSTANCE(InvertFilter, "invert")
|
REGISTER_FILTER_CLASS_INSTANCE(InvertFilter, "invert")
|
||||||
|
REGISTER_FILTER_CLASS_INSTANCE(NotFilter, "not")
|
||||||
REGISTER_FILTER_CLASS_INSTANCE(ScaleFilter, "scale")
|
REGISTER_FILTER_CLASS_INSTANCE(ScaleFilter, "scale")
|
||||||
REGISTER_FILTER_CLASS_INSTANCE(PulseFilter, "pulse")
|
REGISTER_FILTER_CLASS_INSTANCE(PulseFilter, "pulse")
|
||||||
REGISTER_FILTER_CLASS_INSTANCE(TranslateFilter, "translate")
|
REGISTER_FILTER_CLASS_INSTANCE(TranslateFilter, "translate")
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include "filters/DeadZoneFilter.h"
|
#include "filters/DeadZoneFilter.h"
|
||||||
#include "filters/HysteresisFilter.h"
|
#include "filters/HysteresisFilter.h"
|
||||||
#include "filters/InvertFilter.h"
|
#include "filters/InvertFilter.h"
|
||||||
|
#include "filters/NotFilter.h"
|
||||||
#include "filters/PulseFilter.h"
|
#include "filters/PulseFilter.h"
|
||||||
#include "filters/ScaleFilter.h"
|
#include "filters/ScaleFilter.h"
|
||||||
#include "filters/TranslateFilter.h"
|
#include "filters/TranslateFilter.h"
|
||||||
|
@ -148,6 +149,11 @@ QObject* RouteBuilderProxy::pulse(float interval) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QObject* RouteBuilderProxy::not() {
|
||||||
|
addFilter(std::make_shared<NotFilter>());
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
void RouteBuilderProxy::addFilter(Filter::Pointer filter) {
|
void RouteBuilderProxy::addFilter(Filter::Pointer filter) {
|
||||||
_route->filters.push_back(filter);
|
_route->filters.push_back(filter);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,7 @@ class RouteBuilderProxy : public QObject {
|
||||||
Q_INVOKABLE QObject* postTransform(glm::mat4 transform);
|
Q_INVOKABLE QObject* postTransform(glm::mat4 transform);
|
||||||
Q_INVOKABLE QObject* rotate(glm::quat rotation);
|
Q_INVOKABLE QObject* rotate(glm::quat rotation);
|
||||||
Q_INVOKABLE QObject* lowVelocity(float rotationConstant, float translationConstant);
|
Q_INVOKABLE QObject* lowVelocity(float rotationConstant, float translationConstant);
|
||||||
|
Q_INVOKABLE QObject* not();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void to(const Endpoint::Pointer& destination);
|
void to(const Endpoint::Pointer& destination);
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
#include "NotFilter.h"
|
||||||
|
|
||||||
|
using namespace controller;
|
||||||
|
|
||||||
|
NotFilter::NotFilter() {
|
||||||
|
}
|
||||||
|
|
||||||
|
float NotFilter::apply(float value) const {
|
||||||
|
return (value == 0.0f) ? 1.0f : 0.0f;
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
#pragma once
|
||||||
|
#ifndef hifi_Controllers_Filters_Not_h
|
||||||
|
#define hifi_Controllers_Filters_Not_h
|
||||||
|
|
||||||
|
#include "../Filter.h"
|
||||||
|
|
||||||
|
namespace controller {
|
||||||
|
|
||||||
|
class NotFilter : public Filter {
|
||||||
|
REGISTER_FILTER_CLASS(NotFilter);
|
||||||
|
public:
|
||||||
|
NotFilter();
|
||||||
|
|
||||||
|
virtual float apply(float value) const override;
|
||||||
|
virtual Pose apply(Pose value) const override { return value; }
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue