snark
get_laser_return.h
1 // This file is part of snark, a generic and flexible library
2 // for robotics research.
3 //
4 // Copyright (C) 2011 The University of Sydney
5 //
6 // snark is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 3 of the License, or (at your option) any later version.
10 //
11 // snark is distributed in the hope that it will be useful, but WITHOUT ANY
12 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
14 // for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with snark. If not, see <http://www.gnu.org/licenses/>.
18 
19 #ifndef SNARK_SENSORS_VELODYNE_IMPL_GETLASERRETURN_H_
20 #define SNARK_SENSORS_VELODYNE_IMPL_GETLASERRETURN_H_
21 
22 #include <boost/date_time/posix_time/posix_time.hpp>
23 #include <snark/sensors/velodyne/db.h>
24 #include <snark/sensors/velodyne/laser_return.h>
25 #include <snark/sensors/velodyne/packet.h>
26 
27 namespace snark { namespace velodyne { namespace impl {
28 
29 laser_return getlaser_return( const packet& packet
30  , unsigned int block
31  , unsigned int laser
32  , const boost::posix_time::ptime& timestamp
33  , double angularSpeed
34  , bool raw = false );
35 
36 boost::posix_time::time_duration time_offset( unsigned int block, unsigned int laser );
37 
38 double azimuth( const packet& packet, unsigned int block, unsigned int laser, double angularSpeed );
39 
40 double azimuth( double rotation, unsigned int laser, double angularSpeed );
41 
42 } } } // namespace snark { namespace velodyne { namespace impl {
43 
44 #endif // SNARK_SENSORS_VELODYNE_IMPL_GETFROMLASERRETURN_H_