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

src/client/proxies/OccupancyGrid3DProxy.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_3D_PROXY_HH_INCLUDED
00012 #define PEEKABOT_CLIENT_OCCUPANCY_GRID_3D_PROXY_HH_INCLUDED
00013 
00014 
00015 #include "ObjectProxy.hh"
00016 
00017 #include <cstddef>
00018 #include <boost/scoped_ptr.hpp>
00019 
00020 
00021 namespace peekabot
00022 {
00023     namespace client
00024     {
00033         class PEEKABOT_API OccupancySet3D
00034         {
00035             friend class OccupancyGrid3DProxyBase;
00036 
00037         public:
00038             OccupancySet3D();
00039 
00040             OccupancySet3D(const OccupancySet3D &other);
00041 
00042             ~OccupancySet3D();
00043 
00044             OccupancySet3D &operator=(const OccupancySet3D &other);
00045 
00055             void set_cell(float x, float y, float z, float belief);
00056 
00057             void clear();
00058 
00059             std::size_t size() const;
00060 
00061             bool empty() const;
00062 
00063         private:
00064             class Impl;
00065             boost::scoped_ptr<Impl> m_impl;
00066         };
00067 
00073         class PEEKABOT_API OccupancyGrid3DProxyBase : public ObjectProxyBase
00074         {
00075         public:
00076             OccupancyGrid3DProxyBase();
00077 
00078             OccupancyGrid3DProxyBase(OccupancyGrid3DProxyBase &p);
00079 
00086             DelayedDispatch set_cells(const OccupancySet3D &cells);
00087 
00096             DelayedDispatch enable_color_mapping(float z_min, float z_max);
00097 
00101             DelayedDispatch disable_color_mapping();
00102         };
00103 
00104 
00126         class PEEKABOT_API OccupancyGrid3DProxy :
00127             public OccupancyGrid3DProxyBase
00128         {
00129         public:
00130             OccupancyGrid3DProxy();
00131 
00132             OccupancyGrid3DProxy(OccupancyGrid3DProxy &p);
00133 
00134             OccupancyGrid3DProxy &operator=(const OccupancyGrid3DProxy &p);
00135 
00136             OccupancyGrid3DProxy &operator=(const OccupancyGrid3DProxyBase &p);
00137 
00141             DelayedDispatch assign(const ObjectProxyBase &p);
00142 
00146             DelayedDispatch assign(
00147                 PeekabotClient &client,
00148                 const std::string &path);
00149 
00154             DelayedDispatch assign(
00155                 const ObjectProxyBase &parent,
00156                 const std::string &rel_path);
00157 
00171             DelayedDispatch add(
00172                 PeekabotClient &client,
00173                 const std::string &path,
00174                 float cell_xy_size, float cell_z_size,
00175                 NameConflictPolicy conflict_policy = AUTO_ENUMERATE_ON_CONFLICT);
00176 
00191             DelayedDispatch add(
00192                 const ObjectProxyBase &parent,
00193                 const std::string &name,
00194                 float cell_xy_size, float cell_z_size,
00195                 NameConflictPolicy conflict_policy = AUTO_ENUMERATE_ON_CONFLICT);
00196         };
00197     }
00198 }
00199 
00200 
00201 #endif // PEEKABOT_CLIENT_OCCUPANCY_GRID_3D_PROXY_HH_INCLUDED

Generated on Sun Jan 30 2011 for peekabot by  doxygen 1.7.1