OverSim
SimpleCoordDataContainer.cc
Go to the documentation of this file.
1 //
2 // Copyright (C) 2010 Institut fuer Telematik, Universitaet Karlsruhe (TH)
3 //
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 //
18 
25 
27  // TODO Auto-generated constructor stub
28 
29 }
30 
32  // TODO Auto-generated destructor stub
33 }
34 
36  int size = 0;
37 
38  simpleCoordCountMap::const_iterator coordIterator = coordData.begin();
39  size += sizeof(coordData);
40 
41  while(coordIterator != coordData.end()) {
42  size += sizeof(coordIterator->first);
43  size += sizeof(coordIterator->second);
44 
45  coordIterator++;
46  }
47 
48  return (size*8);
49 }
50 
51 
52 
54  // TODO Auto-generated constructor stub
55 
56 }
57 
59  // TODO Auto-generated destructor stub
60 }
61 
62 int SimpleCoordinate::compareTo(const SimpleCoordinate& compSimpleCoordinate) const {
63 
64  std::vector<int> compCoord = compSimpleCoordinate.coordData;
65 
66  if(coordData.size() != compCoord.size()) {
67  throw std::exception();
68  }
69 
70  for(unsigned int i = 0; i < coordData.size(); i++) {
71  if(coordData[i] < compCoord[i]) return -1;
72  if(coordData[i] > compCoord[i]) return 1;
73  }
74 
75  return 0;
76 }
77 
78 size_t SimpleCoordinate::hash() const {
79 
80  long hashValue = 0;
81 
82  for(unsigned int i = 0; i < coordData.size(); i++) {
83  hashValue += pow(coordData[i],i);
84  }
85 
86  return (size_t)hashValue;
87 }
88 
89 bool SimpleCoordinate::operator< ( const SimpleCoordinate& compSimpleCoordinate ) const {
90  return compareTo(compSimpleCoordinate) == -1;
91 }
92 
93 bool SimpleCoordinate::operator> ( const SimpleCoordinate& compSimpleCoordinate ) const {
94  return compareTo(compSimpleCoordinate) == 1;
95 }
96 
97 bool SimpleCoordinate::operator== ( const SimpleCoordinate& compSimpleCoordinate ) const {
98  return compareTo(compSimpleCoordinate) == 0;
99 }