<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile>
  <compound kind="file">
    <name>area_occupancy_estimator.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/maps/</path>
    <filename>area__occupancy__estimator_8h</filename>
    <includes id="cell__occupancy__estimator_8h" name="cell_occupancy_estimator.h" local="yes" imported="no">cell_occupancy_estimator.h</includes>
    <class kind="class">AreaOccupancyEstimator</class>
    <class kind="struct">AreaOccupancyEstimator::Intersection</class>
    <class kind="struct">AreaOccupancyEstimator::Ray</class>
  </compound>
  <compound kind="file">
    <name>AutoExpandble_map_utest.cpp</name>
    <path>/tmp/ws/src/tiny_slam/test/AutoExpandbleMap/</path>
    <filename>AutoExpandble__map__utest_8cpp</filename>
    <includes id="Map__test_8h" name="Map_test.h" local="yes" imported="no">Map_test.h</includes>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a0ddf1224851353fc92bfbff6f499fa97</anchor>
      <arglist>(int argc, char *argv[])</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a1588914e14c71e8e9cd64666c2142232</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Right)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>ad189f85b165a9bed4744a1705e210030</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Top)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>aecd7c695ef5dcd93d9394bdfba2d8d2f</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Left)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a3f335b80576f994fe650cda61687b5ea</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Down)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>afec4f774a4b5714788993f15b8f1eb60</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Right_Top)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a23435b890c2f96e0c17aca729c53476d</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Right_Down)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>aa42c00a36635ce52f975699208ba439e</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Left_Top)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a6e0ed1cc9fc59399fcb70a4600e04ca2</anchor>
      <arglist>(AutoExpandbleMapBaseTests, Expand_Left_Down)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a88bf6052522879fac938c538ace93e4d</anchor>
      <arglist>(AutoExpandbleMapBaseTests, NoExpand)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TEST</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a07b90bbe8c063354041df927c9eb15e0</anchor>
      <arglist>(AutoExpandbleMapBaseTests, CheckCellsValue)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>test_expansion_by_cell_update</name>
      <anchorfile>AutoExpandble__map__utest_8cpp.html</anchorfile>
      <anchor>a36abbca27ac250007057aef5ab851f5f</anchor>
      <arglist>(const DiscretePoint2D &amp;Cell_coor, MapParams expected_param)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>cell_occupancy_estimator.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/maps/</path>
    <filename>cell__occupancy__estimator_8h</filename>
    <includes id="geometry__utils_8h" name="geometry_utils.h" local="yes" imported="no">../geometry_utils.h</includes>
    <class kind="struct">Beam</class>
    <class kind="class">CellOccupancyEstimator</class>
    <class kind="struct">Occupancy</class>
  </compound>
  <compound kind="file">
    <name>const_occupancy_estimator.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/maps/</path>
    <filename>const__occupancy__estimator_8h</filename>
    <includes id="cell__occupancy__estimator_8h" name="cell_occupancy_estimator.h" local="yes" imported="no">cell_occupancy_estimator.h</includes>
    <class kind="class">ConstOccupancyEstimator</class>
  </compound>
  <compound kind="file">
    <name>geometry_utils.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/</path>
    <filename>geometry__utils_8h</filename>
    <class kind="class">DiscreteLine2D</class>
    <class kind="struct">DiscretePoint2D</class>
    <class kind="struct">Rectangle</class>
    <member kind="define">
      <type>#define</type>
      <name>EQ_DOUBLE</name>
      <anchorfile>geometry__utils_8h.html</anchorfile>
      <anchor>aff0004fe808aff0c58baf2c4293292cb</anchor>
      <arglist>(a, b)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>grid_cell_factory.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/maps/</path>
    <filename>grid__cell__factory_8h</filename>
    <includes id="cell__occupancy__estimator_8h" name="cell_occupancy_estimator.h" local="yes" imported="no">cell_occupancy_estimator.h</includes>
    <class kind="class">GridCell</class>
    <class kind="class">GridCellFactory</class>
  </compound>
  <compound kind="file">
    <name>grid_cell_strategy.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/maps/</path>
    <filename>grid__cell__strategy_8h</filename>
    <includes id="grid__cell__factory_8h" name="grid_cell_factory.h" local="yes" imported="no">grid_cell_factory.h</includes>
    <includes id="grid__scan__matcher_8h" name="grid_scan_matcher.h" local="yes" imported="no">../grid_scan_matcher.h</includes>
    <includes id="cell__occupancy__estimator_8h" name="cell_occupancy_estimator.h" local="yes" imported="no">cell_occupancy_estimator.h</includes>
    <class kind="class">GridCellStrategy</class>
  </compound>
  <compound kind="file">
    <name>grid_map.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/maps/</path>
    <filename>grid__map_8h</filename>
    <includes id="cell__occupancy__estimator_8h" name="cell_occupancy_estimator.h" local="yes" imported="no">cell_occupancy_estimator.h</includes>
    <includes id="grid__cell__factory_8h" name="grid_cell_factory.h" local="yes" imported="no">grid_cell_factory.h</includes>
    <includes id="geometry__utils_8h" name="geometry_utils.h" local="yes" imported="no">../geometry_utils.h</includes>
    <class kind="class">GridMap</class>
    <class kind="struct">GridMapParams</class>
    <member kind="define">
      <type>#define</type>
      <name>COL_IND</name>
      <anchorfile>grid__map_8h.html</anchorfile>
      <anchor>a6fa6cfbab2667886e456f04888ab0c77</anchor>
      <arglist>(cell_coord)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>METERS_TO_CELLS</name>
      <anchorfile>grid__map_8h.html</anchorfile>
      <anchor>aa19d9e9f1b4a9a2c1de783b89836aae1</anchor>
      <arglist>(var)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>RESIZE_DIR</name>
      <anchorfile>grid__map_8h.html</anchorfile>
      <anchor>a26e0b2e288e9f907cb36b5318aadefda</anchor>
      <arglist>(DIM, DIR)</arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>ROW_IND</name>
      <anchorfile>grid__map_8h.html</anchorfile>
      <anchor>a457e8c7e77e7fe0e9152b190c7533852</anchor>
      <arglist>(cell_coord)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>grid_scan_matcher.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/</path>
    <filename>grid__scan__matcher_8h</filename>
    <includes id="state__data_8h" name="state_data.h" local="yes" imported="no">state_data.h</includes>
    <includes id="sensor__data_8h" name="sensor_data.h" local="yes" imported="no">sensor_data.h</includes>
    <class kind="class">GridScanMatcher</class>
    <class kind="class">GridScanMatcherObserver</class>
    <class kind="class">ScanCostEstimator</class>
  </compound>
  <compound kind="file">
    <name>laser_scan_grid_world.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/</path>
    <filename>laser__scan__grid__world_8h</filename>
    <includes id="sensor__data_8h" name="sensor_data.h" local="yes" imported="no">sensor_data.h</includes>
    <includes id="state__data_8h" name="state_data.h" local="yes" imported="no">state_data.h</includes>
    <includes id="grid__cell__strategy_8h" name="grid_cell_strategy.h" local="yes" imported="no">maps/grid_cell_strategy.h</includes>
    <includes id="grid__map_8h" name="grid_map.h" local="yes" imported="no">maps/grid_map.h</includes>
    <class kind="class">LaserScanGridWorld</class>
  </compound>
  <compound kind="file">
    <name>laser_scan_observer.h</name>
    <path>/tmp/ws/src/tiny_slam/src/ros/</path>
    <filename>laser__scan__observer_8h</filename>
    <includes id="sensor__data_8h" name="sensor_data.h" local="yes" imported="no">../core/sensor_data.h</includes>
    <includes id="topic__with__transform_8h" name="topic_with_transform.h" local="yes" imported="no">topic_with_transform.h</includes>
    <class kind="class">LaserScanObserver</class>
  </compound>
  <compound kind="file">
    <name>Map_test.h</name>
    <path>/tmp/ws/src/tiny_slam/test/AutoExpandbleMap/</path>
    <filename>Map__test_8h</filename>
    <includes id="grid__map_8h" name="grid_map.h" local="yes" imported="no">../../src/core/maps/grid_map.h</includes>
    <includes id="tiny__grid__cells_8h" name="tiny_grid_cells.h" local="yes" imported="no">../../src/tiny_slam/tiny_grid_cells.h</includes>
    <class kind="class">MapParams</class>
    <member kind="function">
      <type>bool</type>
      <name>operator==</name>
      <anchorfile>Map__test_8h.html</anchorfile>
      <anchor>a5be7d6a1003b05b20610d0497a9a5878</anchor>
      <arglist>(const MapParams &amp;left, const MapParams &amp;right)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>test_CellValueNotChange</name>
      <anchorfile>Map__test_8h.html</anchorfile>
      <anchor>a25ac2d4bf4d99317cfde983863abbbd5</anchor>
      <arglist>(GridMap map)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>monte_carlo_scan_matcher.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/</path>
    <filename>monte__carlo__scan__matcher_8h</filename>
    <includes id="state__data_8h" name="state_data.h" local="yes" imported="no">state_data.h</includes>
    <includes id="sensor__data_8h" name="sensor_data.h" local="yes" imported="no">sensor_data.h</includes>
    <includes id="grid__scan__matcher_8h" name="grid_scan_matcher.h" local="yes" imported="no">grid_scan_matcher.h</includes>
    <class kind="class">MonteCarloScanMatcher</class>
  </compound>
  <compound kind="file">
    <name>rviz_grid_viewer.h</name>
    <path>/tmp/ws/src/tiny_slam/src/ros/</path>
    <filename>rviz__grid__viewer_8h</filename>
    <includes id="state__data_8h" name="state_data.h" local="yes" imported="no">../core/state_data.h</includes>
    <includes id="grid__map_8h" name="grid_map.h" local="yes" imported="no">../core/maps/grid_map.h</includes>
    <class kind="class">RvizGridViewer</class>
  </compound>
  <compound kind="file">
    <name>sensor_data.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/</path>
    <filename>sensor__data_8h</filename>
    <class kind="struct">ScanPoint</class>
    <class kind="struct">TransformedLaserScan</class>
  </compound>
  <compound kind="file">
    <name>state_data.h</name>
    <path>/tmp/ws/src/tiny_slam/src/core/</path>
    <filename>state__data_8h</filename>
    <includes id="grid__map_8h" name="grid_map.h" local="yes" imported="no">maps/grid_map.h</includes>
    <class kind="class">RobotState</class>
    <class kind="class">World</class>
  </compound>
  <compound kind="file">
    <name>tiny_fascade.h</name>
    <path>/tmp/ws/src/tiny_slam/src/tiny_slam/</path>
    <filename>tiny__fascade_8h</filename>
    <includes id="laser__scan__observer_8h" name="laser_scan_observer.h" local="yes" imported="no">../ros/laser_scan_observer.h</includes>
    <includes id="rviz__grid__viewer_8h" name="rviz_grid_viewer.h" local="yes" imported="no">../ros/rviz_grid_viewer.h</includes>
    <includes id="grid__cell__strategy_8h" name="grid_cell_strategy.h" local="yes" imported="no">../core/maps/grid_cell_strategy.h</includes>
    <includes id="tiny__world_8h" name="tiny_world.h" local="yes" imported="no">tiny_world.h</includes>
    <class kind="class">TinySlamFascade</class>
  </compound>
  <compound kind="file">
    <name>tiny_grid_cells.h</name>
    <path>/tmp/ws/src/tiny_slam/src/tiny_slam/</path>
    <filename>tiny__grid__cells_8h</filename>
    <includes id="grid__map_8h" name="grid_map.h" local="yes" imported="no">../core/maps/grid_map.h</includes>
    <class kind="class">AvgTinyCell</class>
    <class kind="class">BaseTinyCell</class>
    <class kind="class">TinyAvgCellFactory</class>
    <class kind="class">TinyBaseCellFactory</class>
  </compound>
  <compound kind="file">
    <name>tiny_scan_cost_estimator.h</name>
    <path>/tmp/ws/src/tiny_slam/src/tiny_slam/</path>
    <filename>tiny__scan__cost__estimator_8h</filename>
    <includes id="grid__scan__matcher_8h" name="grid_scan_matcher.h" local="yes" imported="no">../core/grid_scan_matcher.h</includes>
    <class kind="class">TinyScanCostEstimator</class>
  </compound>
  <compound kind="file">
    <name>tiny_scan_matcher.h</name>
    <path>/tmp/ws/src/tiny_slam/src/tiny_slam/</path>
    <filename>tiny__scan__matcher_8h</filename>
    <includes id="monte__carlo__scan__matcher_8h" name="monte_carlo_scan_matcher.h" local="yes" imported="no">../core/monte_carlo_scan_matcher.h</includes>
    <includes id="tiny__scan__cost__estimator_8h" name="tiny_scan_cost_estimator.h" local="yes" imported="no">tiny_scan_cost_estimator.h</includes>
    <class kind="class">TinyScanMatcher</class>
  </compound>
  <compound kind="file">
    <name>tiny_slam.cpp</name>
    <path>/tmp/ws/src/tiny_slam/src/tiny_slam/</path>
    <filename>tiny__slam_8cpp</filename>
    <includes id="sensor__data_8h" name="sensor_data.h" local="yes" imported="no">../core/sensor_data.h</includes>
    <includes id="topic__with__transform_8h" name="topic_with_transform.h" local="yes" imported="no">../ros/topic_with_transform.h</includes>
    <includes id="rviz__grid__viewer_8h" name="rviz_grid_viewer.h" local="yes" imported="no">../ros/rviz_grid_viewer.h</includes>
    <includes id="utils_8h" name="utils.h" local="yes" imported="no">../ros/utils.h</includes>
    <includes id="area__occupancy__estimator_8h" name="area_occupancy_estimator.h" local="yes" imported="no">../core/maps/area_occupancy_estimator.h</includes>
    <includes id="const__occupancy__estimator_8h" name="const_occupancy_estimator.h" local="yes" imported="no">../core/maps/const_occupancy_estimator.h</includes>
    <includes id="grid__cell__strategy_8h" name="grid_cell_strategy.h" local="yes" imported="no">../core/maps/grid_cell_strategy.h</includes>
    <includes id="tiny__fascade_8h" name="tiny_fascade.h" local="yes" imported="no">tiny_fascade.h</includes>
    <includes id="tiny__world_8h" name="tiny_world.h" local="yes" imported="no">tiny_world.h</includes>
    <includes id="tiny__grid__cells_8h" name="tiny_grid_cells.h" local="yes" imported="no">tiny_grid_cells.h</includes>
    <class kind="class">PoseScanMatcherObserver</class>
    <member kind="function">
      <type>std::shared_ptr&lt; GridCellFactory &gt;</type>
      <name>init_cell_factory</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>a06ca14aee0c49c2c12d4b5ce2aa5b136</anchor>
      <arglist>(TinyWorldParams &amp;params)</arglist>
    </member>
    <member kind="function">
      <type>TinyWorldParams</type>
      <name>init_common_world_params</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>a560eceb67e5861d73072e73167ae099c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>init_constants_for_ros</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>a2899e9cdcc4ad6761a2b5a5fe5f403e6</anchor>
      <arglist>(double &amp;ros_tf_buffer_size, double &amp;ros_map_rate, int &amp;ros_filter_queue, int &amp;ros_subscr_queue)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>init_frame_names</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>a994a57650a72b4e54abd22cdc40d0fbc</anchor>
      <arglist>(std::string &amp;frame_odom, std::string &amp;frame_robot_pose)</arglist>
    </member>
    <member kind="function">
      <type>GridMapParams</type>
      <name>init_grid_map_params</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>ad711ada46e4217c9b13b28e8a20152f1</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::shared_ptr&lt; CellOccupancyEstimator &gt;</type>
      <name>init_occ_estimator</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>ac1f7b0c92597daa4a73af43aceb60369</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>init_skip_exceeding_lsr</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>a095343fe8f4330a5547c038f43cc99e0</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>main</name>
      <anchorfile>tiny__slam_8cpp.html</anchorfile>
      <anchor>a3c04138a5bfe5d72780bb7e82a18e627</anchor>
      <arglist>(int argc, char **argv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tiny_world.h</name>
    <path>/tmp/ws/src/tiny_slam/src/tiny_slam/</path>
    <filename>tiny__world_8h</filename>
    <includes id="state__data_8h" name="state_data.h" local="yes" imported="no">../core/state_data.h</includes>
    <includes id="sensor__data_8h" name="sensor_data.h" local="yes" imported="no">../core/sensor_data.h</includes>
    <includes id="laser__scan__grid__world_8h" name="laser_scan_grid_world.h" local="yes" imported="no">../core/laser_scan_grid_world.h</includes>
    <includes id="grid__cell__strategy_8h" name="grid_cell_strategy.h" local="yes" imported="no">../core/maps/grid_cell_strategy.h</includes>
    <includes id="tiny__grid__cells_8h" name="tiny_grid_cells.h" local="yes" imported="no">tiny_grid_cells.h</includes>
    <includes id="tiny__scan__matcher_8h" name="tiny_scan_matcher.h" local="yes" imported="no">tiny_scan_matcher.h</includes>
    <class kind="class">TinyWorld</class>
    <class kind="struct">TinyWorldParams</class>
  </compound>
  <compound kind="file">
    <name>topic_with_transform.h</name>
    <path>/tmp/ws/src/tiny_slam/src/ros/</path>
    <filename>topic__with__transform_8h</filename>
    <class kind="class">TopicObserver</class>
    <class kind="class">TopicWithTransform</class>
  </compound>
  <compound kind="file">
    <name>utils.h</name>
    <path>/tmp/ws/src/tiny_slam/src/ros/</path>
    <filename>utils_8h</filename>
    <member kind="function">
      <type>void</type>
      <name>publish_2D_transform</name>
      <anchorfile>utils_8h.html</anchorfile>
      <anchor>a1bebbdc3891b3cdccfb370f79d7df9ab</anchor>
      <arglist>(const std::string &amp;target_frame, const std::string &amp;base_frame, double x, double y, double th)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>AreaOccupancyEstimator</name>
    <filename>classAreaOccupancyEstimator.html</filename>
    <base>CellOccupancyEstimator</base>
    <class kind="struct">AreaOccupancyEstimator::Intersection</class>
    <class kind="struct">AreaOccupancyEstimator::Ray</class>
    <member kind="function">
      <type></type>
      <name>AreaOccupancyEstimator</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>a5c2568f4be748a11179a028f493341f8</anchor>
      <arglist>(double occ, double empty)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual Occupancy</type>
      <name>estimate_occupancy</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>ad4963f6d7361f8da50d79afb05306354</anchor>
      <arglist>(const Beam &amp;beam, const Rectangle &amp;cell_bnds, bool is_occ) override</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>std::vector&lt; Intersection &gt;</type>
      <name>Intersections</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>a8702de1149aa36a999fd2cbee45c43d6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration" protection="private">
      <type></type>
      <name>IntersLocation</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>a199774180054330971c09e940491176f</anchor>
      <arglist></arglist>
      <enumvalue file="classAreaOccupancyEstimator.html" anchor="a199774180054330971c09e940491176fa1448e86d90e0feb307c2894c24e87767">Bot</enumvalue>
      <enumvalue file="classAreaOccupancyEstimator.html" anchor="a199774180054330971c09e940491176fa945d5e233cf7d6240f6b783b36a374ff">Left</enumvalue>
      <enumvalue file="classAreaOccupancyEstimator.html" anchor="a199774180054330971c09e940491176faa4ffdcf0dc1f31b9acaf295d75b51d00">Top</enumvalue>
      <enumvalue file="classAreaOccupancyEstimator.html" anchor="a199774180054330971c09e940491176fa92b09c7c48c520c3c55e497875da437c">Right</enumvalue>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>are_on_the_same_side</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>a91c07bf23d1d27b80292eceb6ba087d0</anchor>
      <arglist>(double line_x1, double line_y1, double line_x2, double line_y2, double x1, double y1, double x2, double y2)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>double</type>
      <name>compute_chunk_area</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>ab1fea8446c55d739ea667ec84a4ddf0a</anchor>
      <arglist>(const Beam &amp;beam, const Rectangle &amp;bnds, bool is_occ, const std::vector&lt; Intersection &gt; inters)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>Occupancy</type>
      <name>estimate_occupancy</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>a1980381306e5276c78b7e3596e2eefb2</anchor>
      <arglist>(double chunk_area, double total_area, bool is_occ)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>Intersections</type>
      <name>find_intersections</name>
      <anchorfile>classAreaOccupancyEstimator.html</anchorfile>
      <anchor>a7d34fc15bc41b052296d8922e8390f2e</anchor>
      <arglist>(const Beam &amp;beam, const Rectangle &amp;bnds, bool is_occ)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>AvgTinyCell</name>
    <filename>classAvgTinyCell.html</filename>
    <base>GridCell</base>
    <member kind="function">
      <type></type>
      <name>AvgTinyCell</name>
      <anchorfile>classAvgTinyCell.html</anchorfile>
      <anchor>a6ffc37c4d4c26a7dab53616ed9a5f6d1</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>set_value</name>
      <anchorfile>classAvgTinyCell.html</anchorfile>
      <anchor>a6190cd15391d42828d62745e28996ca0</anchor>
      <arglist>(const Occupancy &amp;value, double quality) override</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>value</name>
      <anchorfile>classAvgTinyCell.html</anchorfile>
      <anchor>ae238d23138fb263afcd081c777ad8db4</anchor>
      <arglist>() const override</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_cnt</name>
      <anchorfile>classAvgTinyCell.html</anchorfile>
      <anchor>a18235cc31ec99284fcd883ceaf4fa397</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_n</name>
      <anchorfile>classAvgTinyCell.html</anchorfile>
      <anchor>a76367dc3831c113125b453a34fe46c80</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>BaseTinyCell</name>
    <filename>classBaseTinyCell.html</filename>
    <base>GridCell</base>
    <member kind="function">
      <type></type>
      <name>BaseTinyCell</name>
      <anchorfile>classBaseTinyCell.html</anchorfile>
      <anchor>a1defbe2ce21a156dbfe2c7f7654e4f4c</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>set_value</name>
      <anchorfile>classBaseTinyCell.html</anchorfile>
      <anchor>a7a61e2fa3e353c02470b4d850a5950af</anchor>
      <arglist>(const Occupancy &amp;value, double quality) override</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>value</name>
      <anchorfile>classBaseTinyCell.html</anchorfile>
      <anchor>ab345cd83e2051aa5d48f83dddddf30df</anchor>
      <arglist>() const override</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_prob</name>
      <anchorfile>classBaseTinyCell.html</anchorfile>
      <anchor>a0ce076f0da8d9a452ee1499de1ae655d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>Beam</name>
    <filename>structBeam.html</filename>
    <member kind="variable">
      <type>double</type>
      <name>x_end</name>
      <anchorfile>structBeam.html</anchorfile>
      <anchor>a1ee7d60b4b09643f25ef29a013abe115</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>x_st</name>
      <anchorfile>structBeam.html</anchorfile>
      <anchor>ac7eb112f319d1df5b72e8b536e946971</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>y_end</name>
      <anchorfile>structBeam.html</anchorfile>
      <anchor>a987ef02ff00f0191b39001f56125b490</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>y_st</name>
      <anchorfile>structBeam.html</anchorfile>
      <anchor>af377bb3afd53701b4a303928c134fd03</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>CellOccupancyEstimator</name>
    <filename>classCellOccupancyEstimator.html</filename>
    <member kind="function">
      <type></type>
      <name>CellOccupancyEstimator</name>
      <anchorfile>classCellOccupancyEstimator.html</anchorfile>
      <anchor>a8c1a6cba92009f396207e76665dfd2a3</anchor>
      <arglist>(double base_occ_prob, double base_empty_prob)</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual Occupancy</type>
      <name>estimate_occupancy</name>
      <anchorfile>classCellOccupancyEstimator.html</anchorfile>
      <anchor>a0e550184ca9dad22e8c7e76eb68522f9</anchor>
      <arglist>(const Beam &amp;beam, const Rectangle &amp;cell_bnds, bool is_occ)=0</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>double</type>
      <name>base_empty_prob</name>
      <anchorfile>classCellOccupancyEstimator.html</anchorfile>
      <anchor>af01cab143721f76540536a8c9ac51e4b</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>double</type>
      <name>base_occ_prob</name>
      <anchorfile>classCellOccupancyEstimator.html</anchorfile>
      <anchor>a40dad43228c17e3b0ba828b3587946d6</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_base_empty_prob</name>
      <anchorfile>classCellOccupancyEstimator.html</anchorfile>
      <anchor>a0622f1ac38948a101a9d0033657e7714</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_base_occ_prob</name>
      <anchorfile>classCellOccupancyEstimator.html</anchorfile>
      <anchor>a5038ffcf07a97de7d12108012c51251c</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ConstOccupancyEstimator</name>
    <filename>classConstOccupancyEstimator.html</filename>
    <base>CellOccupancyEstimator</base>
    <member kind="function">
      <type></type>
      <name>ConstOccupancyEstimator</name>
      <anchorfile>classConstOccupancyEstimator.html</anchorfile>
      <anchor>aa6f381912e56541370b245ba957f2037</anchor>
      <arglist>(double occ, double empty)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual Occupancy</type>
      <name>estimate_occupancy</name>
      <anchorfile>classConstOccupancyEstimator.html</anchorfile>
      <anchor>a0ad689f5717eb851efadb7d4badb412b</anchor>
      <arglist>(const Beam &amp;beam, const Rectangle &amp;cell_bnds, bool is_occ) override</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>DiscreteLine2D</name>
    <filename>classDiscreteLine2D.html</filename>
    <member kind="function">
      <type></type>
      <name>DiscreteLine2D</name>
      <anchorfile>classDiscreteLine2D.html</anchorfile>
      <anchor>abbd391839c01723d97317fe0719a4e94</anchor>
      <arglist>(const Point &amp;start, const Point &amp;end)</arglist>
    </member>
    <member kind="function">
      <type>const std::vector&lt; Point &gt; &amp;</type>
      <name>points</name>
      <anchorfile>classDiscreteLine2D.html</anchorfile>
      <anchor>a420a6f74352e03ec21067d2377230ba7</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>DiscretePoint2D</type>
      <name>Point</name>
      <anchorfile>classDiscreteLine2D.html</anchorfile>
      <anchor>a4009955b0aec6354682adecc6dd757fa</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>generatePointsWithBresenham</name>
      <anchorfile>classDiscreteLine2D.html</anchorfile>
      <anchor>a041d13d9ba11fe6ca20ef3c72cd113a8</anchor>
      <arglist>(int x1, int y1, int x2, int y2)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; Point &gt;</type>
      <name>_points</name>
      <anchorfile>classDiscreteLine2D.html</anchorfile>
      <anchor>a8c49e91fb0a865af5639fb7d42126226</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>DiscretePoint2D</name>
    <filename>structDiscretePoint2D.html</filename>
    <member kind="function">
      <type></type>
      <name>DiscretePoint2D</name>
      <anchorfile>structDiscretePoint2D.html</anchorfile>
      <anchor>a2af053738f4a5743298cf7ee9b624ed0</anchor>
      <arglist>(int x_coord, int y_coord)</arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>dist_sq</name>
      <anchorfile>structDiscretePoint2D.html</anchorfile>
      <anchor>a21a1b93470978a874372c57addff7a5f</anchor>
      <arglist>(const DiscretePoint2D &amp;pt) const </arglist>
    </member>
    <member kind="function">
      <type>DiscretePoint2D</type>
      <name>operator+</name>
      <anchorfile>structDiscretePoint2D.html</anchorfile>
      <anchor>a0dea831a7d88d535106c662809606149</anchor>
      <arglist>(const DiscretePoint2D &amp;p) const </arglist>
    </member>
    <member kind="function">
      <type>DiscretePoint2D</type>
      <name>operator-</name>
      <anchorfile>structDiscretePoint2D.html</anchorfile>
      <anchor>aedb7a6b22701fe5d6b4ca8c0b22944fd</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>x</name>
      <anchorfile>structDiscretePoint2D.html</anchorfile>
      <anchor>a32015cb17b4778779e6854f1e7479642</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>y</name>
      <anchorfile>structDiscretePoint2D.html</anchorfile>
      <anchor>ae51a033cd93084a59364d751aa1a01d5</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GridCell</name>
    <filename>classGridCell.html</filename>
    <member kind="function" virtualness="virtual">
      <type>virtual double</type>
      <name>obst_x</name>
      <anchorfile>classGridCell.html</anchorfile>
      <anchor>a2bf26c288b675bfdd26c8cc9527f8679</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual double</type>
      <name>obst_y</name>
      <anchorfile>classGridCell.html</anchorfile>
      <anchor>a4ff119633fdedcd805eec192b63437e6</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>set_value</name>
      <anchorfile>classGridCell.html</anchorfile>
      <anchor>aa8ed84a0b32913846bb999fdac580ef1</anchor>
      <arglist>(const Occupancy &amp;occ, double quality=1.0)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual double</type>
      <name>value</name>
      <anchorfile>classGridCell.html</anchorfile>
      <anchor>a1cb6967016c9fd1c68d73e41cd971442</anchor>
      <arglist>() const =0</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GridCellFactory</name>
    <filename>classGridCellFactory.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual std::shared_ptr&lt; GridCell &gt;</type>
      <name>create_cell</name>
      <anchorfile>classGridCellFactory.html</anchorfile>
      <anchor>abf2ccbe59b0902c5e11af6f7ee583333</anchor>
      <arglist>()=0</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GridCellStrategy</name>
    <filename>classGridCellStrategy.html</filename>
    <member kind="function">
      <type>std::shared_ptr&lt; GridCellFactory &gt;</type>
      <name>cell_factory</name>
      <anchorfile>classGridCellStrategy.html</anchorfile>
      <anchor>ae0c895c60bae584689060199da85fb67</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>std::shared_ptr&lt; ScanCostEstimator &gt;</type>
      <name>cost_est</name>
      <anchorfile>classGridCellStrategy.html</anchorfile>
      <anchor>aaacf37cff179a138d61b012d08fbf808</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GridCellStrategy</name>
      <anchorfile>classGridCellStrategy.html</anchorfile>
      <anchor>ab330e29ea195ac6b1d3be43ea344103e</anchor>
      <arglist>(std::shared_ptr&lt; GridCellFactory &gt; factory, std::shared_ptr&lt; ScanCostEstimator &gt; cost_est, std::shared_ptr&lt; CellOccupancyEstimator &gt; occ_est)</arglist>
    </member>
    <member kind="function">
      <type>std::shared_ptr&lt; CellOccupancyEstimator &gt;</type>
      <name>occupancy_est</name>
      <anchorfile>classGridCellStrategy.html</anchorfile>
      <anchor>a27c13834f5de7c8a4a48f0668142e3ca</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; GridCellFactory &gt;</type>
      <name>_cell_factory</name>
      <anchorfile>classGridCellStrategy.html</anchorfile>
      <anchor>aae93c3d07a8173f8c67938db4f6accac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; ScanCostEstimator &gt;</type>
      <name>_cost_estimator</name>
      <anchorfile>classGridCellStrategy.html</anchorfile>
      <anchor>a7ca42815a095ff5d7d22475fda12c192</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; CellOccupancyEstimator &gt;</type>
      <name>_occupancy_estimator</name>
      <anchorfile>classGridCellStrategy.html</anchorfile>
      <anchor>a4463fa5c0accbdc958b0b92d5991e8fe</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GridMap</name>
    <filename>classGridMap.html</filename>
    <member kind="typedef">
      <type>std::shared_ptr&lt; GridCell &gt;</type>
      <name>Cell</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a329923c03016a62e132b7dc52efeaaf1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>cell_scale</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a0e583ef2152ae54aa6a434193f2e785d</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>cell_value</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a9bf5e47c5ee04873c6d168bafe7fa748</anchor>
      <arglist>(const DiscretePoint2D &amp;cell_coord) const </arglist>
    </member>
    <member kind="function">
      <type>const std::vector&lt; std::vector&lt; Cell &gt; &gt;</type>
      <name>cells</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ad0c35f7b1bdbeafa564ca4c6f14400db</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>GridMap</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a41d36d91550998b9a454f6f9d5ead79b</anchor>
      <arglist>(std::shared_ptr&lt; GridCellFactory &gt; cell_factory, const GridMapParams &amp;init_params)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>height</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>aac1410b2561b7a1a26bd95b2e558798c</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>map_center_x</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a844a679eab5aca821bdd1a027408dbcc</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>map_center_y</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ab08e0e7e7456b06a0ab1cc8ffb359110</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>double</type>
      <name>scale</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a7cd378cb9d0f56f24808358ea5d24eb6</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update_cell</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ad2e43a4e9dfd834e5ba637c983d0d115</anchor>
      <arglist>(const DiscretePoint2D &amp;cell_coord, const Occupancy &amp;new_value, double quality=1.0)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>width</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ae0e910ad7fda29d2ccf56f2ce9fe374e</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>Rectangle</type>
      <name>world_cell_bounds</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>aee5e7ef005632aabc267495004ba5fbf</anchor>
      <arglist>(const DiscretePoint2D &amp;cell_coord)</arglist>
    </member>
    <member kind="function">
      <type>DiscretePoint2D</type>
      <name>world_to_cell</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a7c9e47ef842f3d464df85c1d5241437b</anchor>
      <arglist>(double x, double y) const </arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>std::vector&lt; Row &gt;</type>
      <name>Map</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a52b87390be210b9e754f0d434bbacada</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>std::vector&lt; Cell &gt;</type>
      <name>Row</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a912b3c9d52d4db02a7ab064b6cb79932</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>add_cols</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a811976d437f922c7210740b52653d2a3</anchor>
      <arglist>(const int cols_count, std::function&lt; Row::iterator(Row &amp;)&gt; it)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>add_rows</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a83d6348c78e5a9e9379c28b6ef970b06</anchor>
      <arglist>(const int rows_count, Map::iterator it)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>int</type>
      <name>calc_sufficient_bound</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a85c1343b5abcb73c30b5bf8d4eaefbb3</anchor>
      <arglist>(const int container_coord, const int map_bound)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>long</type>
      <name>closest_bounded_power_two</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a17df8cd1e2393bfff98da2941083fec4</anchor>
      <arglist>(long x)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>bool</type>
      <name>has_cell</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a4ff8e3f3f253446dc4b1b116504e25bd</anchor>
      <arglist>(const DiscretePoint2D &amp;cell_coord) const </arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>resize_bound</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>af80a340ede81b322e655b2c52a11e792</anchor>
      <arglist>(const int dim, const int container_coord)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>resize_in_direction</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ad73f99a599807ab0ac1136e12c3c74c6</anchor>
      <arglist>(const int delta, const int direction_flag)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>update_size</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>abaeafe6a8ead60118fdbba04444a90d9</anchor>
      <arglist>(const DiscretePoint2D &amp;cell_coord)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; GridCellFactory &gt;</type>
      <name>_cell_factory</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ac341b4f2737ecad2e307e214392e9980</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Map</type>
      <name>_cells</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a769ce91bedd7e3e72aa6221907145cde</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>int</type>
      <name>_height</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a477cf107b09b827209991c1aa9cb1211</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_m_per_cell</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>af57827ab750b972840a2148117c2e330</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>int</type>
      <name>_map_center_x</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a05a51184ac19c454ec8faab9683dbcb9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>int</type>
      <name>_map_center_y</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>aa9024bce5e2d0dd4aacdbd32acfad9e2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>Cell</type>
      <name>_unvisited_cell</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a8abbfea4eee6c9b84ccfe030cfdfb713</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>int</type>
      <name>_width</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>aae948013e65e66e356a78f91c408d578</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_BWD</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ab757c5e7986069d4946a954083d38d76</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_DIM_BIT</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>acea15be7590877945fe56d0810d9c1e3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_DIR_BIT</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a5c3ed187e29638c5a838b18f83c93e66</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_DOWN</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a728824ac246b5ca7208427708ab453a2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_FWD</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>af89fbb4ff45e816b4b1d9d65bb90759f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_HORZ</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a894725c871d4437cdccbb748caf76ab2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_LEFT</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>ab5e7e5c1b5536570c9ce0f18c7a25023</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_RIGHT</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>a7d49b1bdbc887ee6746ffbc1f8717484</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_UP</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>aac67223dde196bfd937c452c5f856d50</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const int</type>
      <name>RESIZE_VERT</name>
      <anchorfile>classGridMap.html</anchorfile>
      <anchor>abbcd1dc86d179c86ac64815f8d70d5be</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>GridMapParams</name>
    <filename>structGridMapParams.html</filename>
    <member kind="variable">
      <type>double</type>
      <name>height</name>
      <anchorfile>structGridMapParams.html</anchorfile>
      <anchor>a3e86d3d8343c171ab4f35ac3db884134</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>meters_per_cell</name>
      <anchorfile>structGridMapParams.html</anchorfile>
      <anchor>a8bde61bbb3dcaed6975c8a9b46b64757</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>width</name>
      <anchorfile>structGridMapParams.html</anchorfile>
      <anchor>a96666006c963b69108a9c68baed4d910</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GridScanMatcher</name>
    <filename>classGridScanMatcher.html</filename>
    <member kind="function">
      <type></type>
      <name>GridScanMatcher</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>a9a3be345d6cecddde11c20524bc90d27</anchor>
      <arglist>(std::shared_ptr&lt; ScanCostEstimator &gt; estimator)</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual double</type>
      <name>process_scan</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>ac82dcbfeb705da489739b535ec506d77</anchor>
      <arglist>(const RobotState &amp;init_pose, const TransformedLaserScan &amp;scan, const GridMap &amp;map, RobotState &amp;pose_delta)=0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>reset_state</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>ab40af415815d7f5fce8bc0a86a74d9ac</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>subscribe</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>a1df47feb5d22ba3d87af16ce88f795ff</anchor>
      <arglist>(std::shared_ptr&lt; GridScanMatcherObserver &gt; obs)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>unsubscribe</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>a8f30c99f69fec1d0b20e747548a8ae30</anchor>
      <arglist>(std::shared_ptr&lt; GridScanMatcherObserver &gt; obs)</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::shared_ptr&lt; ScanCostEstimator &gt;</type>
      <name>cost_estimator</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>ac9b3e7ef0fc6df9e6ae16f47d95d161a</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function" protection="protected">
      <type>std::vector&lt; std::weak_ptr&lt; GridScanMatcherObserver &gt; &gt; &amp;</type>
      <name>observers</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>a97385c3ed672aa90a5234669bac0e143</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; ScanCostEstimator &gt;</type>
      <name>_cost_estimator</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>aa09011efe1118c655d02c5230cb4544b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; std::weak_ptr&lt; GridScanMatcherObserver &gt; &gt;</type>
      <name>_observers</name>
      <anchorfile>classGridScanMatcher.html</anchorfile>
      <anchor>ac68fed091ee06886dce32bfeb416b2c6</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>GridScanMatcherObserver</name>
    <filename>classGridScanMatcherObserver.html</filename>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>on_matching_end</name>
      <anchorfile>classGridScanMatcherObserver.html</anchorfile>
      <anchor>a405d834cefca1e61d98945c5475efbdf</anchor>
      <arglist>(const RobotState &amp;, double)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>on_matching_start</name>
      <anchorfile>classGridScanMatcherObserver.html</anchorfile>
      <anchor>a05a7f733521a3e36f172c6c1fee03091</anchor>
      <arglist>(const RobotState &amp;, const TransformedLaserScan &amp;, const GridMap &amp;)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>on_pose_update</name>
      <anchorfile>classGridScanMatcherObserver.html</anchorfile>
      <anchor>a8e8ff25708e9222a513a2cfdfdca4e03</anchor>
      <arglist>(const RobotState &amp;, const TransformedLaserScan &amp;, double)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>on_scan_test</name>
      <anchorfile>classGridScanMatcherObserver.html</anchorfile>
      <anchor>a0cee638a4916e8f3b28184077dda23e3</anchor>
      <arglist>(const RobotState &amp;, const TransformedLaserScan &amp;, double)</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>AreaOccupancyEstimator::Intersection</name>
    <filename>structAreaOccupancyEstimator_1_1Intersection.html</filename>
    <member kind="function">
      <type></type>
      <name>Intersection</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Intersection.html</anchorfile>
      <anchor>a50cab9aea18d29147bfafbe2889a29f3</anchor>
      <arglist>(IntersLocation loc, double inters_x, double inters_y)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>is_horiz</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Intersection.html</anchorfile>
      <anchor>ae3b1ac575d59e4c0b6bb9d7572c8af14</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="variable">
      <type>IntersLocation</type>
      <name>location</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Intersection.html</anchorfile>
      <anchor>a2914e23bcf769999d4c5fd31840f3f36</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>x</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Intersection.html</anchorfile>
      <anchor>a858ce102cab6ca43ea8403557f911d35</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>y</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Intersection.html</anchorfile>
      <anchor>a5c4cbb987f1b5bf8b420b9a34511cbb1</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>LaserScanGridWorld</name>
    <filename>classLaserScanGridWorld.html</filename>
    <base>World&lt; TransformedLaserScan, GridMap &gt;</base>
    <member kind="typedef">
      <type>GridMap</type>
      <name>MapType</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>a4bb8d4bf4cae3d1b4e5d9f08d2c44d21</anchor>
      <arglist></arglist>
    </member>
    <member kind="typedef">
      <type>DiscretePoint2D</type>
      <name>Point</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>a8605b2bab7abeb2344932ba9436b7f4c</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_observation</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>ae0e5e51036e34e9abca33f2303b22b47</anchor>
      <arglist>(TransformedLaserScan &amp;scan)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_scan_point</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>aa0071e8bd2d1a0f6eacd60178310ee1e</anchor>
      <arglist>(MapType &amp;map, double laser_x, double laser_y, double beam_end_x, double beam_end_y, bool is_occ, double quality)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LaserScanGridWorld</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>a9fe1a27e262615f684ad6018b3c6a860</anchor>
      <arglist>(std::shared_ptr&lt; GridCellStrategy &gt; gcs, const GridMapParams &amp;init_params)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual const MapType &amp;</type>
      <name>map</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>acebcb0ee24caccfd78473a9841b57047</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual MapType &amp;</type>
      <name>map</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>a5f3376f8ae427eeffc49c9879c881658</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>MapType</type>
      <name>_map</name>
      <anchorfile>classLaserScanGridWorld.html</anchorfile>
      <anchor>ab3dc4cb81564cf39ff0e145fa81ef911</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>LaserScanObserver</name>
    <filename>classLaserScanObserver.html</filename>
    <base>TopicObserver&lt; sensor_msgs::LaserScan &gt;</base>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>handle_laser_scan</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>a2d85044306a261a3fbf3a7570defd16e</anchor>
      <arglist>(TransformedLaserScan &amp;)=0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_transformed_msg</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>a1540067644cbd77d0b44c5b69447953b</anchor>
      <arglist>(const ScanPtr msg, const tf::StampedTransform &amp;t)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>LaserScanObserver</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>ae168317854cf072b84459ca4dc13df34</anchor>
      <arglist>(bool skip_max_vals=false)</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>boost::shared_ptr&lt; sensor_msgs::LaserScan &gt;</type>
      <name>ScanPtr</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>a6fc2b0d2101d20905d54c3a873716826</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_prev_x</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>a3410897db7da38583a57a749a77be35a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_prev_y</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>a89f5ee58eb05a4fb25f0dbe313b68bdb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_prev_yaw</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>a33a79b94e4c284c1e7eac612f7aa5bd2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>bool</type>
      <name>_skip_max_vals</name>
      <anchorfile>classLaserScanObserver.html</anchorfile>
      <anchor>aedf3443ca17fa3c7adcbae24e40f1a8d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>MapParams</name>
    <filename>classMapParams.html</filename>
    <member kind="function">
      <type></type>
      <name>MapParams</name>
      <anchorfile>classMapParams.html</anchorfile>
      <anchor>aebab0fc5fbb82a9c179300188be91e17</anchor>
      <arglist>(int height=0, int width=0, int map_center_x=0, int map_center_y=0)</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>_height</name>
      <anchorfile>classMapParams.html</anchorfile>
      <anchor>a06a0225e0dde7c201ceb6a9114fdeb9e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>_map_center_x</name>
      <anchorfile>classMapParams.html</anchorfile>
      <anchor>a2ad3e26bcbd6bc40e55feef521d7c303</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>_map_center_y</name>
      <anchorfile>classMapParams.html</anchorfile>
      <anchor>ab35ba07f140d48284de61821f24ff9ed</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>_width</name>
      <anchorfile>classMapParams.html</anchorfile>
      <anchor>a975ecf41bfab59c5c33d37a6b4daa0d4</anchor>
      <arglist></arglist>
    </member>
    <member kind="friend">
      <type>friend bool</type>
      <name>operator==</name>
      <anchorfile>classMapParams.html</anchorfile>
      <anchor>a5be7d6a1003b05b20610d0497a9a5878</anchor>
      <arglist>(const MapParams &amp;left, const MapParams &amp;right)</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>MonteCarloScanMatcher</name>
    <filename>classMonteCarloScanMatcher.html</filename>
    <base>GridScanMatcher</base>
    <member kind="typedef">
      <type>std::shared_ptr&lt; GridScanMatcherObserver &gt;</type>
      <name>ObsPtr</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>a2897634ba75ac6b9ab3a990f8c395812</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>MonteCarloScanMatcher</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>aa51bb594ded6a7733c5971638f94387d</anchor>
      <arglist>(std::shared_ptr&lt; ScanCostEstimator &gt; estimator, unsigned failed_iter, unsigned max_iter)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual double</type>
      <name>process_scan</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>a0aff5583c67a04cbd613b3bb3fa30393</anchor>
      <arglist>(const RobotState &amp;init_pose, const TransformedLaserScan &amp;scan, const GridMap &amp;map, RobotState &amp;pose_delta) override</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual unsigned</type>
      <name>on_estimate_update</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>adf5bcf72c16bc83a1bdffc7507850e89</anchor>
      <arglist>(unsigned sample_num, unsigned sample_limit)=0</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="pure">
      <type>virtual void</type>
      <name>sample_pose</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>af6de818c4dd577dea482c88022142d19</anchor>
      <arglist>(RobotState &amp;base_pose)=0</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>do_for_each_observer</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>a48567d32c3a6e3f00d08724b11b75785</anchor>
      <arglist>(std::function&lt; void(ObsPtr)&gt; op)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>unsigned</type>
      <name>_failed_tries_limit</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>aaeff1d12b86148031507432fe7a771f6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>unsigned</type>
      <name>_total_tries_limit</name>
      <anchorfile>classMonteCarloScanMatcher.html</anchorfile>
      <anchor>a43e7f7c2f8ffe362dfbad45c0d56d2b0</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>Occupancy</name>
    <filename>structOccupancy.html</filename>
    <member kind="function">
      <type></type>
      <name>Occupancy</name>
      <anchorfile>structOccupancy.html</anchorfile>
      <anchor>ae18431cf7cd44292cf1abff3dc655bd6</anchor>
      <arglist>(double prob, double quality)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Occupancy</name>
      <anchorfile>structOccupancy.html</anchorfile>
      <anchor>acb3d9dd2d6eb20d04db50e443a2cb5fa</anchor>
      <arglist>(double prob, double quality, double curr_x, double curr_y)</arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>operator==</name>
      <anchorfile>structOccupancy.html</anchorfile>
      <anchor>aeb2b5e5aa677e2035d65d31c6c17b8d4</anchor>
      <arglist>(const Occupancy &amp;that)</arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>estimation_quality</name>
      <anchorfile>structOccupancy.html</anchorfile>
      <anchor>a43a0fb6a092ec861b5bf4510c9c4c92e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>prob_occ</name>
      <anchorfile>structOccupancy.html</anchorfile>
      <anchor>a669c69fe668d9d897754600a13de2e66</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>x</name>
      <anchorfile>structOccupancy.html</anchorfile>
      <anchor>aabd7b5df0aa202c6578e3b4a39f2ec07</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>y</name>
      <anchorfile>structOccupancy.html</anchorfile>
      <anchor>a34b9db3d5b1f0734cc8ade472eaca73b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>PoseScanMatcherObserver</name>
    <filename>classPoseScanMatcherObserver.html</filename>
    <base>GridScanMatcherObserver</base>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>on_pose_update</name>
      <anchorfile>classPoseScanMatcherObserver.html</anchorfile>
      <anchor>a4e36a50bdb1f5ef7d4fbe6ac22304d31</anchor>
      <arglist>(const RobotState &amp;pose, const TransformedLaserScan &amp;scan, double score) override</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>on_scan_test</name>
      <anchorfile>classPoseScanMatcherObserver.html</anchorfile>
      <anchor>ac2d666aa52fcbd811e04a0706c6e3a8c</anchor>
      <arglist>(const RobotState &amp;pose, const TransformedLaserScan &amp;scan, double score) override</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>publish_transform</name>
      <anchorfile>classPoseScanMatcherObserver.html</anchorfile>
      <anchor>a0a8388c421996be3f943c4d73e2105ff</anchor>
      <arglist>(const std::string &amp;frame_id, std::string frame_odom, const RobotState &amp;p)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>_frame_odom</name>
      <anchorfile>classPoseScanMatcherObserver.html</anchorfile>
      <anchor>aaa36ea049035af1ab4f5362e57fb36ef</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>AreaOccupancyEstimator::Ray</name>
    <filename>structAreaOccupancyEstimator_1_1Ray.html</filename>
    <member kind="function">
      <type>void</type>
      <name>intersect_horiz_segm</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Ray.html</anchorfile>
      <anchor>ad2b3fe8c7c1eb28e8e033014703498b9</anchor>
      <arglist>(double st_x, double end_x, double y, IntersLocation loc, Intersections &amp;consumer)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>intersect_vert_segm</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Ray.html</anchorfile>
      <anchor>a1908e65de7f5c6a5ad3aa6282a740773</anchor>
      <arglist>(double st_y, double end_y, double x, IntersLocation loc, Intersections &amp;consumer)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Ray</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Ray.html</anchorfile>
      <anchor>abc92fc9b837f6440100b0a825825a03c</anchor>
      <arglist>(double x_s, double x_d, double y_s, double y_d)</arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>x_delta</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Ray.html</anchorfile>
      <anchor>a72f256351e8d2bcc10ea0e5abaada449</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>x_st</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Ray.html</anchorfile>
      <anchor>a43fa29e2cb8ebd4a0abcaed5e6629611</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>y_delta</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Ray.html</anchorfile>
      <anchor>a9d2c51940f39252c245f1008d7ec3e80</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>y_st</name>
      <anchorfile>structAreaOccupancyEstimator_1_1Ray.html</anchorfile>
      <anchor>a2a2b1f574c5793e1c9555aaec06499fb</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>Rectangle</name>
    <filename>structRectangle.html</filename>
    <member kind="function">
      <type>double</type>
      <name>area</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>ab9f354d4bfa22324e19733da70c5c58a</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function">
      <type>bool</type>
      <name>does_contain</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>ac187a1c13dae74eaba43e86d9fcfd414</anchor>
      <arglist>(double x, double y) const </arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Rectangle</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>a8a933e0ebd9e80ce91e61ffe87fd577e</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>Rectangle</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>a5164a9d607368beca6f452d7c19cf0fa</anchor>
      <arglist>(double b, double t, double l, double r)</arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>bot</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>a67fda101ec65b0acb5e6e76680bcb882</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>left</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>ac672fac1265b7bda3e28eaaf1bf27152</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>right</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>a359ade2e61c52dafa850afbe2809220b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>top</name>
      <anchorfile>structRectangle.html</anchorfile>
      <anchor>a34e8e2bb7dd9e1a1bae7793cf61c2e6d</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>RobotState</name>
    <filename>classRobotState.html</filename>
    <member kind="function">
      <type></type>
      <name>RobotState</name>
      <anchorfile>classRobotState.html</anchorfile>
      <anchor>ad10e75019e308bb0be22aa545eab0c44</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>RobotState</name>
      <anchorfile>classRobotState.html</anchorfile>
      <anchor>a0f5061b7078ad27ba975198f518ab952</anchor>
      <arglist>(double x, double y, double theta)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>update</name>
      <anchorfile>classRobotState.html</anchorfile>
      <anchor>a6c1eb26f63db14c5acf2f9c3a9ad3aee</anchor>
      <arglist>(double d_x, double d_y, double d_theta)</arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>theta</name>
      <anchorfile>classRobotState.html</anchorfile>
      <anchor>a347039726076c6fbe8874635dfa21af0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>x</name>
      <anchorfile>classRobotState.html</anchorfile>
      <anchor>a7ca6f4e88ac7982242ab32cf5fba15e6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>y</name>
      <anchorfile>classRobotState.html</anchorfile>
      <anchor>ac96a8e033454034c95745aee1811ffc2</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>RvizGridViewer</name>
    <filename>classRvizGridViewer.html</filename>
    <member kind="function">
      <type></type>
      <name>RvizGridViewer</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>ad3b44c58cfbd73e432b734b87bb3b2c2</anchor>
      <arglist>(ros::Publisher pub, const double show_map_rate, std::string frame_odom, std::string frame_robot_pose)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>show_map</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>a4793b35fad4ec5d1a000e6994e933d0c</anchor>
      <arglist>(const GridMap &amp;map)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>show_robot_pose</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>afc4367e6d3e5eaab7fc168564241b5b5</anchor>
      <arglist>(const RobotState &amp;r)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>_frame_odom</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>a26106b0e465195a93efc54523f8591a5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>_frame_robot_pose</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>a8e9937b84be799e7319be85257c6a631</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Time</type>
      <name>_last_pub_time</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>ac39c6b55e73beeebe331c9fe841910a8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>ros::Publisher</type>
      <name>_map_pub</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>afd96817862756f40044de473c02bd960</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>tf::TransformBroadcaster</type>
      <name>_tf_brcst</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>a946a454e23a1a6b09cb61cc5c267b468</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const double</type>
      <name>map_publishing_rate</name>
      <anchorfile>classRvizGridViewer.html</anchorfile>
      <anchor>a19695f9e1ba6f2da729b6994ab70d0f7</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>ScanCostEstimator</name>
    <filename>classScanCostEstimator.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual double</type>
      <name>estimate_scan_cost</name>
      <anchorfile>classScanCostEstimator.html</anchorfile>
      <anchor>af5667b51810c9235b495c9d524b60a30</anchor>
      <arglist>(const RobotState &amp;pose, const TransformedLaserScan &amp;scan, const GridMap &amp;map, double min_cost)=0</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ScanPoint</name>
    <filename>structScanPoint.html</filename>
    <member kind="function">
      <type></type>
      <name>ScanPoint</name>
      <anchorfile>structScanPoint.html</anchorfile>
      <anchor>a7aeeb1368c2a249746ade9b075dd87b5</anchor>
      <arglist>(double rng=0, double ang=0, bool is_occ=true)</arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>angle</name>
      <anchorfile>structScanPoint.html</anchorfile>
      <anchor>a2cc5951998c6ae1e40daaea4580d05a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>bool</type>
      <name>is_occupied</name>
      <anchorfile>structScanPoint.html</anchorfile>
      <anchor>a121de23404ccc21209668357b1b4d9b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>range</name>
      <anchorfile>structScanPoint.html</anchorfile>
      <anchor>a49ef25e805be472eefe2b55b61d7f413</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TinyAvgCellFactory</name>
    <filename>classTinyAvgCellFactory.html</filename>
    <base>GridCellFactory</base>
    <member kind="function">
      <type>std::shared_ptr&lt; GridCell &gt;</type>
      <name>create_cell</name>
      <anchorfile>classTinyAvgCellFactory.html</anchorfile>
      <anchor>af4cd4a55330ab7847e43bf97c4fe5b03</anchor>
      <arglist>() override</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TinyBaseCellFactory</name>
    <filename>classTinyBaseCellFactory.html</filename>
    <base>GridCellFactory</base>
    <member kind="function">
      <type>std::shared_ptr&lt; GridCell &gt;</type>
      <name>create_cell</name>
      <anchorfile>classTinyBaseCellFactory.html</anchorfile>
      <anchor>a86d67b0fcc09cce0f249a0c1136c9974</anchor>
      <arglist>() override</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TinyScanCostEstimator</name>
    <filename>classTinyScanCostEstimator.html</filename>
    <base>ScanCostEstimator</base>
    <member kind="function" virtualness="virtual">
      <type>virtual double</type>
      <name>estimate_scan_cost</name>
      <anchorfile>classTinyScanCostEstimator.html</anchorfile>
      <anchor>add9d7228201bca46dcb113cf8a3eb549</anchor>
      <arglist>(const RobotState &amp;pose, const TransformedLaserScan &amp;scan, const GridMap &amp;map, double min_cost) override</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TinyScanMatcher</name>
    <filename>classTinyScanMatcher.html</filename>
    <base>MonteCarloScanMatcher</base>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>reset_state</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>a7358408206680d3ce50037e8e34dc9e4</anchor>
      <arglist>() override</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TinyScanMatcher</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>a75be776ed52d29dcd374c994fca1fad6</anchor>
      <arglist>(ScePtr cost_estimator, unsigned bad_iter, unsigned max_iter, double sigma_coord, double sigma_angle)</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual unsigned</type>
      <name>on_estimate_update</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>ae855314f25d86dae8d6cc1e41282fe85</anchor>
      <arglist>(unsigned sample_num, unsigned sample_limit) override</arglist>
    </member>
    <member kind="function" protection="protected" virtualness="virtual">
      <type>virtual void</type>
      <name>sample_pose</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>a178bb19ecd03d39af94e494fa7b1838e</anchor>
      <arglist>(RobotState &amp;base_pose) override</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>std::shared_ptr&lt; ScanCostEstimator &gt;</type>
      <name>ScePtr</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>aad2815791193389f18f603dc21177914</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_curr_sigma_angle</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>a65b18fb99c1d28443680eeda50419f5c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_curr_sigma_coord</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>afaa41173c10ebb5ddc068953a4ef7743</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_sigma_angle</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>aa896ee6c21f3a62ebb4eb31da2842d35</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>double</type>
      <name>_sigma_coord</name>
      <anchorfile>classTinyScanMatcher.html</anchorfile>
      <anchor>a8e1b7979435b0c753bf328bf84290d92</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TinySlamFascade</name>
    <filename>classTinySlamFascade.html</filename>
    <base>LaserScanObserver</base>
    <member kind="function">
      <type>void</type>
      <name>add_scan_matcher_observer</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>a6365b2fd4e16d3b5c1762e4bc7b7028f</anchor>
      <arglist>(ScanMatcherObsPtr obs)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_laser_scan</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>ae045acf1bd6bdb4b0ba5fcaa3a27a9aa</anchor>
      <arglist>(TransformedLaserScan &amp;scan)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>remove_scan_matcher_observer</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>ace8ab4e5af7bc4e1984017823e663168</anchor>
      <arglist>(ScanMatcherObsPtr obs)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>set_viewer</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>abc3a5326f26b937cd638ccd543c06d3b</anchor>
      <arglist>(std::shared_ptr&lt; RvizGridViewer &gt; viewer)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TinySlamFascade</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>a53a5213592cbfe9a2054d8ec7292394b</anchor>
      <arglist>(std::shared_ptr&lt; GridCellStrategy &gt; gcs, const TinyWorldParams &amp;params, const GridMapParams &amp;init_map_params, bool skip_max_vals)</arglist>
    </member>
    <member kind="typedef" protection="private">
      <type>std::shared_ptr&lt; GridScanMatcherObserver &gt;</type>
      <name>ScanMatcherObsPtr</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>a363178796460cb79ca9f2b8f71d027a9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; RvizGridViewer &gt;</type>
      <name>_viewer</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>ad1a26923ae2beb0e04291e3cc625ed6f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; TinyWorld &gt;</type>
      <name>_world</name>
      <anchorfile>classTinySlamFascade.html</anchorfile>
      <anchor>a023f895146cc3892a74529b359da6cf6</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TinyWorld</name>
    <filename>classTinyWorld.html</filename>
    <base>LaserScanGridWorld</base>
    <member kind="typedef">
      <type>DiscretePoint2D</type>
      <name>Point</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>ad619ef91dd8dfbac048bf966818c73e9</anchor>
      <arglist></arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_observation</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>a4a3494e2a8b4e5e86815efc9cf7ccf20</anchor>
      <arglist>(TransformedLaserScan &amp;scan) override</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>handle_scan_point</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>a0190ee3b3aa22f7d198e62a503a4d3cc</anchor>
      <arglist>(GridMap &amp;map, double laser_x, double laser_y, double beam_end_x, double beam_end_y, bool is_occ, double quality) override</arglist>
    </member>
    <member kind="function">
      <type>std::shared_ptr&lt; GridScanMatcher &gt;</type>
      <name>scan_matcher</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>aba1db337bec678209d5a4163fd7d4dea</anchor>
      <arglist>()</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TinyWorld</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>ae79de75b12f2c2aa386bc25b98e8842e</anchor>
      <arglist>(std::shared_ptr&lt; GridCellStrategy &gt; gcs, const TinyWorldParams &amp;params, const GridMapParams &amp;init_map_params)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; GridCellStrategy &gt;</type>
      <name>_gcs</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>a6a9808fa6729144aec82b854023c6bb5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const TinyWorldParams</type>
      <name>_params</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>a33fdfff3017abeb350e0837b01dfdb30</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::shared_ptr&lt; TinyScanMatcher &gt;</type>
      <name>_scan_matcher</name>
      <anchorfile>classTinyWorld.html</anchorfile>
      <anchor>a62f80c8ec9c3106d9d5609f4876f1002</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>TinyWorldParams</name>
    <filename>structTinyWorldParams.html</filename>
    <member kind="function">
      <type></type>
      <name>TinyWorldParams</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>a51ca91d6ef5d01ecf79b145ca899f785</anchor>
      <arglist>(double sig_XY, double sig_T, unsigned lim_bad, unsigned lim_totl, double hole_width)</arglist>
    </member>
    <member kind="variable">
      <type>const unsigned</type>
      <name>BAD_LMT</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>ac38ee94ad5aa37d1de18d7303717e925</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>HOLE_WIDTH</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>a7fff28cde482f591e88797fe5e929eac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>localized_scan_quality</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>a804b7a2479bce4d82f5dc896f2e73c8a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>raw_scan_quality</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>aac4781620e912f32d4cc2d763bdde835</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>SIG_TH</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>a9184cbf4e9dfb48cc92b9ee1070bc4a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const double</type>
      <name>SIG_XY</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>a461407a9d6442fc7d85a1cf7e1c25129</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const unsigned</type>
      <name>TOT_LMT</name>
      <anchorfile>structTinyWorldParams.html</anchorfile>
      <anchor>a579d114c5ed69c7648097c97156f6396</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TopicObserver</name>
    <filename>classTopicObserver.html</filename>
    <templarg>MType</templarg>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>handle_transformed_msg</name>
      <anchorfile>classTopicObserver.html</anchorfile>
      <anchor>a63041caf73ce182755a3358f53f25257</anchor>
      <arglist>(const boost::shared_ptr&lt; MType &gt;, const tf::StampedTransform &amp;)=0</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TopicObserver&lt; sensor_msgs::LaserScan &gt;</name>
    <filename>classTopicObserver.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>handle_transformed_msg</name>
      <anchorfile>classTopicObserver.html</anchorfile>
      <anchor>a63041caf73ce182755a3358f53f25257</anchor>
      <arglist>(const boost::shared_ptr&lt; sensor_msgs::LaserScan &gt;, const tf::StampedTransform &amp;)=0</arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>TopicWithTransform</name>
    <filename>classTopicWithTransform.html</filename>
    <templarg>MsgType</templarg>
    <member kind="function">
      <type>void</type>
      <name>subscribe</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>a6f7a80f2e3edbd618827cc82b67e46fb</anchor>
      <arglist>(std::shared_ptr&lt; TopicObserver&lt; MsgType &gt;&gt; obs)</arglist>
    </member>
    <member kind="function">
      <type></type>
      <name>TopicWithTransform</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>afcb671bd20debedf799fe484462c2d09</anchor>
      <arglist>(ros::NodeHandle nh, const std::string &amp;topic_name, const std::string &amp;target_frame, const double buffer_duration, const double tf_filter_queue_size, const double subscribers_queue_size)</arglist>
    </member>
    <member kind="function" protection="private">
      <type>void</type>
      <name>transformed_msg_cb</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>a4d4c30d23e1fc4d0124ea94a5c1f1416</anchor>
      <arglist>(const boost::shared_ptr&lt; MsgType &gt; msg)</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::unique_ptr&lt; tf::MessageFilter&lt; MsgType &gt; &gt;</type>
      <name>_msg_flt</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>a1851d9be091ad0fed0d0cdcaa3bceadf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::vector&lt; std::weak_ptr&lt; TopicObserver&lt; MsgType &gt; &gt; &gt;</type>
      <name>_observers</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>af544f3913bb7bbc0e167eaade91d6905</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>message_filters::Subscriber&lt; MsgType &gt;</type>
      <name>_subscr</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>aee7bc852e50f39d0be40dcf713219e1f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>std::string</type>
      <name>_target_frame</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>ad077eac636341dfb86e511d1bfb859f2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>tf::TransformListener</type>
      <name>_tf_lsnr</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>a36087b580478c9282b7d30030484dbc8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const uint32_t</type>
      <name>FILTER_QUEUE_SZ</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>a0a7c256c772020b71ec81b5b6b8d3ed6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable" protection="private">
      <type>const uint32_t</type>
      <name>SUBSCR_QUEUE_SZ</name>
      <anchorfile>classTopicWithTransform.html</anchorfile>
      <anchor>a8d46cddcb74a56edc47df85fa1e27a45</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>TransformedLaserScan</name>
    <filename>structTransformedLaserScan.html</filename>
    <member kind="variable">
      <type>double</type>
      <name>d_x</name>
      <anchorfile>structTransformedLaserScan.html</anchorfile>
      <anchor>a43de9e5fa32fc3456fd301e6512c4323</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>d_y</name>
      <anchorfile>structTransformedLaserScan.html</anchorfile>
      <anchor>ade807e11c460d791cea9cbbfbffb68c1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>d_yaw</name>
      <anchorfile>structTransformedLaserScan.html</anchorfile>
      <anchor>a70c5c149d3a8eb2c721c44a322f657e4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>std::vector&lt; ScanPoint &gt;</type>
      <name>points</name>
      <anchorfile>structTransformedLaserScan.html</anchorfile>
      <anchor>a546cc473eee5b9c3177924dc3edd847c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>double</type>
      <name>quality</name>
      <anchorfile>structTransformedLaserScan.html</anchorfile>
      <anchor>abf1a1839f111efb881e81c44f27464b7</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>World</name>
    <filename>classWorld.html</filename>
    <templarg>ObservationType</templarg>
    <templarg>MapType</templarg>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>handle_observation</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a751b9c3b44e59fa8319e5084f4867388</anchor>
      <arglist>(ObservationType &amp;)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual const MapType &amp;</type>
      <name>map</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a9a0ed887e788b522cbdd3c0d80d1333e</anchor>
      <arglist>() const =0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual const RobotState &amp;</type>
      <name>pose</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a3b02664f763fca0b93e46faec0e190e5</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update_robot_pose</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a469456d1ce3cf20047cc8187913e7654</anchor>
      <arglist>(double x, double y, double theta)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual const World&lt; ObservationType, MapType &gt; &amp;</type>
      <name>world</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a98e42ed94ceabd52899aa1381c7e7b18</anchor>
      <arglist>() const </arglist>
    </member>
    <member kind="variable" protection="private">
      <type>RobotState</type>
      <name>_pose</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a967cfb6f3f08cd9abf5845381dd84519</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="class">
    <name>World&lt; TransformedLaserScan, GridMap &gt;</name>
    <filename>classWorld.html</filename>
    <member kind="function" virtualness="pure">
      <type>virtual void</type>
      <name>handle_observation</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a751b9c3b44e59fa8319e5084f4867388</anchor>
      <arglist>(TransformedLaserScan &amp;)=0</arglist>
    </member>
    <member kind="function" virtualness="pure">
      <type>virtual const GridMap &amp;</type>
      <name>map</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a9a0ed887e788b522cbdd3c0d80d1333e</anchor>
      <arglist>() const =0</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual const RobotState &amp;</type>
      <name>pose</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a3b02664f763fca0b93e46faec0e190e5</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual void</type>
      <name>update_robot_pose</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a469456d1ce3cf20047cc8187913e7654</anchor>
      <arglist>(double x, double y, double theta)</arglist>
    </member>
    <member kind="function" virtualness="virtual">
      <type>virtual const World&lt; TransformedLaserScan, GridMap &gt; &amp;</type>
      <name>world</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a98e42ed94ceabd52899aa1381c7e7b18</anchor>
      <arglist>() const</arglist>
    </member>
    <member kind="variable" protection="private">
      <type>RobotState</type>
      <name>_pose</name>
      <anchorfile>classWorld.html</anchorfile>
      <anchor>a967cfb6f3f08cd9abf5845381dd84519</anchor>
      <arglist></arglist>
    </member>
  </compound>
</tagfile>
