From d073dc22ac4131955bccb71a72519401be83c671 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Wed, 2 Jan 2019 13:39:31 +1300 Subject: [PATCH] Misc fixes --- libraries/controllers/src/controllers/impl/Endpoint.h | 1 - .../src/controllers/impl/endpoints/AnyEndpoint.cpp | 2 +- .../src/controllers/impl/endpoints/CompositeEndpoint.cpp | 8 ++++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libraries/controllers/src/controllers/impl/Endpoint.h b/libraries/controllers/src/controllers/impl/Endpoint.h index 29ba7c97f0..bcf71f3094 100644 --- a/libraries/controllers/src/controllers/impl/Endpoint.h +++ b/libraries/controllers/src/controllers/impl/Endpoint.h @@ -43,7 +43,6 @@ namespace controller { virtual Pose peekPose() const { return Pose(); }; virtual Pose pose() { return peekPose(); } virtual void apply(const Pose& value, const Pointer& source) {} - virtual bool isAxis() const { return _input.isAxis(); } virtual bool isPose() const { return _input.isPose(); } virtual bool writeable() const { return true; } virtual bool readable() const { return true; } diff --git a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp index 75acdd9d13..7f0f0fec48 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/AnyEndpoint.cpp @@ -46,7 +46,7 @@ AxisValue AnyEndpoint::value() { for (auto& child : _children) { auto childValue = child->value(); if (std::abs(childValue.value) > std::abs(result.value)) { - result.value = childValue.value; + result = childValue; } } return result; diff --git a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp index bd75c97dd7..f54c786a33 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp @@ -25,13 +25,17 @@ bool CompositeEndpoint::readable() const { } AxisValue CompositeEndpoint::peek() const { - auto result = AxisValue(first->peek().value * -1.0f + second->peek().value, 0); + auto negative = first->peek(); + auto positive = second->peek(); + auto result = AxisValue(positive.value - negative.value, std::max(positive.timestamp, negative.timestamp)); return result; } // Fetching via value() must trigger any side effects of value() on the children AxisValue CompositeEndpoint::value() { - auto result = AxisValue(first->value().value * -1.0f + second->value().value, 0); + auto negative = first->value(); + auto positive = second->value(); + auto result = AxisValue(positive.value - negative.value, std::max(positive.timestamp, negative.timestamp)); return result; }