Proper support for custom mass properties in 2D/3D physics bodies
Changes: -Added support for custom inertia and center of mass in 3D -Added support for custom center of mass in 2D -Calculated center of mass from shapes in 2D (same as in 3D) -Fixed mass properties calculation with disabled shapes in 2D/3D -Removed first_integration which is not used in 2D and doesn't seem to make a lot of sense (prevents omit_force_integration to work during the first frame) -Support for custom inertia on different axes for RigidBody3D
This commit is contained in:
parent
e1ae2708ee
commit
82ea2a7045
31 changed files with 665 additions and 319 deletions
|
|
@ -643,20 +643,27 @@ uint32_t PhysicsServer3DSW::body_get_user_flags(RID p_body) const {
|
|||
return 0;
|
||||
};
|
||||
|
||||
void PhysicsServer3DSW::body_set_param(RID p_body, BodyParameter p_param, real_t p_value) {
|
||||
void PhysicsServer3DSW::body_set_param(RID p_body, BodyParameter p_param, const Variant &p_value) {
|
||||
Body3DSW *body = body_owner.getornull(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
body->set_param(p_param, p_value);
|
||||
};
|
||||
|
||||
real_t PhysicsServer3DSW::body_get_param(RID p_body, BodyParameter p_param) const {
|
||||
Variant PhysicsServer3DSW::body_get_param(RID p_body, BodyParameter p_param) const {
|
||||
Body3DSW *body = body_owner.getornull(p_body);
|
||||
ERR_FAIL_COND_V(!body, 0);
|
||||
|
||||
return body->get_param(p_param);
|
||||
};
|
||||
|
||||
void PhysicsServer3DSW::body_reset_mass_properties(RID p_body) {
|
||||
Body3DSW *body = body_owner.getornull(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
return body->reset_mass_properties();
|
||||
}
|
||||
|
||||
void PhysicsServer3DSW::body_set_state(RID p_body, BodyState p_state, const Variant &p_variant) {
|
||||
Body3DSW *body = body_owner.getornull(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue