File motion_walker.hpp
This file contains a set of artifical motion generators. They are used to superimpose artifical with the specific dynamics provided by the trajectory files.
- Author
Benjamin Lindner ben@benlabs.net
- Version
See VERSION in CMakeLists.txt
- Copyright
GNU General Public License
-
class MotionWalker
- #include <motion_walker.hpp>
Interface for an artficial motion generator.
Subclassed by BrownianMotionWalker, FixedMotionWalker, LinearMotionWalker, LocalBrownianMotionWalker, OscillationMotionWalker, RandomMotionWalker, RotationalBrownianMotionWalker
Public Functions
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos) = 0
Protected Functions
Friends
- friend class boost::serialization::access
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos) = 0
-
class LinearMotionWalker : public MotionWalker
- #include <motion_walker.hpp>
Generates a linear motion.
Public Functions
-
LinearMotionWalker(double displace, long sampling, CartesianCoor3D direction)
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos)
Protected Functions
-
void generate(size_t timepos)
-
inline LinearMotionWalker()
-
CartesianCoor3D translation(size_t timepos)
Protected Attributes
-
CartesianCoor3D m_translate
Friends
- friend class boost::serialization::access
-
LinearMotionWalker(double displace, long sampling, CartesianCoor3D direction)
-
class FixedMotionWalker : public MotionWalker
- #include <motion_walker.hpp>
No motion. Fixed offset.
Public Functions
-
FixedMotionWalker(double displace, CartesianCoor3D direction)
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos)
Protected Attributes
-
CartesianCoor3D m_translate
Friends
- friend class boost::serialization::access
-
FixedMotionWalker(double displace, CartesianCoor3D direction)
-
class OscillationMotionWalker : public MotionWalker
- #include <motion_walker.hpp>
Sinusoidal Oscillation with amplitude and frequency.
Public Functions
-
OscillationMotionWalker(double displace, double frequency, long sampling, CartesianCoor3D direction)
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos)
Friends
- friend class boost::serialization::access
-
OscillationMotionWalker(double displace, double frequency, long sampling, CartesianCoor3D direction)
-
class RandomMotionWalker : public MotionWalker
- #include <motion_walker.hpp>
Simple random motion in 3D with a constant step size.
Public Functions
-
RandomMotionWalker(double displace, unsigned long seed, long sampling, CartesianCoor3D direction)
-
~RandomMotionWalker()
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos)
Protected Functions
-
void init()
-
void generate(size_t timepos)
-
inline RandomMotionWalker()
-
CartesianCoor3D translation(size_t timepos)
Protected Attributes
-
std::map<size_t, CartesianCoor3D> translations
-
bool m_init
-
double m_displace
-
unsigned long m_seed
-
size_t m_sampling
-
CartesianCoor3D m_direction
-
boost::variate_generator<boost::mt19937, boost::uniform_on_sphere<double>> *p_myspheredistribution
Friends
- friend class boost::serialization::access
-
RandomMotionWalker(double displace, unsigned long seed, long sampling, CartesianCoor3D direction)
-
class BrownianMotionWalker : public MotionWalker
- #include <motion_walker.hpp>
Brownian motion in 3D which draws the step size from a gaussian distribution for the given mean (displace)
Public Functions
-
BrownianMotionWalker(double displace, unsigned long seed, long sampling, CartesianCoor3D direction)
-
~BrownianMotionWalker()
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos)
Protected Functions
-
void init()
-
void generate(size_t timepos)
-
inline BrownianMotionWalker()
-
CartesianCoor3D translation(size_t timepos)
Protected Attributes
-
std::map<size_t, CartesianCoor3D> translations
-
bool m_init
-
double m_displace
-
unsigned long m_seed
-
size_t m_sampling
-
CartesianCoor3D m_direction
-
boost::variate_generator<boost::mt19937, boost::normal_distribution<double>> *p_mynormaldistribution
-
boost::variate_generator<boost::mt19937, boost::uniform_on_sphere<double>> *p_myspheredistribution
Friends
- friend class boost::serialization::access
-
BrownianMotionWalker(double displace, unsigned long seed, long sampling, CartesianCoor3D direction)
-
class LocalBrownianMotionWalker : public MotionWalker
- #include <motion_walker.hpp>
Brownian motion in 3D which draws the step size from a gaussian distribution for the given mean (displace) and constrains the motion to the maximum radius.
Public Functions
-
LocalBrownianMotionWalker(double radius, double displace, unsigned long seed, long sampling, CartesianCoor3D direction)
-
~LocalBrownianMotionWalker()
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos)
Protected Functions
-
void init()
-
void generate(size_t timepos)
-
inline LocalBrownianMotionWalker()
-
CartesianCoor3D translation(size_t timepos)
Protected Attributes
-
std::map<size_t, CartesianCoor3D> translations
-
bool m_init
-
double m_radius
-
double m_displace
-
unsigned long m_seed
-
size_t m_sampling
-
CartesianCoor3D m_direction
-
boost::variate_generator<boost::mt19937, boost::normal_distribution<double>> *p_mynormaldistribution
-
boost::variate_generator<boost::mt19937, boost::uniform_on_sphere<double>> *p_myspheredistribution
Friends
- friend class boost::serialization::access
-
LocalBrownianMotionWalker(double radius, double displace, unsigned long seed, long sampling, CartesianCoor3D direction)
-
class RotationalBrownianMotionWalker : public MotionWalker
- #include <motion_walker.hpp>
Rotational Brownian motion in 3D which draws the angular step size from a gaussian distribution for the given mean (displace)
Public Functions
-
RotationalBrownianMotionWalker(double displace, unsigned long seed, long sampling)
-
~RotationalBrownianMotionWalker()
-
virtual boost::numeric::ublas::matrix<double> transform(size_t timepos)
Protected Functions
-
void init()
-
void generate(size_t timepos)
-
inline RotationalBrownianMotionWalker()
Protected Attributes
-
bool m_init
-
double m_displace
-
unsigned long m_seed
-
size_t m_sampling
-
boost::variate_generator<boost::mt19937, boost::normal_distribution<double>> *p_mynormaldistribution
-
boost::variate_generator<boost::mt19937, boost::uniform_on_sphere<double>> *p_myspheredistribution
Friends
- friend class boost::serialization::access
-
RotationalBrownianMotionWalker(double displace, unsigned long seed, long sampling)