Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
## Unreleased
## 0.29.0

### Breaking changes

- The `<Polyline as TypedCompositeShape>::PartNormalConstraints` is now `SegmentPseudoNormals` instead of `()`.

### Fixed

- Fix `enhanced-determinism` not producing cross-platform deterministic results for parry3d/parry3d-f64.
The feature now enables `glamx/scalar-math` to disable architecture-specific SIMD (NEON on arm64,
SSE2 on x86_64) which caused floating-point non-associativity in Vec3/Vec4/Quat dot products.
- Oriented (one-sided) 2D polylines ([#254](https://github.com/dimforge/parry/issues/254)). Build a `Polyline` with
`PolylineFlags::ORIENTED` via `Polyline::with_flags`, or toggle it with `Polyline::set_flags`, to clamp contact normals
to the outward side. This removes the spurious sideways push a body gets at a convex corner of a thin double-sided
polyline. A single 2D flag covers what `TriMesh` splits across `TriMeshFlags::ORIENTED` (assume an outward orientation
and compute pseudo-normals) and `TriMeshFlags::FIX_INTERNAL_EDGES` (use them to clamp contact normals). Also adds
`Polyline::flags`, `Polyline::segment_normal_constraints`, and the `PolylineFlags` / `SegmentPseudoNormals` types.
([#425](https://github.com/dimforge/parry/pull/425))
`PolylineFlags::ORIENTED` via `Polyline::with_flags`, or toggle it with `Polyline::set_flags`, to clamp contact normals
to the outward side. This removes the spurious sideways push a body gets at a convex corner of a thin double-sided
polyline. A single 2D flag covers what `TriMesh` splits across `TriMeshFlags::ORIENTED` (assume an outward orientation
and compute pseudo-normals) and `TriMeshFlags::FIX_INTERNAL_EDGES` (use them to clamp contact normals). Also adds
`Polyline::flags`, `Polyline::segment_normal_constraints`, and the `PolylineFlags` / `SegmentPseudoNormals` types.
([#425](https://github.com/dimforge/parry/pull/425))

## 0.28.0

### Breaking changes
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ members = [
resolver = "2"

[workspace.package]
version = "0.28.0"
version = "0.29.0"
authors = ["Sébastien Crozet <developer@crozet.re>"]
documentation = "https://parry.rs/docs"
homepage = "https://parry.rs"
Expand Down Expand Up @@ -70,7 +70,7 @@ encase = "0.12"
oorandom = "11"
ptree = "0.4.0"
rand = "0.10"
kiss3d = "0.42"
kiss3d = "0.44"
rand_isaac = "0.5"
web-time = "1"

Expand Down
4 changes: 2 additions & 2 deletions crates/parry2d/examples/oriented_polyline2d.rs
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,14 @@ async fn main() {
);

window.draw_text(
"upper: double-sided polyline (the bug)",
"upper: double-sided polyline (unoriented)",
Vec2::new(8.0, 6.0),
34.0,
&font,
WHITE,
);
window.draw_text(
"lower: oriented polyline (fixed)",
"lower: oriented polyline (with pseudo-normals)",
Vec2::new(8.0, 42.0),
34.0,
&font,
Expand Down
Loading