LidarDB.h
Go to the documentation of this file.
1 #ifndef _atm_LidarDB_h_
2 #define _atm_LidarDB_h_
3 
4 #include <atm/LidarZone.h>
5 
6 #include <boost/iterator/transform_iterator.hpp>
7 
8 #include <map>
9 #include <string>
10 
11 
12 namespace atm {
13 
26  class LidarDB {
27 
28  private:
29  void CacheZones();
30 
31  typedef std::map<std::string, const LidarZone*> InternalZoneMap;
32  typedef InternalZoneMap::const_iterator InternalZoneIterator;
33 
35 
37  const LidarZone& operator()(const std::pair<std::string, const LidarZone*>& pair) const
38  { return *pair.second; }
39  };
40 
41  public:
43  typedef boost::transform_iterator<InternalZoneFunctor,
46 
49  { return ZoneIterator(fZoneMap.begin()); }
50 
53  { return ZoneIterator(fZoneMap.end()); }
54 
55  private:
56  LidarDB();
57  ~LidarDB();
58 
59  std::string fLidarIdString; // specifies the lidar_id key for given time, software version, etc.
60 
61  friend class Atmosphere;
62  };
63 }
64 
65 #endif // _atm_LidarDB_h_
boost::transform_iterator< InternalZoneFunctor, InternalZoneIterator, const LidarZone & > ZoneIterator
ZoneIterator returns a pointer to an LidarZone.
Definition: LidarDB.h:45
Top of the interface to Atmosphere information.
void CacheZones()
Definition: LidarDB.cc:39
InternalZoneMap::const_iterator InternalZoneIterator
Definition: LidarDB.h:32
Cloud data for a Lidar zone.
Definition: LidarZone.h:39
ZoneIterator ZonesEnd() const
End of the collection of valid Zones.
Definition: LidarDB.h:52
std::string fLidarIdString
Definition: LidarDB.h:59
Detector description interface for LidarDB-realted data.
Definition: LidarDB.h:26
InternalZoneMap fZoneMap
Definition: LidarDB.h:34
std::map< std::string, const LidarZone * > InternalZoneMap
Definition: LidarDB.h:31
const LidarZone & operator()(const std::pair< std::string, const LidarZone * > &pair) const
Definition: LidarDB.h:37
ZoneIterator ZonesBegin() const
Beginning of the collection of valid Zones.
Definition: LidarDB.h:48

, generated on Tue Sep 26 2023.