00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef PEEKABOT_CLIENT_OCCUPANCY_GRID_2D_PROXY_HH_INCLUDED
00012 #define PEEKABOT_CLIENT_OCCUPANCY_GRID_2D_PROXY_HH_INCLUDED
00013
00014
00015 #include "ObjectProxy.hh"
00016 #include "../../Deprecated.hh"
00017
00018 #include <cstddef>
00019 #include <boost/scoped_ptr.hpp>
00020
00021
00022 namespace peekabot
00023 {
00024 namespace client
00025 {
00032 class PEEKABOT_API OccupancySet2D
00033 {
00034 friend class OccupancyGrid2DProxyBase;
00035
00036 public:
00037 OccupancySet2D();
00038
00039 OccupancySet2D(const OccupancySet2D &other);
00040
00041 ~OccupancySet2D();
00042
00043 OccupancySet2D &operator=(const OccupancySet2D &other);
00044
00055 void add(float x, float y, float belief);
00056
00060 void set_cell(float x, float y, float belief) PEEKABOT_DEPRECATED;
00061
00062 void clear();
00063
00064 std::size_t size() const;
00065
00066 bool empty() const;
00067
00068 private:
00069 class Impl;
00070 boost::scoped_ptr<Impl> m_impl;
00071 };
00072
00076 class PEEKABOT_API OccupancyGrid2DProxyBase : public ObjectProxyBase
00077 {
00078 public:
00079 OccupancyGrid2DProxyBase();
00080
00081 OccupancyGrid2DProxyBase(OccupancyGrid2DProxyBase &p);
00082
00089 DelayedDispatch set_cells(const OccupancySet2D &cells);
00090
00094 DelayedDispatch set_unoccupied_color(float r, float g, float b);
00095
00099 DelayedDispatch set_occupied_color(float r, float g, float b);
00100 };
00101
00102
00143 class PEEKABOT_API OccupancyGrid2DProxy :
00144 public OccupancyGrid2DProxyBase
00145 {
00146 public:
00147 OccupancyGrid2DProxy();
00148
00149 OccupancyGrid2DProxy(OccupancyGrid2DProxy &p);
00150
00151 OccupancyGrid2DProxy &operator=(const OccupancyGrid2DProxy &p);
00152
00153 OccupancyGrid2DProxy &operator=(const OccupancyGrid2DProxyBase &p);
00154
00158 DelayedDispatch assign(const ObjectProxyBase &p);
00159
00163 DelayedDispatch assign(
00164 PeekabotClient &client,
00165 const std::string &path);
00166
00171 DelayedDispatch assign(
00172 const ObjectProxyBase &parent,
00173 const std::string &rel_path);
00174
00188 DelayedDispatch add(
00189 PeekabotClient &client,
00190 const std::string &path,
00191 float cell_size,
00192 NameConflictPolicy conflict_policy = AUTO_ENUMERATE_ON_CONFLICT);
00193
00208 DelayedDispatch add(
00209 const ObjectProxyBase &parent,
00210 const std::string &name,
00211 float cell_size,
00212 NameConflictPolicy conflict_policy = AUTO_ENUMERATE_ON_CONFLICT);
00213
00221 DelayedDispatch add(
00222 PeekabotClient &client,
00223 const std::string &path,
00224 float cell_size,
00225 float unoccupied_r, float unoccupied_g, float unoccupied_b,
00226 float occupied_r, float occupied_g, float occupied_b,
00227 NameConflictPolicy conflict_policy = AUTO_ENUMERATE_ON_CONFLICT)
00228 PEEKABOT_DEPRECATED;
00229
00237 DelayedDispatch add(
00238 const ObjectProxyBase &parent,
00239 const std::string &name,
00240 float cell_size,
00241 float unoccupied_r, float unoccupied_g, float unoccupied_b,
00242 float occupied_r, float occupied_g, float occupied_b,
00243 NameConflictPolicy conflict_policy = AUTO_ENUMERATE_ON_CONFLICT)
00244 PEEKABOT_DEPRECATED;
00245 };
00246 }
00247 }
00248
00249
00250 #endif // PEEKABOT_CLIENT_OCCUPANCY_GRID_2D_PROXY_HH_INCLUDED