From 6b773254786abc0957f555ec9830a368b3f9861b Mon Sep 17 00:00:00 2001 From: Raphael <ufdrv@student.kit.edu> Date: Fri, 20 Jan 2017 16:19:26 +0100 Subject: [PATCH] now using pure virtual functions in target base (instead of ducktyping) --- source/RobotAPI/libraries/Controllers/LVL0Controller.h | 2 +- .../libraries/Controllers/Targets/JointPositionTarget.h | 4 ++-- .../Controllers/Targets/JointPositionVelocityTarget.h | 4 ++-- .../RobotAPI/libraries/Controllers/Targets/JointTargetBase.h | 2 ++ .../libraries/Controllers/Targets/JointTorqueTarget.h | 4 ++-- .../libraries/Controllers/Targets/JointVelocityTarget.h | 4 ++-- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/source/RobotAPI/libraries/Controllers/LVL0Controller.h b/source/RobotAPI/libraries/Controllers/LVL0Controller.h index e38510288..fafa5b0ac 100644 --- a/source/RobotAPI/libraries/Controllers/LVL0Controller.h +++ b/source/RobotAPI/libraries/Controllers/LVL0Controller.h @@ -50,7 +50,7 @@ namespace armarx TargetType* getTarget() { - return target; + return & target; } void resetTarget() diff --git a/source/RobotAPI/libraries/Controllers/Targets/JointPositionTarget.h b/source/RobotAPI/libraries/Controllers/Targets/JointPositionTarget.h index 9bc7d9d13..39c788d5d 100644 --- a/source/RobotAPI/libraries/Controllers/Targets/JointPositionTarget.h +++ b/source/RobotAPI/libraries/Controllers/Targets/JointPositionTarget.h @@ -46,11 +46,11 @@ namespace armarx { return ePositionControl; } - virtual void reset() + virtual void reset() override { position = ControllerConstatns::ValueNotSetNaN; } - bool isValid() const + virtual bool isValid() const override { return std::isfinite(position); } diff --git a/source/RobotAPI/libraries/Controllers/Targets/JointPositionVelocityTarget.h b/source/RobotAPI/libraries/Controllers/Targets/JointPositionVelocityTarget.h index d2622cc91..5cd022809 100644 --- a/source/RobotAPI/libraries/Controllers/Targets/JointPositionVelocityTarget.h +++ b/source/RobotAPI/libraries/Controllers/Targets/JointPositionVelocityTarget.h @@ -47,12 +47,12 @@ namespace armarx { return ePositionVelocityControl; } - virtual void reset() + virtual void reset() override { position = ControllerConstatns::ValueNotSetNaN; velocity = ControllerConstatns::ValueNotSetNaN; } - bool isValid() const + virtual bool isValid() const override { return std::isfinite(position) && std::isfinite(velocity); } diff --git a/source/RobotAPI/libraries/Controllers/Targets/JointTargetBase.h b/source/RobotAPI/libraries/Controllers/Targets/JointTargetBase.h index 0dc9ee2b6..d7077bde9 100644 --- a/source/RobotAPI/libraries/Controllers/Targets/JointTargetBase.h +++ b/source/RobotAPI/libraries/Controllers/Targets/JointTargetBase.h @@ -43,6 +43,8 @@ namespace armarx { public: virtual ControlMode getType() const = 0; + virtual void reset() = 0; + virtual bool isValid() const = 0; }; } diff --git a/source/RobotAPI/libraries/Controllers/Targets/JointTorqueTarget.h b/source/RobotAPI/libraries/Controllers/Targets/JointTorqueTarget.h index 8b4ffad81..84860c756 100644 --- a/source/RobotAPI/libraries/Controllers/Targets/JointTorqueTarget.h +++ b/source/RobotAPI/libraries/Controllers/Targets/JointTorqueTarget.h @@ -46,11 +46,11 @@ namespace armarx { return eTorqueControl; } - virtual void reset() + virtual void reset() override { torque = ControllerConstatns::ValueNotSetNaN; } - bool isValid() const + virtual bool isValid() const override { return std::isfinite(torque); } diff --git a/source/RobotAPI/libraries/Controllers/Targets/JointVelocityTarget.h b/source/RobotAPI/libraries/Controllers/Targets/JointVelocityTarget.h index 8f44b2c05..88265541b 100644 --- a/source/RobotAPI/libraries/Controllers/Targets/JointVelocityTarget.h +++ b/source/RobotAPI/libraries/Controllers/Targets/JointVelocityTarget.h @@ -46,11 +46,11 @@ namespace armarx { return eVelocityControl; } - virtual void reset() + virtual void reset() override { velocity = ControllerConstatns::ValueNotSetNaN; } - bool isValid() const + virtual bool isValid() const override { return std::isfinite(velocity); } -- GitLab