28 #ifndef CSENSORYFRAME_H
29 #define CSENSORYFRAME_H
85 CSensoryFrame( const CSensoryFrame &);
95 void internal_buildAuxPointsMap( const
void *options = NULL ) const;
106 template <class POINTSMAP>
107 inline const POINTSMAP* getAuxPointsMap()
const {
108 return static_cast<POINTSMAP*
>(m_cachedMap.pointer());
119 template <
class POINTSMAP>
121 internal_buildAuxPointsMap(options);
122 return static_cast<POINTSMAP*
>(m_cachedMap.pointer());
164 return insertObservationsInto(theMap.
pointer(), robotPose);
198 template <
typename T>
199 typename T::SmartPtr getObservationByClass(
const size_t &ith = 0 )
const
202 size_t foundCount = 0;
205 if ( (*it)->GetRuntimeClass()->derivedFrom( class_ID ) )
206 if (foundCount++ == ith)
207 return typename T::SmartPtr(*it);
208 return typename T::SmartPtr();
231 const_iterator
begin()
const {
return m_observations.begin(); }
244 const_iterator
end()
const {
return m_observations.end(); }
257 iterator
begin() {
return m_observations.begin(); }
270 inline iterator
end() {
return m_observations.end(); }
274 inline size_t size()
const {
return m_observations.size(); }
277 inline bool empty()
const {
return m_observations.empty(); }
280 void eraseByIndex(
const size_t &idx);
284 iterator erase(
const iterator &it);
288 void eraseByLabel(
const std::string &label);
301 template <
typename T>
302 T getObservationByIndexAs(
const size_t &idx )
const
304 return static_cast<T
>(getObservationByIndex(idx));
311 CObservationPtr getObservationBySensorLabel(
const std::string &label,
const size_t &idx = 0)
const;
319 template <
typename T>
320 T getObservationBySensorLabelAs(
const std::string &label,
const size_t &idx = 0)
const
322 return T(getObservationBySensorLabel(label,idx));