Visual Servoing Platform  version 3.6.1 under development (2023-10-03)
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 #ifndef vpLaserScan_h
36 #define vpLaserScan_h
37 
45 #include "visp3/sensor/vpScanPoint.h"
46 
47 #include <vector>
48 
61 class VISP_EXPORT vpLaserScan
62 {
63 public:
67  : listScanPoints(), startTimestamp(0), endTimestamp(0), measurementId(0), numSteps(0), startAngle(0), stopAngle(0),
68  numPoints(0)
69  {
70  }
72  vpLaserScan(const vpLaserScan &scan)
73  : listScanPoints(scan.listScanPoints), startTimestamp(0), endTimestamp(0), measurementId(0), numSteps(0),
74  startAngle(0), stopAngle(0), numPoints(0)
75  {
76  startTimestamp = scan.startTimestamp;
77  endTimestamp = scan.endTimestamp;
78  measurementId = scan.measurementId;
79  numSteps = scan.numSteps;
80  startAngle = scan.startAngle;
81  stopAngle = scan.stopAngle;
82  numPoints = scan.numPoints;
83  }
85  virtual ~vpLaserScan(){};
87  inline void addPoint(const vpScanPoint &p) { listScanPoints.push_back(p); }
89  inline void clear() { listScanPoints.clear(); }
91  inline std::vector<vpScanPoint> getScanPoints() { return listScanPoints; }
92 
93 #if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
94  vpLaserScan &operator=(const vpLaserScan &scan) = default;
95 #endif
96 
99  inline void setMeasurementId(const unsigned short &id) { this->measurementId = id; }
101  inline void setStartTimestamp(const double &start_timestamp) { this->startTimestamp = start_timestamp; }
103  inline void setEndTimestamp(const double &end_timestamp) { this->endTimestamp = end_timestamp; }
105  inline void setNumSteps(const unsigned short &num_steps) { this->numSteps = num_steps; }
107  inline void setStartAngle(const short &start_angle) { this->startAngle = start_angle; }
109  inline void setStopAngle(const short &stop_angle) { this->stopAngle = stop_angle; }
111  inline void setNumPoints(const unsigned short &num_points) { this->numPoints = num_points; }
113  inline double getStartTimestamp() { return startTimestamp; }
115  inline double getEndTimestamp() { return endTimestamp; }
116 
117 private:
118  std::vector<vpScanPoint> listScanPoints;
119  double startTimestamp;
120  double endTimestamp;
121  unsigned short measurementId;
122  unsigned short numSteps;
123  short startAngle;
124  short stopAngle;
125  unsigned short numPoints;
126 };
127 
128 #endif
Implements a laser scan data structure that contains especially the list of scanned points that have ...
Definition: vpLaserScan.h:62
void setNumPoints(const unsigned short &num_points)
Definition: vpLaserScan.h:111
void setStopAngle(const short &stop_angle)
Definition: vpLaserScan.h:109
void setMeasurementId(const unsigned short &id)
Definition: vpLaserScan.h:99
void setNumSteps(const unsigned short &num_steps)
Definition: vpLaserScan.h:105
double getStartTimestamp()
Definition: vpLaserScan.h:113
void setStartTimestamp(const double &start_timestamp)
Definition: vpLaserScan.h:101
vpLaserScan & operator=(const vpLaserScan &scan)=default
void addPoint(const vpScanPoint &p)
Definition: vpLaserScan.h:87
void clear()
Definition: vpLaserScan.h:89
vpLaserScan(const vpLaserScan &scan)
Definition: vpLaserScan.h:72
void setEndTimestamp(const double &end_timestamp)
Definition: vpLaserScan.h:103
void setStartAngle(const short &start_angle)
Definition: vpLaserScan.h:107
std::vector< vpScanPoint > getScanPoints()
Definition: vpLaserScan.h:91
virtual ~vpLaserScan()
Definition: vpLaserScan.h:85
double getEndTimestamp()
Definition: vpLaserScan.h:115
Class that defines a single laser scanner point.
Definition: vpScanPoint.h:73