4#include <boost/range.hpp>
137 Eigen::VectorXd
sample(
double time)
const;
This class provides a lightweight logger.
void trimAfter(double time)
Eigen::VectorXd sample(double time) const
Need to use interpolation for the case with changing time grids.
Sample getSampleAtOrAfter(double before) const
Returns the Sample at time following "before" contained in this Storage.
auto stamples() const
Get the stamples.
void trimBefore(double time)
int findTimeId(double time) const
void setSampleAtTime(double time, const Sample &sample)
Store Sample at a specific time.
Storage()
Stores data samples in time and provides corresponding convenience functions.
void clear()
Clears this Storage by deleting all values.
int nDofs() const
Number of Dofs for each values.
Eigen::MatrixXd sampleGradients(double time) const
void trim()
Trims this Storage by deleting all values except values associated with the window start.
std::pair< Eigen::VectorXd, Eigen::MatrixXd > getTimesAndValues() const
Get all normalized dts and values in ascending order (with respect to normalized dts)
double maxStoredTime() const
Get maximum time that is stored in this Storage.
std::optional< math::Bspline > _bspline
int computeUsedDegree(int requestedDegree, int numberOfAvailableSamples) const
Computes which degree may be used for interpolation.
Storage & operator=(const Storage &other)
Copy assignment operator to assign Storage to this Storage.
void setInterpolationDegree(int interpolationDegree)
std::vector< Stample > _stampleStorage
Stores Stamples on the current window.
void move()
Move this Storage by deleting all stamples except the one at the end of the window.
int nTimes() const
Number of stored times.
Eigen::VectorXd getTimes() const
Get all normalized dts stored in this Storage sorted ascending.
time::Sample getSampleAtBeginning()
const time::Stample & last() const
time::Sample getSampleAtEnd()
int getInterpolationDegree() const
contains the time interpolation logic.
Stample containing timestampled Sample.