bullet_rs 0.0.1

A Bullet3 port to Rust
Documentation
use std::arch::x86_64::__m128;

pub type BtScalar = f32;

pub const BT_LARGE_FLOAT: f32 = 1e18;

pub type BtSimdFloat4 = __m128;

#[macro_export]
macro_rules! bt_castf_to128i {
    ($a:expr)=>{
        _mm_castps_si128($a)
    }
}

#[macro_export]
macro_rules! bt_castf_to128d {
    ($a:expr)=>{
        _mm_castps_pd($a)
    }
}

#[macro_export]
macro_rules! bt_casti_to128f {
    ($a:expr)=>{
        _mm_castsi128_ps($a)
    }
}

#[macro_export]
macro_rules! bt_castd_to128f {
    ($a:expr)=>{
        _mm_castpd_ps($a)
    }
}

#[macro_export]
macro_rules! bt_castd_to128i {
    ($a:expr)=>{
        _mm_castpd_si128($a)
    }
}

#[macro_export]
macro_rules! bt_assign128 {
    ($r0:expr, $r1:expr, $r2:expr, $r3:expr)=>{
        __m128($r0, $r1, $r2, $r3)
    }
}

pub const SIMD_EPSILON: f32 = f32::EPSILON;
pub const SIMD_INFINITY: f32 = f32::MAX;
pub const BT_ONE: f32 = 1.0;
pub const BT_ZERO: f32 = 0.0;
pub const BT_TWO: f32 = 2.0;
pub const BT_HALF: f32 = 0.5;