DataPointContainer.h
Go to the documentation of this file.
00001 //=================================================================================================
00002 // Copyright (c) 2011, Stefan Kohlbrecher, TU Darmstadt
00003 // All rights reserved.
00004 
00005 // Redistribution and use in source and binary forms, with or without
00006 // modification, are permitted provided that the following conditions are met:
00007 //     * Redistributions of source code must retain the above copyright
00008 //       notice, this list of conditions and the following disclaimer.
00009 //     * Redistributions in binary form must reproduce the above copyright
00010 //       notice, this list of conditions and the following disclaimer in the
00011 //       documentation and/or other materials provided with the distribution.
00012 //     * Neither the name of the Simulation, Systems Optimization and Robotics
00013 //       group, TU Darmstadt nor the names of its contributors may be used to
00014 //       endorse or promote products derived from this software without
00015 //       specific prior written permission.
00016 
00017 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00018 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00019 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00020 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
00021 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00022 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00023 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00024 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00025 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00026 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027 //=================================================================================================
00028 
00029 #ifndef __DataPointContainer_h_
00030 #define __DataPointContainer_h_
00031 
00032 #include <vector>
00033 
00034 namespace hectorslam {
00035 
00036 template<typename DataPointType>
00037 class DataPointContainer
00038 {
00039 public:
00040 
00041   DataPointContainer(int size = 1000)
00042   {
00043     dataPoints.reserve(size);
00044   }
00045 
00046   void setFrom(const DataPointContainer& other, float factor)
00047   {
00048     origo = other.getOrigo()*factor;
00049 
00050     dataPoints = other.dataPoints;
00051 
00052     unsigned int size = dataPoints.size();
00053 
00054     for (unsigned int i = 0; i < size; ++i){
00055       dataPoints[i] *= factor;
00056     }
00057 
00058   }
00059 
00060   void add(const DataPointType& dataPoint)
00061   {
00062     dataPoints.push_back(dataPoint);
00063   }
00064 
00065   void clear()
00066   {
00067     dataPoints.clear();
00068   }
00069 
00070   int getSize() const
00071   {
00072     return dataPoints.size();
00073   }
00074 
00075   const DataPointType& getVecEntry(int index) const
00076   {
00077     return dataPoints[index];
00078   }
00079 
00080   DataPointType getOrigo() const
00081   {
00082     return origo;
00083   }
00084 
00085   void setOrigo(const DataPointType& origoIn)
00086   {
00087     origo = origoIn;
00088   }
00089 
00090 protected:
00091 
00092   std::vector<DataPointType> dataPoints;
00093   DataPointType origo;
00094 };
00095 
00096 typedef DataPointContainer<Eigen::Vector2f> DataContainer;
00097 
00098 }
00099 
00100 #endif


hector_mapping
Author(s): Stefan Kohlbrecher
autogenerated on Wed Aug 26 2015 11:45:03