mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-13 22:27:13 +02:00
Remove new/old value division from endpoint::apply
This commit is contained in:
parent
88ba6cda24
commit
691e5f3be0
14 changed files with 39 additions and 40 deletions
|
@ -529,7 +529,7 @@ bool UserInputMapper::applyRoute(const Route::Pointer& route, bool force) {
|
|||
}
|
||||
}
|
||||
// no filters yet for pose
|
||||
destination->apply(value, Pose(), source);
|
||||
destination->apply(value, source);
|
||||
} else {
|
||||
// Fetch the value, may have been overriden by previous loopback routes
|
||||
float value = getValue(source);
|
||||
|
@ -546,7 +546,7 @@ bool UserInputMapper::applyRoute(const Route::Pointer& route, bool force) {
|
|||
qCDebug(controllers) << "Filtered value was " << value;
|
||||
}
|
||||
|
||||
destination->apply(value, 0, source);
|
||||
destination->apply(value, source);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -37,9 +37,9 @@ namespace controller {
|
|||
|
||||
Endpoint(const Input& input) : _input(input) {}
|
||||
virtual float value() = 0;
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) = 0;
|
||||
virtual void apply(float value, const Pointer& source) = 0;
|
||||
virtual Pose pose() { return Pose(); }
|
||||
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) {}
|
||||
virtual void apply(const Pose& value, const Pointer& source) {}
|
||||
virtual const bool isPose() { return _input.isPose(); }
|
||||
|
||||
virtual bool writeable() const { return true; }
|
||||
|
@ -58,7 +58,7 @@ namespace controller {
|
|||
: Endpoint(Input::INVALID_INPUT), _readLambda(readLambda), _writeLambda(writeLambda) { }
|
||||
|
||||
virtual float value() override { return _readLambda(); }
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) override { _writeLambda(newValue); }
|
||||
virtual void apply(float value, const Pointer& source) override { _writeLambda(value); }
|
||||
|
||||
private:
|
||||
ReadLambda _readLambda;
|
||||
|
@ -73,11 +73,11 @@ namespace controller {
|
|||
}
|
||||
|
||||
virtual float value() override { return _currentValue; }
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) override { _currentValue = newValue; }
|
||||
virtual void apply(float value, const Pointer& source) override { _currentValue = value; }
|
||||
|
||||
virtual Pose pose() override { return _currentPose; }
|
||||
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override {
|
||||
_currentPose = newValue;
|
||||
virtual void apply(const Pose& value, const Pointer& source) override {
|
||||
_currentPose = value;
|
||||
}
|
||||
protected:
|
||||
float _currentValue { 0.0f };
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
using namespace controller;
|
||||
|
||||
void ActionEndpoint::apply(float newValue, float oldValue, const Pointer& source) {
|
||||
void ActionEndpoint::apply(float newValue, const Pointer& source) {
|
||||
_currentValue += newValue;
|
||||
if (_input != Input::INVALID_INPUT) {
|
||||
auto userInputMapper = DependencyManager::get<UserInputMapper>();
|
||||
|
@ -22,8 +22,8 @@ void ActionEndpoint::apply(float newValue, float oldValue, const Pointer& source
|
|||
}
|
||||
}
|
||||
|
||||
void ActionEndpoint::apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) {
|
||||
_currentPose = newValue;
|
||||
void ActionEndpoint::apply(const Pose& value, const Pointer& source) {
|
||||
_currentPose = value;
|
||||
if (!_currentPose.isValid()) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -24,10 +24,10 @@ public:
|
|||
ActionEndpoint(const Input& id = Input::INVALID_INPUT) : Endpoint(id) { }
|
||||
|
||||
virtual float value() override { return _currentValue; }
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) override;
|
||||
virtual void apply(float newValue, const Pointer& source) override;
|
||||
|
||||
virtual Pose pose() override { return _currentPose; }
|
||||
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override;
|
||||
virtual void apply(const Pose& value, const Pointer& source) override;
|
||||
|
||||
virtual void reset() override;
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ float AnyEndpoint::value() {
|
|||
return result;
|
||||
}
|
||||
|
||||
void AnyEndpoint::apply(float newValue, float oldValue, const Endpoint::Pointer& source) {
|
||||
void AnyEndpoint::apply(float newValue, const Endpoint::Pointer& source) {
|
||||
qFatal("AnyEndpoint is read only");
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ class AnyEndpoint : public Endpoint {
|
|||
public:
|
||||
AnyEndpoint(Endpoint::List children);
|
||||
virtual float value() override;
|
||||
virtual void apply(float newValue, float oldValue, const Endpoint::Pointer& source) override;
|
||||
virtual void apply(float newValue, const Endpoint::Pointer& source) override;
|
||||
virtual bool writeable() const override;
|
||||
virtual bool readable() const override;
|
||||
|
||||
|
|
|
@ -24,10 +24,10 @@ public:
|
|||
return 0.0;
|
||||
}
|
||||
|
||||
virtual void apply(float newValue, float oldValue, const Endpoint::Pointer& source) override {
|
||||
virtual void apply(float value, const Endpoint::Pointer& source) override {
|
||||
for (auto& child : _children) {
|
||||
if (child->writeable()) {
|
||||
child->apply(newValue, oldValue, source);
|
||||
child->apply(value, source);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ float CompositeEndpoint::value() {
|
|||
return result;
|
||||
}
|
||||
|
||||
void CompositeEndpoint::apply(float newValue, float oldValue, const Pointer& source) {
|
||||
void CompositeEndpoint::apply(float newValue, const Pointer& source) {
|
||||
// Composites are read only
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace controller {
|
|||
CompositeEndpoint(Endpoint::Pointer first, Endpoint::Pointer second);
|
||||
|
||||
virtual float value() override;
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) override;
|
||||
virtual void apply(float newValue, const Pointer& source) override;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -22,9 +22,9 @@ public:
|
|||
|
||||
virtual float value() override;
|
||||
// FIXME need support for writing back to vibration / force feedback effects
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) override {}
|
||||
virtual void apply(float newValue, const Pointer& source) override {}
|
||||
virtual Pose pose() override;
|
||||
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override { }
|
||||
virtual void apply(const Pose& value, const Pointer& source) override { }
|
||||
|
||||
virtual bool writeable() const { return false; }
|
||||
virtual bool readable() const { return !_read; }
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
return result;
|
||||
}
|
||||
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) {
|
||||
virtual void apply(float newValue, const Pointer& source) {
|
||||
_callable.call(QJSValueList({ QJSValue(newValue) }));
|
||||
}
|
||||
|
||||
|
|
|
@ -26,22 +26,21 @@ void ScriptEndpoint::updateValue() {
|
|||
_lastValueRead = (float)_callable.call().toNumber();
|
||||
}
|
||||
|
||||
void ScriptEndpoint::apply(float newValue, float oldValue, const Pointer& source) {
|
||||
if (newValue == _lastValueWritten) {
|
||||
void ScriptEndpoint::apply(float value, const Pointer& source) {
|
||||
if (value == _lastValueWritten) {
|
||||
return;
|
||||
}
|
||||
internalApply(newValue, oldValue, source->getInput().getID());
|
||||
internalApply(value, source->getInput().getID());
|
||||
}
|
||||
|
||||
void ScriptEndpoint::internalApply(float newValue, float oldValue, int sourceID) {
|
||||
_lastValueWritten = newValue;
|
||||
void ScriptEndpoint::internalApply(float value, int sourceID) {
|
||||
_lastValueWritten = value;
|
||||
if (QThread::currentThread() != thread()) {
|
||||
QMetaObject::invokeMethod(this, "internalApply", Qt::QueuedConnection,
|
||||
Q_ARG(float, newValue),
|
||||
Q_ARG(float, oldValue),
|
||||
Q_ARG(float, value),
|
||||
Q_ARG(int, sourceID));
|
||||
return;
|
||||
}
|
||||
_callable.call(QScriptValue(),
|
||||
QScriptValueList({ QScriptValue(newValue), QScriptValue(oldValue), QScriptValue(sourceID) }));
|
||||
QScriptValueList({ QScriptValue(value), QScriptValue(sourceID) }));
|
||||
}
|
||||
|
|
|
@ -24,11 +24,11 @@ public:
|
|||
}
|
||||
|
||||
virtual float value();
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source);
|
||||
virtual void apply(float newValue, const Pointer& source);
|
||||
|
||||
protected:
|
||||
Q_INVOKABLE void updateValue();
|
||||
Q_INVOKABLE virtual void internalApply(float newValue, float oldValue, int sourceID);
|
||||
Q_INVOKABLE virtual void internalApply(float newValue, int sourceID);
|
||||
private:
|
||||
QScriptValue _callable;
|
||||
float _lastValueRead { 0.0f };
|
||||
|
|
|
@ -20,8 +20,8 @@ public:
|
|||
virtual bool writeable() const override { return !_written; }
|
||||
virtual bool readable() const override { return !_read; }
|
||||
virtual void reset() override {
|
||||
apply(0.0f, 0.0f, Endpoint::Pointer());
|
||||
apply(Pose(), Pose(), Endpoint::Pointer());
|
||||
apply(0.0f, Endpoint::Pointer());
|
||||
apply(Pose(), Endpoint::Pointer());
|
||||
_written = _read = false;
|
||||
}
|
||||
|
||||
|
@ -30,12 +30,12 @@ public:
|
|||
return VirtualEndpoint::value();
|
||||
}
|
||||
|
||||
virtual void apply(float newValue, float oldValue, const Pointer& source) override {
|
||||
virtual void apply(float value, const Pointer& source) override {
|
||||
// For standard endpoints, the first NON-ZERO write counts.
|
||||
if (newValue != 0.0) {
|
||||
if (value != 0.0) {
|
||||
_written = true;
|
||||
}
|
||||
VirtualEndpoint::apply(newValue, oldValue, source);
|
||||
VirtualEndpoint::apply(value, source);
|
||||
}
|
||||
|
||||
virtual Pose pose() override {
|
||||
|
@ -43,11 +43,11 @@ public:
|
|||
return VirtualEndpoint::pose();
|
||||
}
|
||||
|
||||
virtual void apply(const Pose& newValue, const Pose& oldValue, const Pointer& source) override {
|
||||
if (newValue != Pose()) {
|
||||
virtual void apply(const Pose& value, const Pointer& source) override {
|
||||
if (value != Pose()) {
|
||||
_written = true;
|
||||
}
|
||||
VirtualEndpoint::apply(newValue, oldValue, source);
|
||||
VirtualEndpoint::apply(value, source);
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in a new issue