aboutsummaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2024-03-17 21:20:18 +0100
committerSébastien Crozet <sebcrozet@dimforge.com>2024-03-17 21:24:28 +0100
commitecd308338b189ab569816a38a03e3f8b89669dde (patch)
treefa612abff2f23ea6a5ff04c64c07296d9fb065c8 /src/lib.rs
parentda92e5c2837b27433286cf0dd9d887fd44dda254 (diff)
downloadrapier-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.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 304c0c0..63f6d53 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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
*/