From fc8c766ef93454e43a5a31fd7fb0a0b07946e32b Mon Sep 17 00:00:00 2001 From: PouleyKetchoupp Date: Fri, 22 Oct 2021 11:56:00 -0700 Subject: Expose local center of mass in physics servers Center of mass in body's local space is more useful than the transformed one in some cases, like drawing its position for debug. It's especially useful to get the generated local center of mass when in auto mode (by default). Physics Server BODY_PARAM_CENTER_OF_MASS: Now always returns the local center of mass, instead of setting a local center of mass and getting a transformed one. This causes compatibility breaking, but it makes more sense for the parameter to be consistent between getter and setter. Direct Body State: There are now two properties, because both of them can be useful in different situations. center_of_mass: relative position in global coordinates (same as before) center_of_mass_local: position in local coordinates --- doc/classes/PhysicsDirectBodyState2D.xml | 5 ++++- doc/classes/PhysicsDirectBodyState3D.xml | 5 ++++- doc/classes/PhysicsServer2D.xml | 2 +- doc/classes/PhysicsServer3D.xml | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) (limited to 'doc/classes') diff --git a/doc/classes/PhysicsDirectBodyState2D.xml b/doc/classes/PhysicsDirectBodyState2D.xml index aa189f17f4..3fe9cd776c 100644 --- a/doc/classes/PhysicsDirectBodyState2D.xml +++ b/doc/classes/PhysicsDirectBodyState2D.xml @@ -150,7 +150,10 @@ The body's rotational velocity. - The body's center of mass. + The body's center of mass position relative to the body's center in the global coordinate system. + + + The body's center of mass position in the body's local coordinate system. The inverse of the inertia of the body. diff --git a/doc/classes/PhysicsDirectBodyState3D.xml b/doc/classes/PhysicsDirectBodyState3D.xml index 9bc5dbd6b9..efa9eb9cd6 100644 --- a/doc/classes/PhysicsDirectBodyState3D.xml +++ b/doc/classes/PhysicsDirectBodyState3D.xml @@ -159,7 +159,10 @@ The body's rotational velocity. - The body's center of mass. + The body's center of mass position relative to the body's center in the global coordinate system. + + + The body's center of mass position in the body's local coordinate system. The inverse of the inertia of the body. diff --git a/doc/classes/PhysicsServer2D.xml b/doc/classes/PhysicsServer2D.xml index e44bf71e8d..7368fe06ab 100644 --- a/doc/classes/PhysicsServer2D.xml +++ b/doc/classes/PhysicsServer2D.xml @@ -919,7 +919,7 @@ Constant to set/get a body's inertia. - Constant to set/get a body's center of mass. + Constant to set/get a body's center of mass position in the body's local coordinate system. Constant to set/get a body's gravity multiplier. diff --git a/doc/classes/PhysicsServer3D.xml b/doc/classes/PhysicsServer3D.xml index 0c34cf8092..0f02cdf92f 100644 --- a/doc/classes/PhysicsServer3D.xml +++ b/doc/classes/PhysicsServer3D.xml @@ -1287,7 +1287,7 @@ Constant to set/get a body's inertia. - Constant to set/get a body's center of mass. + Constant to set/get a body's center of mass position in the body's local coordinate system. Constant to set/get a body's gravity multiplier. -- cgit v1.2.3