pub use collide2d::*;
pub use core::physics2d::*;
use cgmath::{BaseFloat, Basis2, Point2, Vector2};
use collision::Aabb2;
use collision::dbvt::TreeValueWrapped;
use collision::primitive::Primitive2;
use core::Collider;
use specs::{Entity, World};
use physics::{ContactResolutionSystem, CurrentFrameUpdateSystem, NextFrameSetupSystem};
use resources::WithRhusics;
pub type CurrentFrameUpdateSystem2<S> = CurrentFrameUpdateSystem<Point2<S>, Basis2<S>, S>;
pub type ContactResolutionSystem2<S> = ContactResolutionSystem<Point2<S>, Basis2<S>, S, S, S>;
pub type NextFrameSetupSystem2<S> = NextFrameSetupSystem<Point2<S>, Basis2<S>, S, S>;
pub fn register_physics<S, Y>(world: &mut World)
where
S: BaseFloat + Send + Sync + 'static,
Y: Collider + Default + Send + Sync + 'static,
{
world.register_physics::<
Primitive2<S>,
Aabb2<S>,
Basis2<S>,
TreeValueWrapped<Entity, Aabb2<S>>,
Y,
Vector2<S>,
S,
S
>();
}