55 lines
3.9 KiB
Plaintext
55 lines
3.9 KiB
Plaintext
## v0.4.0 - WIP
|
|
- The rigid-body `linvel`, `angvel`, and `position` fields are no longer public. Access using
|
|
their corresponding getters/setters. For example: `rb.linvel()`, `rb.set_linvel(vel, true)`.
|
|
- Add `RigidBodyBuilder::sleeping(true)` to allow the creation of a rigid-body that is asleep
|
|
at initialization-time.
|
|
|
|
## v0.3.2
|
|
- Add linear and angular damping. The damping factor can be set with `RigidBodyBuilder::linear_damping` and
|
|
`RigidBodyBuilder::angular_damping`.
|
|
- Implement `Clone` for almost everything that can be worth cloning.
|
|
- Allow setting the initial mass and mass properties of a rigid-bodies using `RigidBodyBuilder::mass` and
|
|
`RigidBodyBuilder::mass_properties`.
|
|
- The restitution coefficient of colliders is now taken into account by the physics solver.
|
|
|
|
## v0.3.1
|
|
- Fix non-determinism problem when using triangle-meshes, cone, cylinders, or capsules.
|
|
- Add `JointSet::remove(...)` to remove a joint from the `JointSet`.
|
|
|
|
## v0.3.0
|
|
- Collider shapes are now trait-objects instead of a `Shape` enum.
|
|
- Add a user-defined `u128` to each colliders and rigid-bodies for storing user data.
|
|
- Add the support for `Cylinder`, `RoundCylinder`, and `Cone` shapes.
|
|
- Added the support for collision filtering based on bit masks (often known as collision groups, collision masks, or
|
|
collision layers in other physics engines). Each collider has two groups. Their `collision_groups` is used for filtering
|
|
what pair of colliders should have their contacts computed by the narrow-phase. Their `solver_groups` is used for filtering
|
|
what pair of colliders should have their contact forces computed by the constraints solver.
|
|
- Collision groups can also be used to filter what collider should be hit by a ray-cast performed by the `QueryPipeline`.
|
|
- Added collision filters based on user-defined trait-objects. This adds two traits `ContactPairFilter` and
|
|
`ProximityPairFilter` that allows user-defined logic for determining if two colliders/sensors are allowed to interact.
|
|
- The `PhysicsPipeline::step` method now takes two additional arguments: the optional `&ContactPairFilter` and `&ProximityPairFilter`
|
|
for filtering contact and proximity pairs.
|
|
|
|
## v0.2.1
|
|
- Fix panic in TriMesh construction and QueryPipeline update caused by a stack overflow or a subtraction underflow.
|
|
|
|
## v0.2.0
|
|
The most significant change on this version is the addition of the `QueryPipeline` responsible for performing
|
|
scene-wide queries. So far only ray-casting has been implemented.
|
|
|
|
- Add `ColliderSet::remove(...)` to remove a collider from the `ColliderSet`.
|
|
- Replace `PhysicsPipeline::remove_rigid_body` by `RigidBodySet::remove`.
|
|
- The `JointSet.iter()` now returns an iterator yielding `(JointHandle, &Joint)` instead of just `&Joint`.
|
|
- Add `ColliderDesc::translation(...)` to set the translation of a collider relative to the rigid-body it is attached to.
|
|
- Add `ColliderDesc::rotation(...)` to set the rotation of a collider relative to the rigid-body it is attached to.
|
|
- Add `ColliderDesc::position(...)` to set the position of a collider relative to the rigid-body it is attached to.
|
|
- Add `Collider::position_wrt_parent()` to get the position of a collider relative to the rigid-body it is attached to.
|
|
- Modify `RigidBody::set_position(...)` so it also resets the next kinematic position to the same value.
|
|
- Deprecate `Collider::delta()` in favor of the new `Collider::position_wrt_parent()`.
|
|
- Fix multiple issues occurring when having colliders resulting in a non-zero center-of-mass.
|
|
- Fix a crash happening when removing a rigid-body with a collider, stepping the simulation, adding another rigid-body
|
|
with a collider, and stepping the simulation again.
|
|
- Fix NaN when detection contacts between two polygonal faces where one has a normal perfectly perpendicular to the
|
|
separating vector.
|
|
- Fix bug collision detection between trimeshes and other shapes. The bug appeared depending on whether the trimesh
|
|
collider was added before the other shape's collider or after. |