Fields.hpp
Go to the documentation of this file.
1 //
2 // Fields.hpp
3 //
4 // Created on: 30.08.2011
5 // Author: wahnfla
6 //
7 
8 #ifndef FIELDS_HPP
9 #define FIELDS_HPP
10 
11 #include "Polygon2D.hpp"
12 #include <vector>
13 #include "../BasicDatatypes.hpp"
14 #include "FieldDescription.hpp"
15 #include "FieldParameter.hpp"
16 
17 namespace datatypes
18 {
19 
20 
21 
22 //
23 //
24 // *******************************************************************************
25 //
26 //
27 class Fields : public BasicData
28 {
29 public:
30  typedef std::vector<FieldParameter*> FieldVector;
31 
33 
34  virtual ~Fields() {}
35  const UINT32 getUsedMemory() const;
36 
37  void add(FieldParameter* field);
38 
39  const FieldParameter& getField(UINT16 fieldNumber) const;
40 
42 
43  const FieldVector& getFields() const
44  {
45  return m_fields;
46  }
47 
48 private:
49 
51 };
52 
53 //
54 //
55 // *******************************************************************************
56 //
57 // Helper class for a point of a segmented field.
58 // Note that as with all internal data structures, units
59 // should be [rad] and [m].
60 //
62 {
63 public:
64  FieldSegmentedPoint(double angle, double startDist, double endDist) :
65  m_angle(angle),
66  m_startDist(startDist),
67  m_endDist(endDist)
68  {
69  }
71  {
72  m_angle = 0.0;
73  m_startDist = 0.0;
74  m_endDist = 0.0;
75  }
76 
77  double getAngle() const { return m_angle; }
78  double getStartDist() const { return m_startDist; }
79  double getEndDist() const { return m_endDist; }
80  void setAngle(double angle) { m_angle = angle; }
81  void setStartDist(double startDist) { m_startDist = startDist; }
82  void setEndDist(double endDist) { m_endDist = endDist; }
83 
84 private:
85  double m_angle;
86  double m_startDist;
87  double m_endDist;
88 };
89 
90 typedef std::vector<FieldSegmentedPoint> FieldSegmentedPoints;
91 
92 //
93 //
94 // *******************************************************************************
95 //
96 //
98 {
99 public:
101  {
103  }
104 
105  virtual ~FieldSegmented() {}
106 
107  void addPoint(const FieldSegmentedPoint& point)
108  {
109  m_points.push_back(point);
110  }
111 
112  virtual const UINT32 getUsedMemory() const
113  {
114  return sizeof(*this) + (m_points.size() * sizeof(FieldSegmentedPoints));
115  }
116 
118  void computePolygon();
120 
121 private:
123 };
124 
125 //
126 //
127 // *******************************************************************************
128 //
129 //
131 {
132 public:
134  {
136  }
137 
138  virtual ~FieldRectangle()
139  {
140  }
141 
142  virtual const UINT32 getUsedMemory() const
143  {
144  return sizeof(*this);
145  }
146 
147  void computePolygon();
148  double getLength() const;
149  double getRefPointAngle() const;
150  double getRefPointDist() const;
151  double getRotAngle() const;
152  double getWidth() const;
153  void setLength(double length);
154  void setRefPointAngle(double refPointAngle);
155  void setRefPointDist(double refPointDist);
156  void setRotAngle(double rotAngle);
157  void setWidth(double width);
158 
159 private:
161  double m_refPointDist;
162  double m_rotAngle;
163  double m_width;
164  double m_length;
165 };
166 
167 //
168 //
169 // *******************************************************************************
170 //
171 //
173 {
174 public:
175 
177  {
179  }
180 
181  virtual ~FieldRadial()
182  {
183  }
184 
185  virtual const UINT32 getUsedMemory() const
186  {
187  return sizeof(*this);
188  }
189 
190  UINT16 getFirstAngle() const;
191  UINT16 getLastAngle() const;
192  UINT32 getMaxDist() const;
193  UINT32 getMinDist() const;
198 
199  void computePolygon();
200 
201 private:
206 
207 };
208 
209 //
210 //
211 // *******************************************************************************
212 //
213 //
215 {
216 public:
218  {
220  }
221 
222  virtual ~FieldDynamic()
223  {
224  }
225 
226  virtual const UINT32 getUsedMemory() const
227  {
228  return sizeof(*this);
229  }
230 
231  double getMaxLength() const;
232  double getSpeedMax() const;
233  void setMaxLength(double maxLength);
234  void setSpeedMax(double speedMax);
235 
236 private:
237  double m_maxLength;
238  double m_speedMax;
239 };
240 
241 } // namespace datatypes
242 
243 #endif // FIELDS
datatypes::FieldSegmentedPoint::setEndDist
void setEndDist(double endDist)
Definition: Fields.hpp:82
Polygon2D.hpp
UINT16
uint16_t UINT16
Definition: BasicDatatypes.hpp:27
datatypes::FieldRectangle::m_refPointDist
double m_refPointDist
[m]
Definition: Fields.hpp:161
datatypes::FieldRectangle::getRefPointDist
double getRefPointDist() const
Definition: Fields.cpp:108
datatypes::FieldRadial::m_maxDist
UINT32 m_maxDist
[mm]
Definition: Fields.hpp:205
datatypes::Fields::m_fields
FieldVector m_fields
Definition: Fields.hpp:50
datatypes::Fields
Definition: Fields.hpp:27
datatypes::FieldSegmented::addPoint
void addPoint(const FieldSegmentedPoint &point)
Definition: Fields.hpp:107
datatypes::FieldDynamic::~FieldDynamic
virtual ~FieldDynamic()
Definition: Fields.hpp:222
datatypes::FieldSegmentedPoint
Definition: Fields.hpp:61
datatypes::FieldSegmentedPoint::m_startDist
double m_startDist
[m]
Definition: Fields.hpp:86
datatypes::FieldSegmentedPoint::getEndDist
double getEndDist() const
Definition: Fields.hpp:79
datatypes::FieldSegmented::~FieldSegmented
virtual ~FieldSegmented()
Definition: Fields.hpp:105
datatypes::FieldRadial::setLastAngle
void setLastAngle(UINT16 m_lastAngle)
Definition: Fields.cpp:210
datatypes::FieldRectangle::getRefPointAngle
double getRefPointAngle() const
Definition: Fields.cpp:103
datatypes::FieldRadial::getMaxDist
UINT32 getMaxDist() const
Definition: Fields.cpp:195
datatypes::FieldRectangle::m_refPointAngle
double m_refPointAngle
[rad]
Definition: Fields.hpp:160
datatypes::FieldDescription
Definition: FieldDescription.hpp:21
datatypes::FieldRectangle::getRotAngle
double getRotAngle() const
Definition: Fields.cpp:113
datatypes::FieldRectangle::m_rotAngle
double m_rotAngle
[rad]
Definition: Fields.hpp:162
datatypes::FieldSegmentedPoint::FieldSegmentedPoint
FieldSegmentedPoint(double angle, double startDist, double endDist)
Definition: Fields.hpp:64
datatypes::FieldDynamic::m_maxLength
double m_maxLength
[m] extension at maximum speed to direction of RotAngle+90° relative to DistScale
Definition: Fields.hpp:237
datatypes::FieldRadial::getFirstAngle
UINT16 getFirstAngle() const
Definition: Fields.cpp:185
datatypes::FieldRadial::setMaxDist
void setMaxDist(UINT32 m_maxDist)
Definition: Fields.cpp:215
datatypes::Fields::FieldVector
std::vector< FieldParameter * > FieldVector
Definition: Fields.hpp:30
datatypes::FieldRadial::m_firstAngle
UINT16 m_firstAngle
index of start angle relative to AngleScale
Definition: Fields.hpp:202
datatypes::FieldSegmentedPoint::getAngle
double getAngle() const
Definition: Fields.hpp:77
datatypes::FieldSegmented::computePolygon
void computePolygon()
fills the polygon clockwise
Definition: Fields.cpp:20
datatypes::FieldRectangle::~FieldRectangle
virtual ~FieldRectangle()
Definition: Fields.hpp:138
datatypes::BasicData::m_datatype
UINT16 m_datatype
Definition: BasicDatatypes.hpp:107
datatypes::BasicData
Definition: BasicDatatypes.hpp:95
datatypes::FieldDescription::m_fieldType
FieldType m_fieldType
Definition: FieldDescription.hpp:49
datatypes::FieldSegmentedPoint::FieldSegmentedPoint
FieldSegmentedPoint()
Definition: Fields.hpp:70
datatypes::Fields::~Fields
virtual ~Fields()
Definition: Fields.hpp:34
datatypes::FieldRadial::computePolygon
void computePolygon()
Definition: Fields.cpp:179
datatypes::FieldRectangle::getWidth
double getWidth() const
Definition: Fields.cpp:118
datatypes::FieldDynamic::getSpeedMax
double getSpeedMax() const
Definition: Fields.cpp:235
datatypes::FieldRadial::getMinDist
UINT32 getMinDist() const
Definition: Fields.cpp:200
datatypes::FieldSegmented::getNumberOfPoints
UINT32 getNumberOfPoints()
Definition: Fields.cpp:63
datatypes::FieldRadial
Definition: Fields.hpp:172
datatypes::FieldRectangle::setRefPointAngle
void setRefPointAngle(double refPointAngle)
Definition: Fields.cpp:138
datatypes::FieldRectangle::FieldRectangle
FieldRectangle()
Definition: Fields.hpp:133
datatypes::FieldDynamic::m_speedMax
double m_speedMax
[m/s]
Definition: Fields.hpp:238
FieldParameter.hpp
datatypes::FieldRectangle::setRotAngle
void setRotAngle(double rotAngle)
Definition: Fields.cpp:152
datatypes::FieldRectangle::setRefPointDist
void setRefPointDist(double refPointDist)
Definition: Fields.cpp:143
datatypes::FieldSegmentedPoint::setStartDist
void setStartDist(double startDist)
Definition: Fields.hpp:81
datatypes::FieldRadial::getUsedMemory
virtual const UINT32 getUsedMemory() const
Definition: Fields.hpp:185
datatypes::Fields::getUsedMemory
const UINT32 getUsedMemory() const
Definition: Fields.cpp:283
datatypes::FieldParameter
Definition: FieldParameter.hpp:24
datatypes::FieldSegmentedPoint::m_angle
double m_angle
[rad]
Definition: Fields.hpp:85
datatypes::FieldDescription::Dynamic
@ Dynamic
Definition: FieldDescription.hpp:30
datatypes::FieldRadial::m_minDist
UINT32 m_minDist
[mm]
Definition: Fields.hpp:204
datatypes::FieldRadial::setFirstAngle
void setFirstAngle(UINT16 m_firstAngle)
Definition: Fields.cpp:205
datatypes::FieldRectangle
Definition: Fields.hpp:130
datatypes::FieldRectangle::m_length
double m_length
[m]
Definition: Fields.hpp:164
datatypes::FieldRectangle::setWidth
void setWidth(double width)
Definition: Fields.cpp:163
datatypes::FieldRadial::FieldRadial
FieldRadial()
Definition: Fields.hpp:176
datatypes::FieldSegmented::getUsedMemory
virtual const UINT32 getUsedMemory() const
Definition: Fields.hpp:112
datatypes::FieldDynamic::FieldDynamic
FieldDynamic()
Definition: Fields.hpp:217
datatypes::FieldDynamic::getUsedMemory
virtual const UINT32 getUsedMemory() const
Definition: Fields.hpp:226
datatypes::FieldSegmentedPoint::setAngle
void setAngle(double angle)
Definition: Fields.hpp:80
Datatype_Fields
@ Datatype_Fields
Definition: BasicDatatypes.hpp:69
datatypes::FieldSegmentedPoints
std::vector< FieldSegmentedPoint > FieldSegmentedPoints
Definition: Fields.hpp:90
datatypes::FieldDynamic
Definition: Fields.hpp:214
datatypes::FieldRadial::~FieldRadial
virtual ~FieldRadial()
Definition: Fields.hpp:181
datatypes::FieldRectangle::getLength
double getLength() const
Definition: Fields.cpp:98
datatypes::FieldSegmented::FieldSegmented
FieldSegmented()
Definition: Fields.hpp:100
datatypes::FieldDynamic::setMaxLength
void setMaxLength(double maxLength)
Definition: Fields.cpp:240
datatypes::Fields::add
void add(FieldParameter *field)
Definition: Fields.cpp:278
datatypes::FieldDescription::Radial
@ Radial
Definition: FieldDescription.hpp:29
datatypes::FieldDynamic::setSpeedMax
void setSpeedMax(double speedMax)
Definition: Fields.cpp:245
datatypes::Fields::getNumberOfValidFields
UINT16 getNumberOfValidFields()
Definition: Fields.cpp:298
datatypes::Fields::Fields
Fields()
Definition: Fields.hpp:32
datatypes::FieldDynamic::getMaxLength
double getMaxLength() const
Definition: Fields.cpp:230
datatypes::FieldSegmented
Definition: Fields.hpp:97
datatypes::FieldRectangle::m_width
double m_width
[m]
Definition: Fields.hpp:163
datatypes::Fields::getField
const FieldParameter & getField(UINT16 fieldNumber) const
Definition: Fields.cpp:254
datatypes::FieldSegmented::getPoints
FieldSegmentedPoints getPoints()
Definition: Fields.cpp:71
datatypes::FieldRadial::getLastAngle
UINT16 getLastAngle() const
Definition: Fields.cpp:190
UINT32
uint32_t UINT32
Definition: BasicDatatypes.hpp:26
datatypes::FieldSegmentedPoint::getStartDist
double getStartDist() const
Definition: Fields.hpp:78
FieldDescription.hpp
datatypes::FieldRadial::m_lastAngle
UINT16 m_lastAngle
index of last angle relative to AngleScale
Definition: Fields.hpp:203
datatypes::FieldRectangle::getUsedMemory
virtual const UINT32 getUsedMemory() const
Definition: Fields.hpp:142
datatypes::Fields::getFields
const FieldVector & getFields() const
Definition: Fields.hpp:43
datatypes::FieldDescription::Rectangle
@ Rectangle
Definition: FieldDescription.hpp:28
datatypes::FieldDescription::Segmented
@ Segmented
Definition: FieldDescription.hpp:27
datatypes::FieldRadial::setMinDist
void setMinDist(UINT32 m_minDist)
Definition: Fields.cpp:220
datatypes::FieldSegmentedPoint::m_endDist
double m_endDist
[m]
Definition: Fields.hpp:87
datatypes::FieldSegmented::m_points
FieldSegmentedPoints m_points
Definition: Fields.hpp:122
datatypes::FieldRectangle::computePolygon
void computePolygon()
fills the polygon clockwise
Definition: Fields.cpp:82
datatypes
Definition: BasicDatatypes.hpp:91
datatypes::FieldRectangle::setLength
void setLength(double length)
Definition: Fields.cpp:126


libsick_ldmrs
Author(s): SICK AG , Martin Günther , Jochen Sprickerhof
autogenerated on Wed Oct 26 2022 02:11:57