diff options
author | Ricardo Buring <ricardo.buring@gmail.com> | 2023-04-13 21:45:37 +0200 |
---|---|---|
committer | Ricardo Buring <ricardo.buring@gmail.com> | 2023-04-14 11:40:06 +0200 |
commit | aacb20437a8d796cc58fb7d8a9df4731379cd0c6 (patch) | |
tree | aa891973f8d8dd146ea146a549310c7cd2e48d3f /servers/physics_2d/godot_body_2d.h | |
parent | 220953b6258712dc060bf8ea7592c280ba3ca3ad (diff) | |
download | redot-engine-aacb20437a8d796cc58fb7d8a9df4731379cd0c6.tar.gz |
PhysicsDirectBodyState2D: add get_contact_local_velocity_at_position
Diffstat (limited to 'servers/physics_2d/godot_body_2d.h')
-rw-r--r-- | servers/physics_2d/godot_body_2d.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/servers/physics_2d/godot_body_2d.h b/servers/physics_2d/godot_body_2d.h index 71dc826604..529305dbb2 100644 --- a/servers/physics_2d/godot_body_2d.h +++ b/servers/physics_2d/godot_body_2d.h @@ -125,6 +125,7 @@ class GodotBody2D : public GodotCollisionObject2D { struct Contact { Vector2 local_pos; Vector2 local_normal; + Vector2 local_velocity_at_pos; real_t depth = 0.0; int local_shape = 0; Vector2 collider_pos; @@ -191,7 +192,7 @@ public: _FORCE_INLINE_ int get_max_contacts_reported() const { return contacts.size(); } _FORCE_INLINE_ bool can_report_contacts() const { return !contacts.is_empty(); } - _FORCE_INLINE_ void add_contact(const Vector2 &p_local_pos, const Vector2 &p_local_normal, real_t p_depth, int p_local_shape, const Vector2 &p_collider_pos, int p_collider_shape, ObjectID p_collider_instance_id, const RID &p_collider, const Vector2 &p_collider_velocity_at_pos, const Vector2 &p_impulse); + _FORCE_INLINE_ void add_contact(const Vector2 &p_local_pos, const Vector2 &p_local_normal, real_t p_depth, int p_local_shape, const Vector2 &p_local_velocity_at_pos, const Vector2 &p_collider_pos, int p_collider_shape, ObjectID p_collider_instance_id, const RID &p_collider, const Vector2 &p_collider_velocity_at_pos, const Vector2 &p_impulse); _FORCE_INLINE_ void add_exception(const RID &p_exception) { exceptions.insert(p_exception); } _FORCE_INLINE_ void remove_exception(const RID &p_exception) { exceptions.erase(p_exception); } @@ -341,7 +342,7 @@ public: //add contact inline -void GodotBody2D::add_contact(const Vector2 &p_local_pos, const Vector2 &p_local_normal, real_t p_depth, int p_local_shape, const Vector2 &p_collider_pos, int p_collider_shape, ObjectID p_collider_instance_id, const RID &p_collider, const Vector2 &p_collider_velocity_at_pos, const Vector2 &p_impulse) { +void GodotBody2D::add_contact(const Vector2 &p_local_pos, const Vector2 &p_local_normal, real_t p_depth, int p_local_shape, const Vector2 &p_local_velocity_at_pos, const Vector2 &p_collider_pos, int p_collider_shape, ObjectID p_collider_instance_id, const RID &p_collider, const Vector2 &p_collider_velocity_at_pos, const Vector2 &p_impulse) { int c_max = contacts.size(); if (c_max == 0) { @@ -374,6 +375,7 @@ void GodotBody2D::add_contact(const Vector2 &p_local_pos, const Vector2 &p_local c[idx].local_pos = p_local_pos; c[idx].local_normal = p_local_normal; + c[idx].local_velocity_at_pos = p_local_velocity_at_pos; c[idx].depth = p_depth; c[idx].local_shape = p_local_shape; c[idx].collider_pos = p_collider_pos; |