![]() # Objective #17404 reworked the `Segment2d` and `Segment3d` types to be defined by two endpoints rather than a direction and half-length. However, the API is still very minimal and limited, and documentation is inconsistent and outdated. ## Solution Add the following helper methods for `Segment2d` and `Segment3d`: - `from_scaled_direction` - `from_ray_and_length` - `length_squared` - `direction` - `try_direction` - `scaled_direction` - `transformed` - `reversed` `Segment2d` has a few 2D-specific methods: - `left_normal` - `try_left_normal` - `scaled_left_normal` - `right_normal` - `try_right_normal` - `scaled_right_normal` There are now also `From` implementations for converting `[Vec2; 2]` and `(Vec2, Vec2)` to a `Segment2d`, and similarly for 3D. I have also updated documentation to be more accurate and consistent, and simplified a few methods. --- ## Prior Art Parry's [`Segment`](https://docs.rs/parry2d/latest/parry2d/shape/struct.Segment.html) type has a lot of similar methods, though my implementation is a bit more comprehensive. A lot of these methods can be useful for various geometry algorithms. --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com> Co-authored-by: Greeble <166992735+greeble-dev@users.noreply.github.com> |
||
---|---|---|
.. | ||
macros | ||
src | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |