Visual Servoing Platform  version 3.6.1 under development (2024-03-18)
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  { }
71  vpLaserScan(const vpLaserScan &scan)
72  : listScanPoints(scan.listScanPoints), startTimestamp(0), endTimestamp(0), measurementId(0), numSteps(0),
73  startAngle(0), stopAngle(0), numPoints(0)
74  {
75  startTimestamp = scan.startTimestamp;
76  endTimestamp = scan.endTimestamp;
77  measurementId = scan.measurementId;
78  numSteps = scan.numSteps;
79  startAngle = scan.startAngle;
80  stopAngle = scan.stopAngle;
81  numPoints = scan.numPoints;
82  }
84  virtual ~vpLaserScan() { };
86  inline void addPoint(const vpScanPoint &p) { listScanPoints.push_back(p); }
88  inline void clear() { listScanPoints.clear(); }
90  inline std::vector<vpScanPoint> getScanPoints() { return listScanPoints; }
91 
92 #if VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11
93  vpLaserScan &operator=(const vpLaserScan &scan) = default;
94 #endif
95 
97  inline void setMeasurementId(const unsigned short &id) { this->measurementId = id; }
99  inline void setStartTimestamp(const double &start_timestamp) { this->startTimestamp = start_timestamp; }
101  inline void setEndTimestamp(const double &end_timestamp) { this->endTimestamp = end_timestamp; }
103  inline void setNumSteps(const unsigned short &num_steps) { this->numSteps = num_steps; }
105  inline void setStartAngle(const short &start_angle) { this->startAngle = start_angle; }
107  inline void setStopAngle(const short &stop_angle) { this->stopAngle = stop_angle; }
109  inline void setNumPoints(const unsigned short &num_points) { this->numPoints = num_points; }
111  inline double getStartTimestamp() { return startTimestamp; }
113  inline double getEndTimestamp() { return endTimestamp; }
114 
115 private:
116  std::vector<vpScanPoint> listScanPoints;
117  double startTimestamp;
118  double endTimestamp;
119  unsigned short measurementId;
120  unsigned short numSteps;
121  short startAngle;
122  short stopAngle;
123  unsigned short numPoints;
124 };
125 
126 #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:109
void setStopAngle(const short &stop_angle)
Definition: vpLaserScan.h:107
void setMeasurementId(const unsigned short &id)
Definition: vpLaserScan.h:97
void setNumSteps(const unsigned short &num_steps)
Definition: vpLaserScan.h:103
double getStartTimestamp()
Definition: vpLaserScan.h:111
void setStartTimestamp(const double &start_timestamp)
Definition: vpLaserScan.h:99
vpLaserScan & operator=(const vpLaserScan &scan)=default
void addPoint(const vpScanPoint &p)
Definition: vpLaserScan.h:86
void clear()
Definition: vpLaserScan.h:88
vpLaserScan(const vpLaserScan &scan)
Definition: vpLaserScan.h:71
void setEndTimestamp(const double &end_timestamp)
Definition: vpLaserScan.h:101
void setStartAngle(const short &start_angle)
Definition: vpLaserScan.h:105
std::vector< vpScanPoint > getScanPoints()
Definition: vpLaserScan.h:90
virtual ~vpLaserScan()
Definition: vpLaserScan.h:84
double getEndTimestamp()
Definition: vpLaserScan.h:113
Class that defines a single laser scanner point.
Definition: vpScanPoint.h:73