blob: b8237613a70037799a9ccdb6617a211318e8e6d6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#ifndef SPATIAL_VELOCITY_TRACKER_H
#define SPATIAL_VELOCITY_TRACKER_H
#include "scene/3d/spatial.h"
class SpatialVelocityTracker : public Reference {
GDCLASS(SpatialVelocityTracker, Reference)
struct PositionHistory {
uint64_t frame;
Vector3 position;
};
bool fixed_step;
Vector<PositionHistory> position_history;
int position_history_len;
protected:
static void _bind_methods();
public:
void reset(const Vector3 &p_new_pos);
void set_track_fixed_step(bool p_track_fixed_step);
bool is_tracking_fixed_step() const;
void update_position(const Vector3 &p_position);
Vector3 get_tracked_linear_velocity() const;
SpatialVelocityTracker();
};
#endif // SPATIAL_VELOCITY_TRACKER_H
|