Skip to content

Conversation

@sebcrozet
Copy link
Member

@sebcrozet sebcrozet commented Apr 30, 2022

v0.12.0 (30 Apr. 2022)

Fixed

  • Fix the simulation when the parallel feature is enabled.
  • Fix bug where damping would not be applied properly to some bodies.
  • Fix panics caused by various situations (contact or joints) involving rigid-bodies with locked translations/rotations.
  • Fix bug where collider modifications (like changes of collision groups, or shape) would not wake-up their attached
    rigid-body, or would not have any effect on pre-existing contacts.
  • Fix the automatic update of a rigid-body’s mass properties after changing one of its attached colliders.
  • Fix the broad-phase becoming potentially invalid after a change of collision groups.

Modified

  • Switch to nalgebra 0.31.
  • Switch to parry 0.9.
  • Rename JointHandle to ImpulseJointHandle.
  • Rename RigidBodyMassPropsFlags to LockedAxes.
  • Rename RigidBody::apply_force, ::apply_torque, ::apply_force_at_point to ::add_force,
    ::add_torque, and ::add_force_at_point to better reflect the fact that they are not cleared at the end
    of the timestep.
  • Rename RigidBodyType::Static to RigidBodyType::Fixed to avoid confusion with the static keyword.
  • All method referring to static rigid-bodies now use fixed instead of static.
  • Rename RigidBodyBuilder::new_static, new_kinematic_velocity_based, new_kinematic_velocity_based to
    RigidBodyBuilder::fixed, kinematic_velocity_based, kinematic_velocity_based.
  • The ContactEvent and IntersectionEvent have been replaced by a single enum CollisionEvent in order
    to simplify the user’s event handling.
  • The ActiveEvents::CONTACT_EVENTS and ActiveEvents::INTERSECTION_EVENTS flags have been replaced by a single
    flag ActiveEvents::COLLISION_EVENTS.
  • Joint motors no longer have a VelocityBased model. The new choices are AccelerationBased and ForceBased
    which are more stable.
  • Calling the .build() function from builders (RigidBodyBuilder, ColliderBuilder, etc.) is no longer necessary
    whan adding them to sets. It is automatically called thanks to Into<_> implementations.
  • The ComponentSet abstractions (and related _generic methods like PhysicsPipeline::step_generic) have been
    removed. Custom storage for colliders and rigid-bodies are no longer possible: use the built-in RigidBodySet and
    ColliderSet instead.

Semantic modifications

These are changes in the behavior of the physics engine that are not necessarily
reflected by an API change. See #304 for extensive details.

  • RigidBody::set_linvel and RigidBody::set_angvel no longer modify the velocity of static bodies.
  • RigidBody::set_body_type will reset the velocity of a rigid-body to zero if it is static.
  • Don’t automatically clear forces at the end of a timestep.
  • Don’t reset the velocity of kinematic bodies to zero at the end of the timestep.
  • Events CollisionEvent::Stopped are now generated after a collider is removed.

Added

  • Significantly improve the API of joints by adding:
    • Builders based on the builder pattern.
    • Getters and setters for all joints.
    • Method to convert a GenericJoint to one of the more specific joint type.
  • Improve stability of joint motors.
  • Adds a bool argument to RigidBodySet::remove. If set to false, the colliders attached to the rigid-body
    won’t be automatically deleted (they will only be detached from the deleted rigid-body instead).
  • Add RigidBody::reset_forces and RigidBody::reset_torques to reset all the forces and torques added to the
    rigid-body by the user.
  • Add the debug-render cargo feature that enables the DebugRenderPipeline: a line-based backend-agnostic
    renderer to debug the state of the physics engine.

@sebcrozet sebcrozet merged commit 033a26a into master Apr 30, 2022
@sebcrozet sebcrozet deleted the release-0.12.0 branch April 30, 2022 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants