]> granicus.if.org Git - graphviz/commitdiff
tests: SvgAnalyzer: GraphvizNode add retrieval of center position
authorMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Wed, 17 Aug 2022 12:55:18 +0000 (14:55 +0200)
committerMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Tue, 23 Aug 2022 06:19:35 +0000 (08:19 +0200)
tests/graphviz_node.cpp
tests/graphviz_node.h
tests/svg_element.cpp
tests/svg_element.h

index a7ca9fd582e5428f61224899190a9e1fd68144b5..ecaa751748e4b8abc2855fbc8723085e154c946c 100644 (file)
@@ -3,6 +3,8 @@
 GraphvizNode::GraphvizNode(SVG::SVGElement &svg_element)
     : m_node_id(svg_element.graphviz_id), m_svg_g_element(svg_element) {}
 
+SVG::SVGPoint GraphvizNode::center() const { return bbox().center(); }
+
 std::string_view GraphvizNode::node_id() const { return m_node_id; }
 
 SVG::SVGRect GraphvizNode::bbox() const { return m_svg_g_element.bbox(); }
index 2bfc8e2ad5f2dea1f8bd6e0f3c9c1136e2a1ad17..74713197bd159afe43d95f853a7ad1522cb12536 100644 (file)
@@ -17,6 +17,8 @@ public:
 
   /// Return the node's bounding box
   SVG::SVGRect bbox() const;
+  /// Return the center of the node's bounding box
+  SVG::SVGPoint center() const;
   /// Return the node's `node_id` as defined by the DOT language
   std::string_view node_id() const;
   /// Return a non-mutable reference to the SVG `g` element corresponding to the
index ac9ea4cde3633e91991fc967aa279629ce94308c..0d150c7ff1f492838edd1c6d45cfc88b80beef16 100644 (file)
@@ -353,6 +353,10 @@ void SVG::SVGRect::extend(const SVGPoint &point) {
   height = ymax - ymin;
 }
 
+SVG::SVGPoint SVG::SVGRect::center() const {
+  return {x + width / 2, y + height / 2};
+}
+
 void SVG::SVGRect::extend(const SVG::SVGRect &other) {
   const auto xmin = std::min(x, other.x);
   const auto ymin = std::min(y, other.y);
index d22b102eed8a1ebe1bd25c5caa86da4842b8d1e9..2837496dcf0083ea6013336bf28d77850dd0113f 100644 (file)
@@ -18,6 +18,7 @@ struct SVGRect {
   double y;
   double width;
   double height;
+  SVGPoint center() const;
   void extend(const SVGPoint &point);
   void extend(const SVGRect &other);
 };