class mrpt::obs::CSinCosLookUpTableFor2DScans

Overview

A smart look-up-table (LUT) of sin/cos values for 2D laser scans.

Refer to the main method CSinCosLookUpTableFor2DScans::getSinCosForScan()

This class is used in mrpt::maps::CPointsMap

#include <mrpt/obs/CSinCosLookUpTableFor2DScans.h>

class CSinCosLookUpTableFor2DScans
{
public:
    // structs

    struct TSinCosValues;

    // construction

    CSinCosLookUpTableFor2DScans();
    CSinCosLookUpTableFor2DScans(const CSinCosLookUpTableFor2DScans&);

    // methods

    CSinCosLookUpTableFor2DScans& operator = (const CSinCosLookUpTableFor2DScans&);
    const TSinCosValues& getSinCosForScan(const CObservation2DRangeScan& scan) const;
    const TSinCosValues& getSinCosForScan(const T2DScanProperties& scan_prop) const;
};

Construction

CSinCosLookUpTableFor2DScans(const CSinCosLookUpTableFor2DScans&)

Do NOT copy neither the cache nor the mutex.

Methods

const TSinCosValues& getSinCosForScan(const CObservation2DRangeScan& scan) const

Return two vectors with the cos and the sin of the angles for each of the rays in a scan, computing them only the first time and returning a cached copy the rest.

Usage:

  CSinCosLookUpTableFor2DScans cache;
  ...
  const CSinCosLookUpTableFor2DScans::TSinCosValues & sincos_vals =
cache.getSinCosForScan( scan );
const TSinCosValues& getSinCosForScan(const T2DScanProperties& scan_prop) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Return two vectors with the cos and the sin of the angles for each of the rays in a scan, computing them only the first time and returning a cached copy the rest.