bevy/crates/bevy_math/src
Joona Aalto 3ada15ee1c
Add more Glam types and constructors to prelude (#16261)
# Objective

Glam has some common and useful types and helpers that are not in the
prelude of `bevy_math`. This includes shorthand constructors like
`vec3`, or even `Vec3A`, the aligned version of `Vec3`.

```rust
// The "normal" way to create a 3D vector
let vec = Vec3::new(2.0, 1.0, -3.0);

// Shorthand version
let vec = vec3(2.0, 1.0, -3.0);
```

## Solution

Add the following types and methods to the prelude:

- `vec2`, `vec3`, `vec3a`, `vec4`
- `uvec2`, `uvec3`, `uvec4`
- `ivec2`, `ivec3`, `ivec4`
- `bvec2`, `bvec3`, `bvec3a`, `bvec4`, `bvec4a`
- `mat2`, `mat3`, `mat3a`, `mat4`
- `quat` (not sure if anyone uses this, but for consistency)
- `Vec3A`
- `BVec3A`, `BVec4A`
- `Mat3A`

I did not add the u16, i16, or f64 variants like `dvec2`, since there
are currently no existing types like those in the prelude.

The shorthand constructors are currently used a lot in some places in
Bevy, and not at all in others. In a follow-up, we might want to
consider if we have a preference for the shorthand, and make a PR to
change the codebase to use it more consistently.
2024-11-11 18:47:16 +00:00
..
bounding Add more Glam types and constructors to prelude (#16261) 2024-11-11 18:47:16 +00:00
curve Bump crate-ci/typos from 1.26.8 to 1.27.0 (#16236) 2024-11-05 01:33:27 +00:00
primitives Implement Measured2d for Arc2d-based primitives. (#16213) 2024-11-03 16:12:31 +00:00
rects Use en-us locale for typos (#16037) 2024-10-20 18:55:17 +00:00
sampling Use en-us locale for typos (#16037) 2024-10-20 18:55:17 +00:00
affine3.rs Implemented Reflect for (almost) all bevy_math types (#13537) 2024-05-27 18:18:10 +00:00
aspect_ratio.rs Remove thiserror from bevy_math (#15769) 2024-10-09 14:23:23 +00:00
common_traits.rs Bump crate-ci/typos from 1.26.8 to 1.27.0 (#16236) 2024-11-05 01:33:27 +00:00
compass.rs Fix intra-doc links and make CI test them (#14076) 2024-07-11 13:08:31 +00:00
cubic_splines.rs Put curve-related stuff behind a feature (#15790) 2024-10-09 16:38:23 +00:00
direction.rs Remove thiserror from bevy_math (#15769) 2024-10-09 14:23:23 +00:00
float_ord.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
isometry.rs Implement From translation and rotation for isometries (#15733) 2024-10-08 16:09:28 +00:00
lib.rs Add more Glam types and constructors to prelude (#16261) 2024-11-11 18:47:16 +00:00
ops.rs Simpler lint fixes: makes ci lints work but disables a lint for now (#15376) 2024-09-24 11:42:59 +00:00
ray.rs Use Dir2/Dir3 instead of Vec2/Vec3 for Ray2d::new/Ray3d::new (#15735) 2024-10-08 16:45:03 +00:00
rotation2d.rs Rename Rot2::angle_between to Rot2::angle_to (#16327) 2024-11-10 14:36:48 +00:00