INTRODUCTION
Overview
Download and Install
Quick Start
Documentation
Publications

NONFRAMEWORK CODE
Driver Interfaces
Drivers
Libraries
Utilities

FRAMEWORK CODE
Interfaces
Components
Libraries
Utilities

Full Software Listings

DEVELOPER
Tutorials
Examples
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

ogbuffer.h

00001 /*
00002  * Orca-Robotics Project: Components for robotics 
00003  *               http://orca-robotics.sf.net/
00004  * Copyright (c) 2004-2009 Alex Brooks, Alexei Makarenko, Tobias Kaupp
00005  *
00006  * This copy of Orca is licensed to you under the terms described in
00007  * the LICENSE file included in this distribution.
00008  *
00009  */
00010 #ifndef ORCA_OG_BUFFER_H
00011 #define ORCA_OG_BUFFER_H
00012 
00013 #include <map>
00014 
00015 #include <orca/ogfusion.h>
00016 //#include "ogfeature.h"
00017 
00023 namespace ogfusion{
00024 
00025 class OgBuffer
00026 {
00027 public:
00028 
00029     // What to do when we try to insert an element that's already there
00030     enum ReplacementPolicy {
00031         PolicyReplaceLikelihood, // Most recent takes precedence
00032         PolicyAddLikelihood,     // Fuse the two
00033         PolicyMaxLikelihood      // Take the maximum likelihood of occupancy
00034     };
00035 
00037 
00038     OgBuffer();
00039     ~OgBuffer();
00040 
00041     bool isEmpty() const;
00042     unsigned int size() const;
00043     void clear();
00044 
00045     orca::OgCellLikelihood& begin();
00046     orca::OgCellLikelihood& end();
00047 
00048     orca::OgCellLikelihood& insert( int ind, const orca::OgCellLikelihood &obs, ReplacementPolicy policy );
00049 
00050     void erase( const int ind ) {};
00051     void eraseFront();
00052     void eraseBack();
00053 
00054     void popFront( orca::OgCellLikelihood& obs);
00055     void popBack( orca::OgCellLikelihood& obs );
00056 
00057     void operator[] (const int ) const {};
00058 
00059     const std::map<int,orca::OgCellLikelihood> &bufferAsMap() const { return buffer_; }
00060 
00061 private:
00062 
00063 
00064     std::map<int,orca::OgCellLikelihood> buffer_;
00065 
00067     orca::OgCellLikelihood currentFeature_;
00068 
00069 };
00070 
00071 // INLINE FUNCTIONS ==================
00072 
00073 inline bool OgBuffer::isEmpty() const
00074 { return buffer_.empty(); };
00075 
00076 inline unsigned int OgBuffer::size() const
00077 { return buffer_.size(); };
00078 
00079 inline void OgBuffer::clear()
00080 { buffer_.clear(); };
00081 
00082 inline orca::OgCellLikelihood& OgBuffer::begin()
00083 { return buffer_.begin()->second; };
00084 
00085 inline orca::OgCellLikelihood& OgBuffer::end()
00086 { return buffer_.end()->second; };
00087 
00088 }
00089 #endif
 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5