• Main Page
  • Related Pages
  • Classes
  • Files
  • File List

src/client/proxies/OccupancyGrid2DProxy.hh

00001 /*
00002  * Copyright Staffan Gimåker 2008-2010.
00003  *
00004  * ---
00005  *
00006  * Distributed under the Boost Software License, Version 1.0.
00007  * (See accompanying file LICENSE_1_0.txt or copy at
00008  * http://www.boost.org/LICENSE_1_0.txt)
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

Generated on Sun Jan 30 2011 for peekabot by  doxygen 1.7.1