spatial_velocity_tracker.h 708 B

1234567891011121314151617181920212223242526272829303132
  1. #ifndef SPATIAL_VELOCITY_TRACKER_H
  2. #define SPATIAL_VELOCITY_TRACKER_H
  3. #include "scene/3d/spatial.h"
  4. class SpatialVelocityTracker : public Reference {
  5. GDCLASS(SpatialVelocityTracker, Reference)
  6. struct PositionHistory {
  7. uint64_t frame;
  8. Vector3 position;
  9. };
  10. bool physics_step;
  11. Vector<PositionHistory> position_history;
  12. int position_history_len;
  13. protected:
  14. static void _bind_methods();
  15. public:
  16. void reset(const Vector3 &p_new_pos);
  17. void set_track_physics_step(bool p_track_physics_step);
  18. bool is_tracking_physics_step() const;
  19. void update_position(const Vector3 &p_position);
  20. Vector3 get_tracked_linear_velocity() const;
  21. SpatialVelocityTracker();
  22. };
  23. #endif // SPATIAL_VELOCITY_TRACKER_H