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 47 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. | |
Private Attributes | |
std::map< double, double > | m_x2y |
The placeholders for the data. | |
bool | m_wrap2pi |
Whether to wrap "y". | |
RTTI stuff | |
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 |
Returns information about the class of an object in runtime. | |
virtual mrpt::utils::CObject * | duplicate () const |
Returns a copy of the object, indepently of its class. | |
static mrpt::utils::CObject * | CreateObject () |
static CSplineInterpolator1DPtr | Create () |
A typedef for the associated smart pointer
Definition at line 50 of file CSplineInterpolator1D.h.
mrpt::math::CSplineInterpolator1D::CSplineInterpolator1D | ( | const VECTOR & | initial_x, |
const VECTOR & | initial_y, | ||
bool | wrap2pi = false |
||
) | [inline] |
Constructor with optional initial values.
Definition at line 61 of file CSplineInterpolator1D.h.
mrpt::math::CSplineInterpolator1D::CSplineInterpolator1D | ( | bool | wrap2pi = false | ) |
Constructor.
static const mrpt::utils::TRuntimeClassId* mrpt::math::CSplineInterpolator1D::_GetBaseClass | ( | ) | [static, protected] |
Reimplemented from mrpt::utils::CSerializable.
void mrpt::math::CSplineInterpolator1D::appendXY | ( | double | x, |
double | y | ||
) |
Append a new point:
void mrpt::math::CSplineInterpolator1D::clear | ( | ) | [inline] |
Clears all stored points.
Definition at line 97 of file CSplineInterpolator1D.h.
static CSplineInterpolator1DPtr mrpt::math::CSplineInterpolator1D::Create | ( | ) | [static] |
static mrpt::utils::CObject* mrpt::math::CSplineInterpolator1D::CreateObject | ( | ) | [static] |
virtual mrpt::utils::CObject* mrpt::math::CSplineInterpolator1D::duplicate | ( | ) | const [virtual] |
Returns a copy of the object, indepently of its class.
Implements mrpt::utils::CObject.
virtual const mrpt::utils::TRuntimeClassId* mrpt::math::CSplineInterpolator1D::GetRuntimeClass | ( | ) | const [virtual] |
Returns information about the class of an object in runtime.
Reimplemented from mrpt::utils::CSerializable.
bool mrpt::math::CSplineInterpolator1D::getWrap2pi | ( | ) | [inline] |
Return the wrap property.
Definition at line 76 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.
bool mrpt::math::CSplineInterpolator1D::queryVector | ( | const VECTOR1 & | x, |
VECTOR2 & | out_y | ||
) | const [inline] |
As query, but for a whole vector at once.
Definition at line 111 of file CSplineInterpolator1D.h.
void mrpt::math::CSplineInterpolator1D::setWrap2pi | ( | bool | wrap | ) | [inline] |
If set to true, the interpolated data will be wrapped to ]-pi,pi].
Definition at line 73 of file CSplineInterpolator1D.h.
void mrpt::math::CSplineInterpolator1D::setXY | ( | const VECTOR & | x, |
const VECTOR & | y, | ||
bool | clearPreviousContent = true |
||
) | [inline] |
Set all the data at once .
The vectors must have the same length.
Definition at line 82 of file CSplineInterpolator1D.h.
References ASSERT_EQUAL_, MRPT_END, and MRPT_START.
mrpt::utils::CLASSINIT mrpt::math::CSplineInterpolator1D::_init_CSplineInterpolator1D [static, protected] |
Definition at line 50 of file CSplineInterpolator1D.h.
Definition at line 50 of file CSplineInterpolator1D.h.
Definition at line 50 of file CSplineInterpolator1D.h.
bool mrpt::math::CSplineInterpolator1D::m_wrap2pi [private] |
Whether to wrap "y".
Definition at line 56 of file CSplineInterpolator1D.h.
std::map<double,double> mrpt::math::CSplineInterpolator1D::m_x2y [private] |
The placeholders for the data.
Definition at line 54 of file CSplineInterpolator1D.h.
Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN:exported at Tue Jan 25 21:56:31 UTC 2011 |