From 9b4a02e312617cf21ba885b5986aad1c11de3755 Mon Sep 17 00:00:00 2001 From: Rainer Kartmann <rainer.kartmann@kit.edu> Date: Wed, 4 Sep 2019 11:06:09 +0200 Subject: [PATCH] Swap order of name and layer in VisuID constructor (layer no goes first) --- .../core/test/DebugDrawerTopicTest.cpp | 40 +++++++------- .../core/visualization/DebugDrawerTopic.cpp | 9 ++-- .../core/visualization/DebugDrawerTopic.h | 52 ++++++++++--------- 3 files changed, 54 insertions(+), 47 deletions(-) diff --git a/source/RobotAPI/libraries/core/test/DebugDrawerTopicTest.cpp b/source/RobotAPI/libraries/core/test/DebugDrawerTopicTest.cpp index b6a2310df..a18af95c2 100644 --- a/source/RobotAPI/libraries/core/test/DebugDrawerTopicTest.cpp +++ b/source/RobotAPI/libraries/core/test/DebugDrawerTopicTest.cpp @@ -59,31 +59,31 @@ struct PointCloud private: /// The point container type. using VectorT = std::vector<PointT>; - + public: - + PointCloud() {} PointCloud(const VectorT& points) : points(points) {} - + // Container methods. std::size_t size() const { return points.size(); } - + PointT& operator[](std::size_t i) { return points[i]; } const PointT& operator[](std::size_t i) const { return points[i]; } - + // Iterators. typename VectorT::iterator begin() { return points.begin(); } typename VectorT::const_iterator begin() const { return points.begin(); } typename VectorT::iterator end() { return points.end(); } typename VectorT::const_iterator end() const { return points.end(); } - - + + /// The points. VectorT points; }; -/* These test do not actually check any behaviour, +/* These test do not actually check any behaviour, * but check whether this code compiles. */ @@ -93,12 +93,12 @@ struct Fixture Fixture() { } - - const DebugDrawerTopic::VisuID id {"name", "layer"}; + + const DebugDrawerTopic::VisuID id {"layer", "name"}; const int pointSize = 10; - + DebugDrawerTopic drawer; - + PointCloud<PointT> pointCloudMutable; const PointCloud<PointT>& pointCloud = pointCloudMutable; }; @@ -107,11 +107,11 @@ struct Fixture BOOST_FIXTURE_TEST_CASE(test_drawPointCloud_PointXYZ, Fixture<PointXYZ>) { pointCloudMutable.points = { {1, 2, 3}, {2, 3, 4}, {3, 4, 5} }; - + drawer.drawPointCloud(id, pointCloud); drawer.drawPointCloud(id, pointCloud.points, DrawColor {0, 0.5, 1, 1}); - - drawer.drawPointCloud(id, pointCloud, + + drawer.drawPointCloud(id, pointCloud, [](const PointXYZ&) { return DrawColor{0, 0.5, 1, 1}; }, pointSize); } @@ -120,10 +120,10 @@ BOOST_FIXTURE_TEST_CASE(test_drawPointCloud_PointXYZRGBA, Fixture<PointXYZRGBA>) { drawer.drawPointCloud(id, pointCloud); drawer.drawPointCloud(id, pointCloud.points, DrawColor {0, 0.5, 1, 1}); - - drawer.drawPointCloud(id, pointCloud, + + drawer.drawPointCloud(id, pointCloud, [](const PointXYZRGBA&) { return DrawColor{0, 0.5, 1, 1}; }, pointSize); - + drawer.drawPointCloudRGBA(id, pointCloud, pointSize); } @@ -132,10 +132,10 @@ BOOST_FIXTURE_TEST_CASE(test_drawPointCloud_PointXYZRGBL, Fixture<PointXYZRGBL>) { drawer.drawPointCloud(id, pointCloud); drawer.drawPointCloud(id, pointCloud.points, DrawColor {0, 0.5, 1, 1}); - + drawer.drawPointCloud(id, pointCloud, [](const PointXYZRGBL&) { return DrawColor{0, 0.5, 1, 1}; }, pointSize); - + drawer.drawPointCloudRGBA(id, pointCloud, pointSize); } diff --git a/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.cpp b/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.cpp index 1a75392e0..4859e7c33 100644 --- a/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.cpp +++ b/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.cpp @@ -16,13 +16,16 @@ namespace armarx DebugDrawerTopic::VisuID::VisuID() : VisuID("", "") {} - DebugDrawerTopic::VisuID::VisuID(const std::string& name, const std::string& layer) : - name(name), layer(layer) + DebugDrawerTopic::VisuID::VisuID(const std::string& name) : VisuID("", name) + {} + + DebugDrawerTopic::VisuID::VisuID(const std::string& layer, const std::string& name) : + layer(layer), name(name) {} std::ostream& operator<<(std::ostream& os, const DebugDrawerTopic::VisuID& rhs) { - os << "Visu '" << rhs.name << "' at layer '" << rhs.layer << "'"; + os << "Visu '" << rhs.name << "' on layer '" << rhs.layer << "'"; return os; } diff --git a/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.h b/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.h index d77b49080..4b68eaa89 100644 --- a/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.h +++ b/source/RobotAPI/libraries/core/visualization/DebugDrawerTopic.h @@ -122,7 +122,7 @@ namespace armarx * Eigen::Matrix4f pose = Eigen::Matrix4f::Identity(); * std::string layer = "layer"; * std::string name = "pose"; - * debugDrawer.drawPose({name, layer}, pose); + * debugDrawer.drawPose({layer, name}, pose); * @endcode * * @@ -141,45 +141,49 @@ namespace armarx { public: + + /** + * @brief A visualisation ID. + * + * This constructor can be called in the following ways + * (with `draw(const VisuID& id, ...)` being any drawing method): + * + * @code + * std::string name = "pose"; + * std::string layer = "layer"; + * draw(name, ...); // just the name, implicit call + * draw({name}, ...); // just the name, call with initializer list + * draw({layer, name}, ...); // layer and name, with initializer list + * @endcode + * + * (And of course by an explicit call if you want to be really verbose.) + * Not passing a layer will cause DebugDrawerTopic to use the + * preset layer. + */ struct VisuID { /// Empty constructor. VisuID(); - /** - * @brief Construct a VisuID. - * - * This constructor can be called in the following ways - * (with `draw(const VisuID& id, ...)` being any drawing method): - * - * @code - * std::string name = "pose"; - * std::string layer = "layer"; - * draw(name, ...); // just the name, implicit call - * draw({name}, ...); // just the name, call with initializer list - * draw({name, layer}, ...); // name and layer, with initializer list - * @endcode - * - * (And of course by an explicit call if you want to be really verbose.) - * Not passing a layer will cause DebugDrawerTopic to use the - * preset layer. - * - * @param name the name - * @param layer the layer name - */ - VisuID(const std::string& name, const std::string& layer = ""); + /// Construct a VisuID with given name (for drawing to the preset layer). + VisuID(const std::string& name); + /// Construct a VisuID with given name and layer. + VisuID(const std::string& layer, const std::string& name); /// Construct a VisuID from a non-std::string source (e.g. char[]). template <typename Source> VisuID(const Source& name) : VisuID(std::string(name)) {} - std::string name = ""; ///< The visu name (empty by default). std::string layer = ""; ///< The layer name (empty by default). + std::string name = ""; ///< The visu name (empty by default). + /// Streams a short human-readable description of `rhs` to `os`. friend std::ostream& operator<<(std::ostream& os, const VisuID& rhs); }; + + /// Default values for drawing functions. struct Defaults { DrawColor colorText { 0, 0, 0, 1 }; -- GitLab