diff options
| author | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-03-17 21:20:18 +0100 |
|---|---|---|
| committer | Sébastien Crozet <sebcrozet@dimforge.com> | 2024-03-17 21:24:28 +0100 |
| commit | ecd308338b189ab569816a38a03e3f8b89669dde (patch) | |
| tree | fa612abff2f23ea6a5ff04c64c07296d9fb065c8 /src/lib.rs | |
| parent | da92e5c2837b27433286cf0dd9d887fd44dda254 (diff) | |
| download | rapier-bevy-glam.tar.gz rapier-bevy-glam.tar.bz2 rapier-bevy-glam.zip | |
feat: start experimenting with a glam/bevy versionbevy-glam
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -26,6 +26,8 @@ pub extern crate parry3d as parry; pub extern crate parry3d_f64 as parry; pub extern crate crossbeam; +#[cfg(feature = "linalg-glam")] +pub extern crate glam; pub extern crate nalgebra as na; #[cfg(feature = "serde")] #[macro_use] @@ -138,6 +140,7 @@ pub mod counters; pub mod data; pub mod dynamics; pub mod geometry; +pub mod linalg; pub mod pipeline; pub mod utils; @@ -174,6 +177,45 @@ pub mod math { #[cfg(feature = "dim2")] pub const ANG_DIM: usize = 1; + #[cfg(all(feature = "linalg-glam", feature = "dim2"))] + #[doc(hidden)] + pub trait IntoOwned: Sized { + fn into_owned(self) -> Self { + self + } + } + + #[cfg(all(feature = "linalg-glam", feature = "dim2"))] + impl IntoOwned for Real {} + + #[cfg(all(feature = "linalg-glam", feature = "dim2"))] + impl IntoOwned for SimdReal {} + + #[cfg(all(feature = "linalg-glam", feature = "dim2"))] + #[doc(hidden)] + pub trait Vec2Ops { + type Element; + fn column(self, i: usize) -> Self::Element; + } + + #[cfg(all(feature = "linalg-glam", feature = "dim2"))] + impl Vec2Ops for glam::Vec2 { + type Element = Real; + #[inline] + fn column(self, i: usize) -> Real { + self[i] + } + } + + #[cfg(all(feature = "linalg-glam", feature = "dim2"))] + impl Vec2Ops for SimdVec2 { + type Element = SimdReal; + #[inline] + fn column(self, i: usize) -> SimdReal { + self[i] + } + } + /* * 3D */ |
