Blender V4.3
MovingFrame.hpp
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2009 Benoit Bolsee
2 *
3 * SPDX-License-Identifier: LGPL-2.1-or-later */
4
9#ifndef MOVINGFRAME_HPP_
10#define MOVINGFRAME_HPP_
11
13#include <vector>
14
15
16namespace iTaSC{
17
18typedef bool (*MovingFrameCallback)(
19 const Timestamp& timestamp,
20 const Frame& _current,
21 Frame& _next,
22 void *param);
23
25public:
26 MovingFrame(const Frame& frame=F_identity);
27 virtual ~MovingFrame();
28
29 bool setFrame(const Frame& frame);
30 bool setCallback(MovingFrameCallback _function, void* _param);
31
32 virtual void updateCoordinates(const Timestamp& timestamp);
33 virtual void updateKinematics(const Timestamp& timestamp);
34 virtual void pushCache(const Timestamp& timestamp);
35 virtual void initCache(Cache *_cache);
36 virtual bool finalize();
37protected:
38 virtual void updateJacobian();
39
40private:
41 void pushInternalFrame(CacheTS timestamp);
42 bool popInternalFrame(CacheTS timestamp);
43 MovingFrameCallback m_function;
44 void* m_param;
45 Frame m_nextPose;
46 Twist m_velocity;
47 int m_poseCCh; // cache channel for pose
48 unsigned int m_poseCTs;
49};
50
51}
52
53#endif /* MOVINGFRAME_H_ */
represents a frame transformation in 3D space (rotation + translation)
Definition frames.hpp:526
represents both translational and rotational velocities.
Definition frames.hpp:679
virtual void updateKinematics(const Timestamp &timestamp)
virtual void updateJacobian()
MovingFrame(const Frame &frame=F_identity)
virtual void updateCoordinates(const Timestamp &timestamp)
bool setCallback(MovingFrameCallback _function, void *_param)
virtual void pushCache(const Timestamp &timestamp)
virtual void initCache(Cache *_cache)
virtual bool finalize()
bool setFrame(const Frame &frame)
const Frame F_identity
bool(* MovingFrameCallback)(const Timestamp &timestamp, const Frame &_current, Frame &_next, void *param)
unsigned int CacheTS
Definition Cache.hpp:33