Visual Servoing Platform  version 3.4.1 under development (2021-12-05)
vpLaserScan.h
1 /****************************************************************************
2  *
3  * ViSP, open source Visual Servoing Platform software.
4  * Copyright (C) 2005 - 2019 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 http://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  * Authors:
35  * Fabien Spindler
36  *
37  *****************************************************************************/
38 #ifndef vpLaserScan_h
39 #define vpLaserScan_h
40 
48 #include "visp3/sensor/vpScanPoint.h"
49 
50 #include <vector>
51 
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  {
73  }
75  vpLaserScan(const vpLaserScan &scan)
76  : listScanPoints(scan.listScanPoints), startTimestamp(0), endTimestamp(0), measurementId(0), numSteps(0),
77  startAngle(0), stopAngle(0), numPoints(0)
78  {
79  startTimestamp = scan.startTimestamp;
80  endTimestamp = scan.endTimestamp;
81  measurementId = scan.measurementId;
82  numSteps = scan.numSteps;
83  startAngle = scan.startAngle;
84  stopAngle = scan.stopAngle;
85  numPoints = scan.numPoints;
86  }
88  virtual ~vpLaserScan(){};
90  inline void addPoint(const vpScanPoint &p) { listScanPoints.push_back(p); }
92  inline void clear() { listScanPoints.clear(); }
94  inline std::vector<vpScanPoint> getScanPoints() { return listScanPoints; }
95 
96 #if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
97  vpLaserScan &operator=(const vpLaserScan &scan) = default;
98 #endif
99 
102  inline void setMeasurementId(const unsigned short &id) { this->measurementId = id; }
104  inline void setStartTimestamp(const double &start_timestamp) { this->startTimestamp = start_timestamp; }
106  inline void setEndTimestamp(const double &end_timestamp) { this->endTimestamp = end_timestamp; }
108  inline void setNumSteps(const unsigned short &num_steps) { this->numSteps = num_steps; }
110  inline void setStartAngle(const short &start_angle) { this->startAngle = start_angle; }
112  inline void setStopAngle(const short &stop_angle) { this->stopAngle = stop_angle; }
114  inline void setNumPoints(const unsigned short &num_points) { this->numPoints = num_points; }
116  inline double getStartTimestamp() { return startTimestamp; }
118  inline double getEndTimestamp() { return endTimestamp; }
119 
120 private:
121  std::vector<vpScanPoint> listScanPoints;
122  double startTimestamp;
123  double endTimestamp;
124  unsigned short measurementId;
125  unsigned short numSteps;
126  short startAngle;
127  short stopAngle;
128  unsigned short numPoints;
129 };
130 
131 #endif
std::vector< vpScanPoint > getScanPoints()
Definition: vpLaserScan.h:94
Implements a laser scan data structure that contains especially the list of scanned points that have ...
Definition: vpLaserScan.h:64
void clear()
Definition: vpLaserScan.h:92
Class that defines a single laser scanner point.
Definition: vpScanPoint.h:73
void setStartAngle(const short &start_angle)
Definition: vpLaserScan.h:110
void setNumPoints(const unsigned short &num_points)
Definition: vpLaserScan.h:114
virtual ~vpLaserScan()
Definition: vpLaserScan.h:88
double getStartTimestamp()
Definition: vpLaserScan.h:116
void setEndTimestamp(const double &end_timestamp)
Definition: vpLaserScan.h:106
void setNumSteps(const unsigned short &num_steps)
Definition: vpLaserScan.h:108
void addPoint(const vpScanPoint &p)
Definition: vpLaserScan.h:90
void setStartTimestamp(const double &start_timestamp)
Definition: vpLaserScan.h:104
void setMeasurementId(const unsigned short &id)
Definition: vpLaserScan.h:102
vpLaserScan(const vpLaserScan &scan)
Definition: vpLaserScan.h:75
void setStopAngle(const short &stop_angle)
Definition: vpLaserScan.h:112
double getEndTimestamp()
Definition: vpLaserScan.h:118