<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>contours.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>contours_8hpp</filename>
    <includes id="donghong__ding__base_8hpp" name="donghong_ding_base.hpp" local="no" imported="no">ram_path_planning/donghong_ding_base.hpp</includes>
    <includes id="contours__imp_8hpp" name="contours_imp.hpp" local="no" imported="no">ram_path_planning/contours_imp.hpp</includes>
    <class kind="class">ram_path_planning::Contours</class>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>contours_imp.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>contours__imp_8hpp</filename>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>donghong_ding.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>donghong__ding_8hpp</filename>
    <includes id="donghong__ding__base_8hpp" name="donghong_ding_base.hpp" local="no" imported="no">ram_path_planning/donghong_ding_base.hpp</includes>
    <includes id="shemaphore_8hpp" name="shemaphore.hpp" local="no" imported="no">ram_path_planning/shemaphore.hpp</includes>
    <includes id="donghong__ding__imp_8hpp" name="donghong_ding_imp.hpp" local="no" imported="no">ram_path_planning/donghong_ding_imp.hpp</includes>
    <class kind="class">ram_path_planning::DonghongDing</class>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>donghong_ding_base.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>donghong__ding__base_8hpp</filename>
    <includes id="path__planning__algorithm_8hpp" name="path_planning_algorithm.hpp" local="no" imported="no">ram_path_planning/path_planning_algorithm.hpp</includes>
    <includes id="donghong__ding__base__imp_8hpp" name="donghong_ding_base_imp.hpp" local="no" imported="no">ram_path_planning/donghong_ding_base_imp.hpp</includes>
    <class kind="class">ram_path_planning::DonghongDingBase</class>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>donghong_ding_base_imp.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>donghong__ding__base__imp_8hpp</filename>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>donghong_ding_imp.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>donghong__ding__imp_8hpp</filename>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>error_observer.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>error__observer_8hpp</filename>
    <class kind="class">ErrorObserver</class>
  </compound>
  <compound kind="file">
    <name>follow_poses.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>follow__poses_8hpp</filename>
    <includes id="path__planning__algorithm_8hpp" name="path_planning_algorithm.hpp" local="no" imported="no">ram_path_planning/path_planning_algorithm.hpp</includes>
    <includes id="follow__poses__imp_8hpp" name="follow_poses_imp.hpp" local="no" imported="no">ram_path_planning/follow_poses_imp.hpp</includes>
    <class kind="class">ram_path_planning::FollowPoses</class>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>follow_poses_imp.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>follow__poses__imp_8hpp</filename>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>mesh_slicer.cpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/src/</path>
    <filename>mesh__slicer_8cpp</filename>
    <includes id="mesh__slicer_8hpp" name="mesh_slicer.hpp" local="no" imported="no">ram_path_planning/mesh_slicer.hpp</includes>
    <namespace>ram_path_planning</namespace>
    <member kind="function">
      <type>std::string</type>
      <name>fileExtension</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a596bcb2a55b3c974cd018f7257055039</anchor>
      <arglist>(const std::string full_path)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>readPolygonFile</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a4a893f4b0660b4e058b8edf98f740a65</anchor>
      <arglist>(const std::string file_name, const vtkSmartPointer&lt; vtkPolyData &gt; poly_data)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>sliceMesh</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>ae68fdd9f0e26d58a282b7d536d59f373</anchor>
      <arglist>(std::vector&lt; Layer &gt; &amp;trajectory, const std::string file_name, const vtkSmartPointer&lt; vtkPolyData &gt; poly_data, vtkSmartPointer&lt; vtkStripper &gt; &amp;stripper, const double height_between_layers, const std::array&lt; double, 3 &gt; slicing_direction, const bool use_gui=false)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>mesh_slicer.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>mesh__slicer_8hpp</filename>
    <includes id="error__observer_8hpp" name="error_observer.hpp" local="no" imported="no">ram_path_planning/error_observer.hpp</includes>
    <includes id="donghong__ding_8hpp" name="donghong_ding.hpp" local="no" imported="no">ram_path_planning/donghong_ding.hpp</includes>
    <namespace>ram_path_planning</namespace>
    <member kind="typedef">
      <type>std::vector&lt; PolygonVector &gt;</type>
      <name>Layer</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a02b83dbb7328ba8d6b5dc6636e4238cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>addb1af81552aa80015dca5c5eb7ffebc</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Polygon &gt;</type>
      <name>PolygonVector</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a39393941b1c1debaf06aa52c0cecd78b</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>readPolygonFile</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a4a893f4b0660b4e058b8edf98f740a65</anchor>
      <arglist>(const std::string file_name, const vtkSmartPointer&lt; vtkPolyData &gt; poly_data)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>sliceMesh</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>ae68fdd9f0e26d58a282b7d536d59f373</anchor>
      <arglist>(std::vector&lt; Layer &gt; &amp;trajectory, const std::string file_name, const vtkSmartPointer&lt; vtkPolyData &gt; poly_data, vtkSmartPointer&lt; vtkStripper &gt; &amp;stripper, const double height_between_layers, const std::array&lt; double, 3 &gt; slicing_direction, const bool use_gui=false)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>path_planning.cpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/src/</path>
    <filename>path__planning_8cpp</filename>
    <includes id="contours_8hpp" name="contours.hpp" local="no" imported="no">ram_path_planning/contours.hpp</includes>
    <includes id="donghong__ding_8hpp" name="donghong_ding.hpp" local="no" imported="no">ram_path_planning/donghong_ding.hpp</includes>
    <includes id="mesh__slicer_8hpp" name="mesh_slicer.hpp" local="no" imported="no">ram_path_planning/mesh_slicer.hpp</includes>
    <includes id="vtkRenderUpdaterTimer_8hpp" name="vtkRenderUpdaterTimer.hpp" local="no" imported="no">ram_path_planning/vtkRenderUpdaterTimer.hpp</includes>
    <includes id="follow__poses_8hpp" name="follow_poses.hpp" local="no" imported="no">ram_path_planning/follow_poses.hpp</includes>
    <member kind="typedef">
      <type>std::vector&lt; PolygonVector &gt;</type>
      <name>Layer</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>a2725f91e333a3b208b25c707ba8f9c30</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>aeb405b56f4c8b88a59cbf076158313ee</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Polygon &gt;</type>
      <name>PolygonVector</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>af7419aa49a76adb71da3b9a0ef0e9d8f</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>contoursAlgorithmCancelCb</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>a0943a24f74c9a98f93f24eb81c8cb65c</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ram_path_planning::ContoursAction &gt; gh)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>contoursAlgorithmGoalCb</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>aab119ef66ee2c5e9dd1bba6d55244529</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ram_path_planning::ContoursAction &gt; gh)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>donghongDingAlgorithmCancelCb</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>ae3c0fdf8e412ef93ad2b7a2f67a1a618</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ram_path_planning::DonghongDingAction &gt; gh)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>donghongDingAlgorithmGoalCb</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>a84550e1a3f80df37b2a7dcdf55154b17</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ram_path_planning::DonghongDingAction &gt; gh)</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>fileExtension</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>ac80c36e01bc7e79e801521176b3f7df1</anchor>
      <arglist>(const std::string full_path)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>FollowPosesAlgorithmCancelCb</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>aa935f033acc892a9c26e50c0d80e8c75</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ram_path_planning::FollowPosesAction &gt; gh)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>FollowPosesAlgorithmGoalCb</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>ad363001a9918382a7584cd1eac6c85d0</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ram_path_planning::FollowPosesAction &gt; gh)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="variable">
      <type>vtkSmartPointer&lt; vtkRendererUpdaterTimer &gt;</type>
      <name>cb</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>a0af56ffbf8ac6c8f50797cf0ebfda922</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ram_path_planning::Contours&lt; ram_path_planning::ContoursAction &gt;</type>
      <name>contour_generator</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>a885637faef40a4b98931839943c3886f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ram_path_planning::DonghongDing&lt; ram_path_planning::DonghongDingAction &gt;</type>
      <name>donghongding_generator</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>ae856deb7e2eed57397997bed2bba59d8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ram_path_planning::FollowPoses&lt; ram_path_planning::FollowPosesAction &gt;</type>
      <name>follow_poses_generator</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>aa118c2bfce991ef9da9bb6fdc55c125e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::unique_ptr&lt; ros::Publisher &gt;</type>
      <name>traj_pub</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>ab4e169bf8cd952b50a07c2220a1f21c7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>use_gui</name>
      <anchorfile>path__planning_8cpp.html</anchorfile>
      <anchor>a8769b8663f8fb1a238da9f79b56411dc</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>path_planning_algorithm.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>path__planning__algorithm_8hpp</filename>
    <includes id="path__planning__algorithm__imp_8hpp" name="path_planning_algorithm_imp.hpp" local="no" imported="no">ram_path_planning/path_planning_algorithm_imp.hpp</includes>
    <class kind="class">ram_path_planning::PathPlanningAlgorithm</class>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>path_planning_algorithm_imp.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>path__planning__algorithm__imp_8hpp</filename>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>services_clients.cpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/test/</path>
    <filename>services__clients_8cpp</filename>
    <includes id="contours_8hpp" name="contours.hpp" local="no" imported="no">ram_path_planning/contours.hpp</includes>
    <includes id="donghong__ding_8hpp" name="donghong_ding.hpp" local="no" imported="no">ram_path_planning/donghong_ding.hpp</includes>
    <member kind="typedef">
      <type>actionlib::SimpleActionClient&lt; ram_path_planning::ContoursAction &gt;</type>
      <name>ContoursActionClient</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a9a297f4ed1d99a07bf68f566ee54e79c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>actionlib::SimpleActionClient&lt; ram_path_planning::DonghongDingAction &gt;</type>
      <name>DonghongDingActionClient</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a42b4f1bf905106f756a21e3a5a3cac02</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a5ca00130a650a52dddd8b87cc2f6950f</anchor>
      <arglist>(TestSuite, testSrvExistence)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>ab7271e807fd90e2587fa7a36a113dc25</anchor>
      <arglist>(TestSuite, testPolygonWithinternalContoursDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a99f03797e20fdffceb399a0048d05979</anchor>
      <arglist>(TestSuite, testIntersectedPolygonsDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>acb2d80a6914d0e8191813b71d22f3506</anchor>
      <arglist>(TestSuite, testConvexPolygonDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a31e60973ca7962183824f0fc89b5f3ae</anchor>
      <arglist>(TestSuite, testConcavePolygonBigDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>ab4b64893d3cbfb6845f270e12a45b438</anchor>
      <arglist>(TestSuite, testConcavePolygonSmallDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a1dc182345e8dd5f1a9357d45a5812d00</anchor>
      <arglist>(TestSuite, testStarDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>ab3a7e9b0d6d6e2836ae17320b793231d</anchor>
      <arglist>(TestSuite, testSTLFileTwistedPyramidDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>aed14b5eb18a74c4a820805c10bd434bf</anchor>
      <arglist>(TestSuite, testPLYFileTwistedPyramidDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a6276ce00ec8781a1e7fa7e104b24b47f</anchor>
      <arglist>(TestSuite, testOBJFileTwistedPyramidDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a7ef4723b1fafc7e38ca1c5a9cd7e67f5</anchor>
      <arglist>(TestSuite, testPLYFileTwoTwistedPyramidsDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a111e3dc1f7d89783adf08c870dd659c3</anchor>
      <arglist>(TestSuite, testConeTruncatedDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>ae4131fc56796245f35dda0955ea68c26</anchor>
      <arglist>(TestSuite, testDomeDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>ab907af13b4159196432e2b0ce5494061</anchor>
      <arglist>(TestSuite, testInversedPyramidDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>aaa7401d54650ad10cccd802587eddb97</anchor>
      <arglist>(TestSuite, testSTLCubeNonZSlicingDongHongDing)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a8d1a612e92d204c639775870e96cf43b</anchor>
      <arglist>(TestSuite, testPolygonWithinternalContours)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>ac2e04436bebf320173ed1d467c2831a9</anchor>
      <arglist>(TestSuite, testIntersectedPolygonsContours)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>af581ef923d69583fd5ebd58007e4f8e6</anchor>
      <arglist>(TestSuite, testConvexPolygonContours)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>ad5d9adf6260102f6bcbb4acd965a6746</anchor>
      <arglist>(TestSuite, testStarContours)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a229b9bc20e6a3a8900bdfe7b7384a63c</anchor>
      <arglist>(TestSuite, testSTLFileTwistedPyramidContours)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a6c50d50d2102c116e088b7c66b6131f0</anchor>
      <arglist>(TestSuite, testPLYFileTwoTwistedPyramidsContours)</arglist>
    </member>
    <member kind="variable">
      <type>std::unique_ptr&lt; ContoursActionClient &gt;</type>
      <name>contours_ac</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a961078e597327bdf59ef7ead53796ede</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::unique_ptr&lt; DonghongDingActionClient &gt;</type>
      <name>donghong_ding_ac</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a4448c25766937cdc31f0a4884f494da2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::unique_ptr&lt; ros::NodeHandle &gt;</type>
      <name>nh</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>afbb7c6b17cf5b1463c6d18f09e6eb70e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>use_gui</name>
      <anchorfile>services__clients_8cpp.html</anchorfile>
      <anchor>a8769b8663f8fb1a238da9f79b56411dc</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>shemaphore.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>shemaphore_8hpp</filename>
    <class kind="class">ram_path_planning::Semaphore</class>
    <namespace>ram_path_planning</namespace>
  </compound>
  <compound kind="file">
    <name>vtkRenderUpdaterTimer.hpp</name>
    <path>/tmp/ws/src/ros_additive_manufacturing/ram_path_planning/include/ram_path_planning/</path>
    <filename>vtkRenderUpdaterTimer_8hpp</filename>
    <includes id="contours_8hpp" name="contours.hpp" local="no" imported="no">ram_path_planning/contours.hpp</includes>
    <includes id="donghong__ding_8hpp" name="donghong_ding.hpp" local="no" imported="no">ram_path_planning/donghong_ding.hpp</includes>
    <class kind="class">vtkRendererUpdaterTimer</class>
    <member kind="typedef">
      <type>std::vector&lt; PolygonVector &gt;</type>
      <name>Layer</name>
      <anchorfile>vtkRenderUpdaterTimer_8hpp.html</anchorfile>
      <anchor>a2725f91e333a3b208b25c707ba8f9c30</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>vtkRenderUpdaterTimer_8hpp.html</anchorfile>
      <anchor>aeb405b56f4c8b88a59cbf076158313ee</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Polygon &gt;</type>
      <name>PolygonVector</name>
      <anchorfile>vtkRenderUpdaterTimer_8hpp.html</anchorfile>
      <anchor>af7419aa49a76adb71da3b9a0ef0e9d8f</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ram_path_planning::Contours</name>
    <filename>classram__path__planning_1_1Contours.html</filename>
    <templarg>ActionSpec</templarg>
    <base>ram_path_planning::DonghongDingBase</base>
    <member kind="typedef">
      <type>std::vector&lt; PolygonVector &gt;</type>
      <name>Layer</name>
      <anchorfile>classram__path__planning_1_1Contours.html</anchorfile>
      <anchor>ae93ee3b2efb22db6f1a3eff66449fdbd</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>classram__path__planning_1_1Contours.html</anchorfile>
      <anchor>a6356cc9b5d2505232ea228d7999c0034</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Polygon &gt;</type>
      <name>PolygonVector</name>
      <anchorfile>classram__path__planning_1_1Contours.html</anchorfile>
      <anchor>a83e51ce1a0e24461819c92f94bb48308</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Contours</name>
      <anchorfile>classram__path__planning_1_1Contours.html</anchorfile>
      <anchor>a535cbb93fbb6ef0cf2e4519110ad9c4a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>generateOneLayerTrajectory</name>
      <anchorfile>classram__path__planning_1_1Contours.html</anchorfile>
      <anchor>a61ac6aa25d53f01b063da185efd08b36</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh, const Polygon poly_data, Layer &amp;layer, const double deposited_material_width, const std::array&lt; double, 3 &gt; normal_vector={0, 0, 1}, const bool use_gui=false)</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>generateOneLayerTrajectory</name>
      <anchorfile>classram__path__planning_1_1Contours.html</anchorfile>
      <anchor>a32e2df6645fca30b41bb574fbce30de7</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh, const std::string yaml_file, Layer &amp;layer, const double deposited_material_width, const bool use_gui=false)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ram_path_planning::DonghongDing</name>
    <filename>classram__path__planning_1_1DonghongDing.html</filename>
    <templarg>ActionSpec</templarg>
    <base>ram_path_planning::DonghongDingBase</base>
    <member kind="typedef">
      <type>std::vector&lt; PolygonVector &gt;</type>
      <name>Layer</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>ac4a1f42b0b987c8b5ef9263195c37d99</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a812bc1036b8e1bb1acb9385b91b392b1</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Polygon &gt;</type>
      <name>PolygonVector</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a92995bab34395d407b9c878ff83ae6a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>DonghongDing</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>afe7d595b95fe1d34f92a8cbd6ecdd2ff</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>generateOneLayerTrajectory</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a4b00adf5410c48bbd02f27a0258778af</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh, const int current_progrress_value, const int next_progress_value, const Polygon poly_data, Layer &amp;layer, const double deposited_material_width, const double contours_filtering_tolerance, const std::array&lt; double, 3 &gt; normal_vector={0, 0, 1}, const double polygon_division_tolerance=M_PI/6, const bool closest_to_bisector=false, const bool use_gui=false)</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>generateOneLayerTrajectory</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a4bf144feff2088e8e6dc89fd70148d7e</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh, const int current_progrress_value, const int next_progress_value, const std::string yaml_file, Layer &amp;layer, const double deposited_material_width, const double contours_filtering_tolerance, const double polygon_division_tolerance=M_PI/6, const bool closest_to_bisector=false, const bool use_gui=false)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>divideInConvexPolygons</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a00771fe148090bd1a1c0ca7613d578d7</anchor>
      <arglist>(PolygonVector &amp;polygon_source, const int polygon_position, const vtkSmartPointer&lt; vtkPoints &gt; split_points)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>findIntersectWithBisector</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a3865f2dc1200386d8ff942932b2f316b</anchor>
      <arglist>(const Polygon poly_data, const vtkIdType notch_cell_id, const vtkIdType notch_pos, vtkIdType &amp;vertex_cell_id, vtkIdType &amp;vertex_pos, double vertex[3])</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>findNotch</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>ab6d9e2fff00ba945756f3a71e3c229fa</anchor>
      <arglist>(const Polygon poly_data, vtkIdType &amp;cell_id, vtkIdType &amp;pos, double &amp;angle)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>findVertex</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>aa2ba0f9a1933e9d9105a5579211d7400</anchor>
      <arglist>(const Polygon poly_data, const vtkIdType notch_cell_id, const vtkIdType notch_pos, vtkIdType &amp;vertex_cell_id, vtkIdType &amp;vertex_pos, const double notch_angle)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>generateTrajectoryInConvexPolygon</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a387e67d18e578d595892de98fdf901e0</anchor>
      <arglist>(const Polygon poly_data)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>identifyLeftChain</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>abbf055611f1fd1d3090c52c06f162da3</anchor>
      <arglist>(const Polygon poly_data, const vtkIdType edge_id, const vtkIdType opposite_point_id, const vtkSmartPointer&lt; vtkPoints &gt; left_chain, const vtkSmartPointer&lt; vtkPoints &gt; right_chain)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>double</type>
      <name>identifyZigzagDirection</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>ada85b7c4123e75f46e951515a9c34853</anchor>
      <arglist>(const Polygon poly_data, vtkIdType &amp;edge, vtkIdType &amp;futhest_point)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>intersectLineWithContours</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>aa0d6500cd1a7f39ebc768da38f16ccbe</anchor>
      <arglist>(const Polygon poly_data, double point_1[3], double point_2[3])</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>mergeConvexPolygons</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a21fec4da9e98a23151cfa43e7bba68b6</anchor>
      <arglist>(PolygonVector &amp;polygon_source, const vtkSmartPointer&lt; vtkPoints &gt; split_points, const vtkIdType split_line)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>mergeListOfPoints</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a5918cc1ed13c7d39b057b1d30d37f8e9</anchor>
      <arglist>(const Polygon poly_data, const vtkSmartPointer&lt; vtkPoints &gt; left_chain, const vtkSmartPointer&lt; vtkPoints &gt; right_chain, const vtkSmartPointer&lt; vtkPoints &gt; zigzag_points)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>offsetLeftChain</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a838882e6ac5a1e4eff679309721d4d79</anchor>
      <arglist>(const Polygon poly_data, const vtkIdType edge_id, const vtkIdType opposite_point_id, const vtkSmartPointer&lt; vtkPoints &gt; left_chain, const vtkSmartPointer&lt; vtkPoints &gt; right_chain)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>verifyAngles</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>aeb139eed29e3b6c75311a58894152331</anchor>
      <arglist>(const Polygon poly_data, const vtkIdType notch_cell_id, const vtkIdType notch_pos, const vtkIdType vertex_cell_id, const vtkIdType vertex_pos)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>zigzagGeneration</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a3401ab3ddf3aac92fd7f772fd065ccc0</anchor>
      <arglist>(const Polygon poly_data, const vtkIdType edge_id, const vtkIdType opposite_point_id, const vtkSmartPointer&lt; vtkPoints &gt; zigzag_points, const double deposited_material_width)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>closest_to_bisector_</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>aef6263c456be76a3f51f451e75b3b028</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>contours_filtering_tolerance_</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a8f484f39f8b43271946468515c7c9a3c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>polygon_division_tolerance_</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>a09aad7bfe7961e2d6ee357af8d0ee4a6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Semaphore</type>
      <name>semaphore_</name>
      <anchorfile>classram__path__planning_1_1DonghongDing.html</anchorfile>
      <anchor>acca95a920387a9a477ed8f033cb1023c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ram_path_planning::DonghongDingBase</name>
    <filename>classram__path__planning_1_1DonghongDingBase.html</filename>
    <templarg></templarg>
    <base>ram_path_planning::PathPlanningAlgorithm</base>
    <member kind="typedef">
      <type>std::vector&lt; PolygonVector &gt;</type>
      <name>Layer</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>ae3267fb60c7684e024adf2b29a42d3cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a8217b315edfb9649980a21b85114dd8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Polygon &gt;</type>
      <name>PolygonVector</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a080863b487f8aa5d23f7fe10b10d2e85</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>connectMeshLayers</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a21481ffb360d9fc88b2f613841393751</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh, const int current_progrress_value, const int next_progress_value, std::vector&lt; Layer &gt; &amp;layers, ram_msgs::AdditiveManufacturingTrajectory &amp;msg)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>connectYamlLayers</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>aa7490cf6ba0ad87a048173240e013c20</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh, const int current_progrress_value, const int next_progress_value, const Layer &amp;current_layer, ram_msgs::AdditiveManufacturingTrajectory &amp;msg, const double number_of_layers, const double height_between_layers, const std::array&lt; double, 3 &gt; offset_direction={0, 0, 1})</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>DonghongDingBase</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a6b8b529a79703ec295134a6fca96dedc</anchor>
      <arglist>(const std::string name, const std::string description, const std::string service_name)</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual</type>
      <name>~DonghongDingBase</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>ab3e4febd288566a3d82b45074b2861d2</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>double</type>
      <name>angleBetweenVectors</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a8185cf6b364a8ae6d632e474847f051e</anchor>
      <arglist>(const double v1[3], const double v2[3])</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>computeNormal</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a1f9c8fc5cd75aee6ed28b9565220b6dc</anchor>
      <arglist>(vtkPoints *p, double *n)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>connectLayersWithOnePolygon</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a6545485fb43fc8dd9227e636c7e7dc7a</anchor>
      <arglist>(actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh, const int current_progrress_value, const int next_progress_value, std::vector&lt; Layer &gt; &amp;layers, ram_msgs::AdditiveManufacturingTrajectory &amp;msg, const unsigned first_layer)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>divideInLayersWithOnePolygon</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>af60a17c15c5484c601b424fd032e18e9</anchor>
      <arglist>(std::vector&lt; Layer &gt; &amp;layers, ram_msgs::AdditiveManufacturingTrajectory &amp;msg, const unsigned first_layer)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>void</type>
      <name>identifyRelationships</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a6a54c5ad98473170d61376fb30a25f4c</anchor>
      <arglist>(const Polygon poly_data, std::vector&lt; int &gt; &amp;level, std::vector&lt; int &gt; &amp;father)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>intersectionBetweenContours</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a382d303ba8f5a59ddff0578a4dbdc090</anchor>
      <arglist>(const Polygon poly_data)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>mergeColinearEdges</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a6bbe2229639fd61d340c16075fddd5f5</anchor>
      <arglist>(const Polygon poly_data, const double tolerance=1e-6)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>offsetPolygonContour</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a6f5b87f115384e475aa573dacc27a3d1</anchor>
      <arglist>(const Polygon poly_data, const double deposited_material_width)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>organizePolygonContoursInLayer</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>ac17ca4ceba41dfe6e726a25955f80bcf</anchor>
      <arglist>(const Polygon poly_data, const std::vector&lt; int &gt; level, const std::vector&lt; int &gt; father, Layer &amp;layer)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>bool</type>
      <name>removeDuplicatePoints</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a45798043377c1001901404e7763f9989</anchor>
      <arglist>(const Polygon poly_data, const double tolerance=1e-6)</arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>const double</type>
      <name>calculation_tol_</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>a238d73359646ef29a0957cc4d5e4cbb4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>deposited_material_width_</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>ad51986ed475d8108de57350571f8a458</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="protected">
      <type>double</type>
      <name>normal_vector_</name>
      <anchorfile>classram__path__planning_1_1DonghongDingBase.html</anchorfile>
      <anchor>aee54351af8ea7881c2b8816a174a3c44</anchor>
      <arglist>[3]</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ErrorObserver</name>
    <filename>classErrorObserver.html</filename>
    <member kind="function">
      <type>void</type>
      <name>Clear</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a368511a8ecda76d9681739ddc5588a5d</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>ErrorObserver</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a0985e9476d4f3c047666998a99685888</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>Execute</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>af2bebb0e4aa18f6b1c260ef7aa9ee55d</anchor>
      <arglist>(vtkObject *vtkNotUsed(caller), unsigned long event, void *calldata)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>GetError</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a9e8da079cec071e384ddaa6e97af84c9</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>GetErrorMessage</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>aef77b101d1c95fef1411e54dbade507c</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>GetWarning</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a91d1cf38346f8973d3cd915d8f8946ae</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>GetWarningMessage</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a9bd1a55f0de0f8f35abb060e13120108</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" static="yes">
      <type>static ErrorObserver *</type>
      <name>New</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a6ff871db01ac3aaf8152e715faf8dd9d</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>Error</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a692b0bbe846acdd60372882e68b38f32</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>ErrorMessage</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a38bd44ccc6ba8ccbcd8a40abb949eb8c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>Warning</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a16e0838d636c2a929a61b0d027784d4d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>WarningMessage</name>
      <anchorfile>classErrorObserver.html</anchorfile>
      <anchor>a523450c78661ad9a638fc8c3a1b7b45d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ram_path_planning::FollowPoses</name>
    <filename>classram__path__planning_1_1FollowPoses.html</filename>
    <templarg>ActionSpec</templarg>
    <base>ram_path_planning::PathPlanningAlgorithm</base>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>classram__path__planning_1_1FollowPoses.html</anchorfile>
      <anchor>a13406e485813bb67ed6a30ce7f2abaf6</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>duplicateLayers</name>
      <anchorfile>classram__path__planning_1_1FollowPoses.html</anchorfile>
      <anchor>a551d15cbbca19a3c7b4cad97f5b60c0f</anchor>
      <arglist>(ram_msgs::AdditiveManufacturingTrajectory &amp;msg, const unsigned number_of_layers, const double height_between_layers, bool invert_one_of_two_layers)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>FollowPoses</name>
      <anchorfile>classram__path__planning_1_1FollowPoses.html</anchorfile>
      <anchor>af84528d537dcb050c0fb644b2aa9797b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>generateTrajectory</name>
      <anchorfile>classram__path__planning_1_1FollowPoses.html</anchorfile>
      <anchor>a1c502f2ab3e7b375eaa3c7718f0e07a4</anchor>
      <arglist>(const Polygon poly_data, ram_msgs::AdditiveManufacturingTrajectory &amp;msg)</arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>generateTrajectory</name>
      <anchorfile>classram__path__planning_1_1FollowPoses.html</anchorfile>
      <anchor>a88a2b063a8c9a3693049d52facb80cc0</anchor>
      <arglist>(const std::string yaml_file, ram_msgs::AdditiveManufacturingTrajectory &amp;msg)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ram_path_planning::PathPlanningAlgorithm</name>
    <filename>classram__path__planning_1_1PathPlanningAlgorithm.html</filename>
    <templarg></templarg>
    <member kind="function">
      <type></type>
      <name>PathPlanningAlgorithm</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>a5523df80c44160ba966b4f1d1e3251c8</anchor>
      <arglist>(const std::string name, const std::string description, const std::string service_name)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>publishPercentageDone</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>abc9da668c09e3cabf162e5e4bbfa35ef</anchor>
      <arglist>(const unsigned percentage, actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>publishStatusDone</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>ad6850bb1d882c91d41469d5876e71bb2</anchor>
      <arglist>(const std::string progress_msg, actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>publishStatusPercentageDone</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>af4043e8b5772011adbad4819c53e47d9</anchor>
      <arglist>(const std::string progress_msg, const unsigned percentage, actionlib::ServerGoalHandle&lt; ActionSpec &gt; &amp;gh)</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual</type>
      <name>~PathPlanningAlgorithm</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>a7dc6665ddf50cdae1082d251e484d303</anchor>
      <arglist>()=0</arglist>
    </member>
    <member kind="variable">
      <type>const std::string</type>
      <name>description_</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>a654885a84fca93dbe81376053b2653d3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const std::string</type>
      <name>name_</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>a22da89495cdf5e6a7690636cac177de3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const std::string</type>
      <name>service_name_</name>
      <anchorfile>classram__path__planning_1_1PathPlanningAlgorithm.html</anchorfile>
      <anchor>a5bf58d51538899c59f0e05aa44dbb84b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ram_path_planning::Semaphore</name>
    <filename>classram__path__planning_1_1Semaphore.html</filename>
    <member kind="function">
      <type></type>
      <name>Semaphore</name>
      <anchorfile>classram__path__planning_1_1Semaphore.html</anchorfile>
      <anchor>a552a47234d24353bb62f4d9d74c8ee2b</anchor>
      <arglist>(unsigned int counter)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>signal</name>
      <anchorfile>classram__path__planning_1_1Semaphore.html</anchorfile>
      <anchor>a114e85733a68ecdaf949bed45f76b6fd</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>wait</name>
      <anchorfile>classram__path__planning_1_1Semaphore.html</anchorfile>
      <anchor>aa202896f54dec2ddf54d8c273f157c40</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::condition_variable</type>
      <name>condition_</name>
      <anchorfile>classram__path__planning_1_1Semaphore.html</anchorfile>
      <anchor>aea0a58271ef939a65c67097155e06650</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>unsigned int</type>
      <name>counter_</name>
      <anchorfile>classram__path__planning_1_1Semaphore.html</anchorfile>
      <anchor>a44a9c57b8edcd717afe15cb00bbd75dd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::mutex</type>
      <name>mutex_</name>
      <anchorfile>classram__path__planning_1_1Semaphore.html</anchorfile>
      <anchor>ac3e4796f3bd9f10f3a7ce6fdc0dc6548</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>vtkRendererUpdaterTimer</name>
    <filename>classvtkRendererUpdaterTimer.html</filename>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>Execute</name>
      <anchorfile>classvtkRendererUpdaterTimer.html</anchorfile>
      <anchor>a493cb903075a75224790695d1e77e872</anchor>
      <arglist>(vtkObject *caller, unsigned long, void *vtkNotUsed(callData))</arglist>
    </member>
    <member kind="function" static="yes">
      <type>static vtkRendererUpdaterTimer *</type>
      <name>New</name>
      <anchorfile>classvtkRendererUpdaterTimer.html</anchorfile>
      <anchor>af83daf5b63137cf96fef819ba7cd58f2</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable">
      <type>Layer</type>
      <name>current_layer_</name>
      <anchorfile>classvtkRendererUpdaterTimer.html</anchorfile>
      <anchor>a4a5d5a6664c79a7ba93c0999d72e71f3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>mesh_</name>
      <anchorfile>classvtkRendererUpdaterTimer.html</anchorfile>
      <anchor>a15978f31db7ae27a91fbd994e5f68100</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>vtkSmartPointer&lt; vtkStripper &gt;</type>
      <name>stripper_</name>
      <anchorfile>classvtkRendererUpdaterTimer.html</anchorfile>
      <anchor>afdcf412e04372324cadbc71dfa4cf0b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>getColorFromIndex</name>
      <anchorfile>classvtkRendererUpdaterTimer.html</anchorfile>
      <anchor>a02d2dd336d5023ca5900a25509b38590</anchor>
      <arglist>(const unsigned i, double rgb[3])</arglist>
    </member>
  </compound>
  <compound kind="namespace">
    <name>ram_path_planning</name>
    <filename>namespaceram__path__planning.html</filename>
    <class kind="class">ram_path_planning::Contours</class>
    <class kind="class">ram_path_planning::DonghongDing</class>
    <class kind="class">ram_path_planning::DonghongDingBase</class>
    <class kind="class">ram_path_planning::FollowPoses</class>
    <class kind="class">ram_path_planning::PathPlanningAlgorithm</class>
    <class kind="class">ram_path_planning::Semaphore</class>
    <member kind="typedef">
      <type>std::vector&lt; PolygonVector &gt;</type>
      <name>Layer</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a02b83dbb7328ba8d6b5dc6636e4238cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>vtkSmartPointer&lt; vtkPolyData &gt;</type>
      <name>Polygon</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>addb1af81552aa80015dca5c5eb7ffebc</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>std::vector&lt; Polygon &gt;</type>
      <name>PolygonVector</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a39393941b1c1debaf06aa52c0cecd78b</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>std::string</type>
      <name>fileExtension</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a596bcb2a55b3c974cd018f7257055039</anchor>
      <arglist>(const std::string full_path)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>readPolygonFile</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>a4a893f4b0660b4e058b8edf98f740a65</anchor>
      <arglist>(const std::string file_name, const vtkSmartPointer&lt; vtkPolyData &gt; poly_data)</arglist>
    </member>
    <member kind="function">
      <type>unsigned</type>
      <name>sliceMesh</name>
      <anchorfile>namespaceram__path__planning.html</anchorfile>
      <anchor>ae68fdd9f0e26d58a282b7d536d59f373</anchor>
      <arglist>(std::vector&lt; Layer &gt; &amp;trajectory, const std::string file_name, const vtkSmartPointer&lt; vtkPolyData &gt; poly_data, vtkSmartPointer&lt; vtkStripper &gt; &amp;stripper, const double height_between_layers, const std::array&lt; double, 3 &gt; slicing_direction, const bool use_gui=false)</arglist>
    </member>
  </compound>
</tagfile>
