Visual Servoing Platform  version 3.6.1 under development (2024-11-15)
vpLaserScan.h
1 /****************************************************************************
2  *
3  * ViSP, open source Visual Servoing Platform software.
4  * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  * See the file LICENSE.txt at the root directory of this source
11  * distribution for additional information about the GNU GPL.
12  *
13  * For using ViSP with software that can not be combined with the GNU
14  * GPL, please contact Inria about acquiring a ViSP Professional
15  * Edition License.
16  *
17  * See https://visp.inria.fr for more information.
18  *
19  * This software was developed at:
20  * Inria Rennes - Bretagne Atlantique
21  * Campus Universitaire de Beaulieu
22  * 35042 Rennes Cedex
23  * France
24  *
25  * If you have questions regarding the use of this file, please contact
26  * Inria at visp@inria.fr
27  *
28  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30  *
31  * Description:
32  * Laser scan data structure.
33  *
34 *****************************************************************************/
35 
43 #ifndef vpLaserScan_h
44 #define vpLaserScan_h
45 
46 #include <visp3/core/vpConfig.h>
47 #include "visp3/sensor/vpScanPoint.h"
48 
49 #include <vector>
50 
51 BEGIN_VISP_NAMESPACE
64 class /*VISP_EXPORT*/ vpLaserScan
65 {
66 public:
70  : listScanPoints(), startTimestamp(0), endTimestamp(0), measurementId(0), numSteps(0), startAngle(0), stopAngle(0),
71  numPoints(0)
72  { }
74  vpLaserScan(const vpLaserScan &scan)
75  : listScanPoints(scan.listScanPoints), startTimestamp(0), endTimestamp(0), measurementId(0), numSteps(0),
76  startAngle(0), stopAngle(0), numPoints(0)
77  {
78  startTimestamp = scan.startTimestamp;
79  endTimestamp = scan.endTimestamp;
80  measurementId = scan.measurementId;
81  numSteps = scan.numSteps;
82  startAngle = scan.startAngle;
83  stopAngle = scan.stopAngle;
84  numPoints = scan.numPoints;
85  }
87  virtual ~vpLaserScan() { };
89  inline void addPoint(const vpScanPoint &p) { listScanPoints.push_back(p); }
91  inline void clear() { listScanPoints.clear(); }
93  inline std::vector<vpScanPoint> getScanPoints() { return listScanPoints; }
94 
95 #if VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11
96  vpLaserScan &operator=(const vpLaserScan &) = default;
97 #endif
98 
100  inline void setMeasurementId(const unsigned short &id) { this->measurementId = id; }
102  inline void setStartTimestamp(const double &start_timestamp) { this->startTimestamp = start_timestamp; }
104  inline void setEndTimestamp(const double &end_timestamp) { this->endTimestamp = end_timestamp; }
106  inline void setNumSteps(const unsigned short &num_steps) { this->numSteps = num_steps; }
108  inline void setStartAngle(const short &start_angle) { this->startAngle = start_angle; }
110  inline void setStopAngle(const short &stop_angle) { this->stopAngle = stop_angle; }
112  inline void setNumPoints(const unsigned short &num_points) { this->numPoints = num_points; }
114  inline double getStartTimestamp() { return startTimestamp; }
116  inline double getEndTimestamp() { return endTimestamp; }
117 
118 private:
119  std::vector<vpScanPoint> listScanPoints;
120  double startTimestamp;
121  double endTimestamp;
122  unsigned short measurementId;
123  unsigned short numSteps;
124  short startAngle;
125  short stopAngle;
126  unsigned short numPoints;
127 };
128 END_VISP_NAMESPACE
129 #endif
Implements a laser scan data structure that contains especially the list of scanned points that have ...
Definition: vpLaserScan.h:65
void setNumPoints(const unsigned short &num_points)
Definition: vpLaserScan.h:112
void setStopAngle(const short &stop_angle)
Definition: vpLaserScan.h:110
void setMeasurementId(const unsigned short &id)
Definition: vpLaserScan.h:100
void setNumSteps(const unsigned short &num_steps)
Definition: vpLaserScan.h:106
double getStartTimestamp()
Definition: vpLaserScan.h:114
void setStartTimestamp(const double &start_timestamp)
Definition: vpLaserScan.h:102
void addPoint(const vpScanPoint &p)
Definition: vpLaserScan.h:89
void clear()
Definition: vpLaserScan.h:91
vpLaserScan(const vpLaserScan &scan)
Definition: vpLaserScan.h:74
void setEndTimestamp(const double &end_timestamp)
Definition: vpLaserScan.h:104
void setStartAngle(const short &start_angle)
Definition: vpLaserScan.h:108
vpLaserScan & operator=(const vpLaserScan &)=default
std::vector< vpScanPoint > getScanPoints()
Definition: vpLaserScan.h:93
virtual ~vpLaserScan()
Definition: vpLaserScan.h:87
double getEndTimestamp()
Definition: vpLaserScan.h:116
Class that defines a single laser scanner point.
Definition: vpScanPoint.h:76