Something went wrong. Try again.
Homebrew 4D Game Engine In Rust, inspired by Engine4D
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364//! 4D Physics simulation for Rust4D//!//! This crate provides physics simulation for 4D rigid bodies, including://! - Collision shapes (spheres, AABBs, planes)//! - Collision detection//! - Rigid body dynamics with gravity//! - Player physics for FPS-style movement//! - Spatial queries (sphere searches, area effects, line of sight)//!//! # Module Organization//!//! The crate is organized into focused modules://!//! - [`body`] - Rigid body and static collider types//! - [`collision`] - Collision detection and layer filtering//! - [`material`] - Physics material properties (friction, restitution)//! - [`raycast`] - Ray intersection tests//! - [`shapes`] - Collision shape primitives//! - [`spatial`] - Spatial query result types//! - [`world`] - The main `PhysicsWorld` simulation//!//! # Re-export Strategy//!//! Commonly used types are re-exported at the crate root for convenience.//! This flat re-export style prioritizes ergonomics for typical use cases://!//! ```ignore//! // Convenient flat import//! use rust4d_physics::{PhysicsWorld, RigidBody4D, CollisionLayer};//!//! // Module path still available for disambiguation or organization//! use rust4d_physics::collision::CollisionFilter;//! use rust4d_physics::shapes::{Sphere4D, AABB4D};//! ```//!//! The re-exports are grouped by category://! - **Bodies**: `BodyKey`, `BodyType`, `RigidBody4D`, `StaticCollider`//! - **Collision**: Detection functions, `CollisionEvent`, `CollisionFilter`, `CollisionLayer`, `Contact`//! - **Materials**: `PhysicsMaterial`//! - **Shapes**: `Collider`, `Plane4D`, `Sphere4D`, `AABB4D`//! - **Raycasting**: `RayHit`, intersection functions//! - **Spatial queries**: `SpatialQueryResult`, `AreaEffectHit`//! - **World**: `PhysicsConfig`, `PhysicsWorld`, `RayTarget`, `WorldRayHit`
pub mod body;pub mod collision;pub mod material;pub mod raycast;pub mod shapes;pub mod spatial;pub mod world;
// Re-export commonly used types (see module doc for rationale)pub use body::{BodyKey, BodyType, RigidBody4D, StaticCollider};pub use collision::{ aabb_vs_aabb, aabb_vs_plane, sphere_vs_aabb, sphere_vs_plane, sphere_vs_sphere, CollisionEvent, CollisionEventKind, CollisionFilter, CollisionLayer, Contact,};pub use material::PhysicsMaterial;pub use raycast::{ray_vs_aabb, ray_vs_collider, ray_vs_plane, ray_vs_sphere, RayHit};pub use shapes::{Collider, Plane4D, Sphere4D, AABB4D};pub use spatial::{AreaEffectHit, SpatialQueryResult};pub use world::{PhysicsConfig, PhysicsWorld, RayTarget, WorldRayHit};