MapDimensionProperties.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 __MapDimensionProperties_h_
30 #define __MapDimensionProperties_h_
31 
33 {
34 public:
36  : topLeftOffset(-1.0f,-1.0f)
37  , mapDimensions(-1,-1)
38  , cellLength(-1.0f)
39  {}
40 
41 
42  MapDimensionProperties(const Eigen::Vector2f& topLeftOffsetIn, const Eigen::Vector2i& mapDimensionsIn, float cellLengthIn)
43  : topLeftOffset(topLeftOffsetIn)
44  , mapDimensions(mapDimensionsIn)
45  , cellLength(cellLengthIn)
46  {
47  mapLimitsf = (mapDimensionsIn.cast<float>()).array() - 1.0f;
48  }
49 
50  bool operator==(const MapDimensionProperties& other) const
51  {
52  return (topLeftOffset == other.topLeftOffset) && (mapDimensions == other.mapDimensions) && (cellLength == other.cellLength);
53  }
54 
56  {
57  return (mapDimensions == other.mapDimensions);
58  }
59 
61  {
62  return (topLeftOffset == other.topLeftOffset) && (cellLength == other.cellLength);
63  }
64 
65  bool pointOutOfMapBounds(const Eigen::Vector2f& coords) const
66  {
67  return ((coords[0] < 0.0f) || (coords[0] > mapLimitsf[0]) || (coords[1] < 0.0f) || (coords[1] > mapLimitsf[1]));
68  }
69 
70  void setMapCellDims(const Eigen::Vector2i& newDims)
71  {
72  mapDimensions = newDims;
73  mapLimitsf = (newDims.cast<float>()).array() - 2.0f;
74  }
75 
76  void setTopLeftOffset(const Eigen::Vector2f& topLeftOffsetIn)
77  {
78  topLeftOffset = topLeftOffsetIn;
79  }
80 
81  void setSizeX(int sX) { mapDimensions[0] = sX; };
82  void setSizeY(int sY) { mapDimensions[1] = sY; };
83  void setCellLength(float cl) { cellLength = cl; };
84 
85  const Eigen::Vector2f& getTopLeftOffset() const { return topLeftOffset; };
86  const Eigen::Vector2i& getMapDimensions() const { return mapDimensions; };
87  int getSizeX() const { return mapDimensions[0]; };
88  int getSizeY() const { return mapDimensions[1]; };
89  float getCellLength() const { return cellLength; };
90 
91 protected:
92  Eigen::Vector2f topLeftOffset;
93  Eigen::Vector2i mapDimensions;
94  Eigen::Vector2f mapLimitsf;
95  float cellLength;
96 };
97 
98 #endif
99 
100 
const Eigen::Vector2i & getMapDimensions() const
void setMapCellDims(const Eigen::Vector2i &newDims)
f
bool operator==(const MapDimensionProperties &other) const
bool hasEqualDimensionProperties(const MapDimensionProperties &other) const
bool pointOutOfMapBounds(const Eigen::Vector2f &coords) const
const Eigen::Vector2f & getTopLeftOffset() const
void setTopLeftOffset(const Eigen::Vector2f &topLeftOffsetIn)
bool hasEqualTransformationProperties(const MapDimensionProperties &other) const
MapDimensionProperties(const Eigen::Vector2f &topLeftOffsetIn, const Eigen::Vector2i &mapDimensionsIn, float cellLengthIn)


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