From 1a609ce322997fb8d7d4af0419c8b2787466e141 Mon Sep 17 00:00:00 2001 From: Mirko Waechter <mirko.waechter@kit.edu> Date: Fri, 16 Nov 2018 11:40:01 +0100 Subject: [PATCH] Trajectory: added possibility to clone only meta data --- source/RobotAPI/libraries/core/Trajectory.cpp | 16 +++++++++++++--- source/RobotAPI/libraries/core/Trajectory.h | 3 ++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/source/RobotAPI/libraries/core/Trajectory.cpp b/source/RobotAPI/libraries/core/Trajectory.cpp index 1d85531ea..404379ab6 100644 --- a/source/RobotAPI/libraries/core/Trajectory.cpp +++ b/source/RobotAPI/libraries/core/Trajectory.cpp @@ -131,6 +131,13 @@ namespace armarx return new Trajectory(*this); } + TrajectoryPtr Trajectory::cloneMetaData() const + { + TrajectoryPtr t = new Trajectory(); + CopyMetaData(*this, *t); + return t; + } + std::string Trajectory::output(const Ice::Current&) const { @@ -1647,11 +1654,14 @@ namespace armarx } - void Trajectory::clear() + void Trajectory::clear(bool keepMetaData) { dataMap.erase(dataMap.begin(), dataMap.end()); - dimensionNames.clear(); - limitless.clear(); + if (!keepMetaData) + { + dimensionNames.clear(); + limitless.clear(); + } } diff --git a/source/RobotAPI/libraries/core/Trajectory.h b/source/RobotAPI/libraries/core/Trajectory.h index 5f7613bdc..15de38e07 100644 --- a/source/RobotAPI/libraries/core/Trajectory.h +++ b/source/RobotAPI/libraries/core/Trajectory.h @@ -398,7 +398,7 @@ namespace armarx static void CopyData(const Trajectory& source, Trajectory& destination); static void CopyMetaData(const Trajectory& source, Trajectory& destination); - void clear(); + void clear(bool keepMetaData = false); void setPositionEntry(const double t, const size_t dimIndex, const double& y); void setEntries(const double t, const size_t dimIndex, const Ice::DoubleSeq& y); bool dataExists(double t, size_t dimension = 0, size_t derivation = 0) const; @@ -417,6 +417,7 @@ namespace armarx // VariantDataClass interface VariantDataClassPtr clone(const Ice::Current& c = Ice::Current()) const override; + TrajectoryPtr cloneMetaData() const; std::string output(const Ice::Current& c = Ice::Current()) const override; Ice::Int getType(const Ice::Current& c = Ice::Current()) const override; bool validate(const Ice::Current& c = Ice::Current()) override; -- GitLab