summaryrefslogtreecommitdiffstats
path: root/servers/physics_2d/godot_body_2d.h
diff options
context:
space:
mode:
authorRicardo Buring <ricardo.buring@gmail.com>2023-04-13 21:45:37 +0200
committerRicardo Buring <ricardo.buring@gmail.com>2023-04-14 11:40:06 +0200
commitaacb20437a8d796cc58fb7d8a9df4731379cd0c6 (patch)
treeaa891973f8d8dd146ea146a549310c7cd2e48d3f /servers/physics_2d/godot_body_2d.h
parent220953b6258712dc060bf8ea7592c280ba3ca3ad (diff)
downloadredot-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.h6
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;