DataPointContainer.h
Go to the documentation of this file.
1 //=================================================================================================
2 // Copyright (c) 2011, Stefan Kohlbrecher, TU Darmstadt
3 // All rights reserved.
4 
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are met:
7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above copyright
10 // notice, this list of conditions and the following disclaimer in the
11 // documentation and/or other materials provided with the distribution.
12 // * Neither the name of the Simulation, Systems Optimization and Robotics
13 // group, TU Darmstadt nor the names of its contributors may be used to
14 // endorse or promote products derived from this software without
15 // specific prior written permission.
16 
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
21 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 //=================================================================================================
28 
29 #ifndef __DataPointContainer_h_
30 #define __DataPointContainer_h_
31 
32 #include <vector>
33 
34 namespace hectorslam {
35 
36 template<typename DataPointType>
38 {
39 public:
40 
41  DataPointContainer(int size = 1000)
42  {
43  dataPoints.reserve(size);
44  }
45 
46  void setFrom(const DataPointContainer& other, float factor)
47  {
48  origo = other.getOrigo()*factor;
49 
50  dataPoints = other.dataPoints;
51 
52  unsigned int size = dataPoints.size();
53 
54  for (unsigned int i = 0; i < size; ++i){
55  dataPoints[i] *= factor;
56  }
57 
58  }
59 
60  void add(const DataPointType& dataPoint)
61  {
62  dataPoints.push_back(dataPoint);
63  }
64 
65  void clear()
66  {
67  dataPoints.clear();
68  }
69 
70  int getSize() const
71  {
72  return dataPoints.size();
73  }
74 
75  const DataPointType& getVecEntry(int index) const
76  {
77  return dataPoints[index];
78  }
79 
80  DataPointType getOrigo() const
81  {
82  return origo;
83  }
84 
85  void setOrigo(const DataPointType& origoIn)
86  {
87  origo = origoIn;
88  }
89 
90 protected:
91 
92  std::vector<DataPointType> dataPoints;
93  DataPointType origo;
94 };
95 
97 
98 }
99 
100 #endif
void setOrigo(const DataPointType &origoIn)
DataPointContainer< Eigen::Vector2f > DataContainer
DataPointType getOrigo() const
const DataPointType & getVecEntry(int index) const
void setFrom(const DataPointContainer &other, float factor)
void add(const DataPointType &dataPoint)
std::vector< DataPointType > dataPoints


hector_mapping
Author(s): Stefan Kohlbrecher
autogenerated on Sun Nov 3 2019 03:18:33