pub use ecs::collide::prelude2d::*;
pub use ecs::physics::{DeltaTime, WithLazyRigidBody, WithRigidBody};
pub use physics::prelude2d::*;
use cgmath::{BaseFloat, Basis2, Point2, Vector2};
use collision::Aabb2;
use collision::dbvt::TreeValueWrapped;
use collision::primitive::Primitive2;
use specs::{Entity, World};
use ecs::WithRhusics;
use ecs::physics::{ContactResolutionSystem, CurrentFrameUpdateSystem, NextFrameSetupSystem};
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
>();
}