Main MRPT website
>
C++ reference
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
mrpt
slam
CSinCosLookUpTableFor2DScans.h
Go to the documentation of this file.
1
/* +---------------------------------------------------------------------------+
2
| The Mobile Robot Programming Toolkit (MRPT) C++ library |
3
| |
4
| http://www.mrpt.org/ |
5
| |
6
| Copyright (C) 2005-2012 University of Malaga |
7
| |
8
| This software was written by the Machine Perception and Intelligent |
9
| Robotics Lab, University of Malaga (Spain). |
10
| Contact: Jose-Luis Blanco <jlblanco@ctima.uma.es> |
11
| |
12
| This file is part of the MRPT project. |
13
| |
14
| MRPT is free software: you can redistribute it and/or modify |
15
| it under the terms of the GNU General Public License as published by |
16
| the Free Software Foundation, either version 3 of the License, or |
17
| (at your option) any later version. |
18
| |
19
| MRPT is distributed in the hope that it will be useful, |
20
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
21
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
22
| GNU General Public License for more details. |
23
| |
24
| You should have received a copy of the GNU General Public License |
25
| along with MRPT. If not, see <http://www.gnu.org/licenses/>. |
26
| |
27
+---------------------------------------------------------------------------+ */
28
#ifndef CSinCosLookUpTableFor2DScans_H
29
#define CSinCosLookUpTableFor2DScans_H
30
31
#include <
mrpt/slam/CObservation2DRangeScan.h
>
32
33
namespace
mrpt
34
{
35
namespace
slam
36
{
37
/** A smart look-up-table (LUT) of sin/cos values for 2D laser scans.
38
* Refer to the main method CSinCosLookUpTableFor2DScans::getSinCosForScan()
39
*
40
* This class is used in mrpt::slam::CPointsMap
41
* \ingroup mrpt_obs_grp
42
*/
43
class
OBS_IMPEXP
CSinCosLookUpTableFor2DScans
44
{
45
public
:
46
/** A pair of vectors with the cos and sin values. */
47
struct
TSinCosValues
{
48
mrpt::vector_float
ccos,
csin
;
49
};
50
51
/** Return two vectors with the cos and the sin of the angles for each of the
52
* rays in a scan, computing them only the first time and returning a cached copy the rest.
53
* Usage:
54
* \code
55
* CSinCosLookUpTableFor2DScans cache;
56
* ...
57
* const CSinCosLookUpTableFor2DScans::TSinCosValues & sincos_vals = cache.getSinCosForScan( scan );
58
* \endcode
59
*/
60
const
TSinCosValues
& getSinCosForScan(
const
CObservation2DRangeScan
&scan);
61
62
private
:
63
std::map<T2DScanProperties,TSinCosValues>
m_cache
;
//!< The cache of known scans and their sin/cos tables.
64
};
65
66
67
}
// end NS slam
68
}
// end NS mrpt
69
70
#endif
Page generated by
Doxygen 1.8.3
for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013