Visual Servoing Platform  version 3.1.0
vpLaserScan.h
1 /****************************************************************************
2  *
3  * This file is part of the ViSP software.
4  * Copyright (C) 2005 - 2017 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; }
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
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:105
void setNumPoints(const unsigned short &num_points)
Definition: vpLaserScan.h:109
virtual ~vpLaserScan()
Definition: vpLaserScan.h:88
double getStartTimestamp()
Definition: vpLaserScan.h:111
void setEndTimestamp(const double &end_timestamp)
Definition: vpLaserScan.h:101
void setNumSteps(const unsigned short &num_steps)
Definition: vpLaserScan.h:103
void addPoint(const vpScanPoint &p)
Definition: vpLaserScan.h:90
void setStartTimestamp(const double &start_timestamp)
Definition: vpLaserScan.h:99
void setMeasurementId(const unsigned short &id)
Definition: vpLaserScan.h:97
vpLaserScan(const vpLaserScan &scan)
Definition: vpLaserScan.h:75
void setStopAngle(const short &stop_angle)
Definition: vpLaserScan.h:107
double getEndTimestamp()
Definition: vpLaserScan.h:113