A (persistent) sequence of (x,y) coordinates, allowing queries of intermediate points through spline interpolation, where possible.
This class internally relies on mrpt::math::spline. Optionally the y coordinate can be set as wrapped in ]-pi,pi]. For querying interpolated points, see \ sa mrpt::math::spline, mrpt::poses::CPose3DInterpolator
Definition at line 29 of file CSplineInterpolator1D.h.
#include <mrpt/math/CSplineInterpolator1D.h>
Public Member Functions | |
template<class VECTOR > | |
CSplineInterpolator1D (const VECTOR &initial_x, const VECTOR &initial_y, bool wrap2pi=false) | |
Constructor with optional initial values. | |
CSplineInterpolator1D (bool wrap2pi=false) | |
Constructor. | |
void | setWrap2pi (bool wrap) |
If set to true, the interpolated data will be wrapped to ]-pi,pi]. | |
bool | getWrap2pi () |
Return the wrap property. | |
template<class VECTOR > | |
void | setXY (const VECTOR &x, const VECTOR &y, bool clearPreviousContent=true) |
Set all the data at once . | |
void | appendXY (double x, double y) |
Append a new point: | |
void | clear () |
Clears all stored points. | |
double & | query (double x, double &y, bool &out_valid) const |
Query an interpolation of the curve at some "x". | |
template<class VECTOR1 , class VECTOR2 > | |
bool | queryVector (const VECTOR1 &x, VECTOR2 &out_y) const |
As query, but for a whole vector at once. | |
Protected Member Functions | |
CSerializable virtual methods | |
void | writeToStream (mrpt::utils::CStream &out, int *getVersion) const MRPT_OVERRIDE |
void | readFromStream (mrpt::utils::CStream &in, int version) MRPT_OVERRIDE |
Private Attributes | |
std::map< double, double > | m_x2y |
The placeholders for the data. | |
bool | m_wrap2pi |
Whether to wrap "y". | |
RTTI stuff <br> | |
typedef CSplineInterpolator1DPtr | SmartPtr |
static mrpt::utils::CLASSINIT | _init_CSplineInterpolator1D |
static mrpt::utils::TRuntimeClassId | classCSplineInterpolator1D |
static const mrpt::utils::TRuntimeClassId * | classinfo |
static const mrpt::utils::TRuntimeClassId * | _GetBaseClass () |
virtual const mrpt::utils::TRuntimeClassId * | GetRuntimeClass () const MRPT_OVERRIDE |
virtual mrpt::utils::CObject * | duplicate () const MRPT_OVERRIDE |
static mrpt::utils::CObject * | CreateObject () |
static CSplineInterpolator1DPtr | Create () |
A typedef for the associated smart pointer
Definition at line 32 of file CSplineInterpolator1D.h.
|
inline |
Constructor with optional initial values.
Definition at line 43 of file CSplineInterpolator1D.h.
mrpt::math::CSplineInterpolator1D::CSplineInterpolator1D | ( | bool | wrap2pi = false | ) |
Constructor.
|
staticprotected |
void mrpt::math::CSplineInterpolator1D::appendXY | ( | double | x, |
double | y | ||
) |
Append a new point:
|
inline |
Clears all stored points.
Definition at line 79 of file CSplineInterpolator1D.h.
|
static |
|
static |
|
virtual |
|
virtual |
|
inline |
Return the wrap property.
Definition at line 58 of file CSplineInterpolator1D.h.
double & mrpt::math::CSplineInterpolator1D::query | ( | double | x, |
double & | y, | ||
bool & | out_valid | ||
) | const |
Query an interpolation of the curve at some "x".
The result is stored in "y". If the "x" point is out of range, "valid_out" is set to false.
|
inline |
As query, but for a whole vector at once.
Definition at line 93 of file CSplineInterpolator1D.h.
|
protected |
|
inline |
If set to true, the interpolated data will be wrapped to ]-pi,pi].
Definition at line 55 of file CSplineInterpolator1D.h.
|
inline |
Set all the data at once .
The vectors must have the same length.
Definition at line 64 of file CSplineInterpolator1D.h.
References ASSERT_EQUAL_, MRPT_END, and MRPT_START.
|
protected |
|
staticprotected |
Definition at line 32 of file CSplineInterpolator1D.h.
|
static |
Definition at line 32 of file CSplineInterpolator1D.h.
|
static |
Definition at line 32 of file CSplineInterpolator1D.h.
|
private |
Whether to wrap "y".
Definition at line 38 of file CSplineInterpolator1D.h.
|
private |
The placeholders for the data.
Definition at line 36 of file CSplineInterpolator1D.h.
Page generated by Doxygen 1.9.7 for MRPT 1.4.0 SVN: at Tue Jun 27 15:23:24 UTC 2023 |