pub use collision::algorithm::minkowski::GJK3;
pub use collision::primitive::{ConvexPolyhedron, Cuboid, Particle3, Sphere};
pub use core::collide3d::*;
pub use core::{CollisionMode, CollisionStrategy};
use cgmath::Point3;
use collision::dbvt::{DynamicBoundingVolumeTree, TreeValueWrapped};
use collision::primitive::Primitive3;
use collision::Aabb3;
use specs::prelude::Entity;
use collide::{BasicCollisionSystem, SpatialCollisionSystem, SpatialSortingSystem};
use core::ContactEvent;
pub type ContactEvent3<S> = ContactEvent<Entity, Point3<S>>;
pub type BasicCollisionSystem3<S, T, Y = ()> =
BasicCollisionSystem<Primitive3<S>, T, TreeValueWrapped<Entity, Aabb3<S>>, Aabb3<S>, Y>;
pub type SpatialSortingSystem3<S, T, Y = ()> =
SpatialSortingSystem<Primitive3<S>, T, TreeValueWrapped<Entity, Aabb3<S>>, Aabb3<S>, Y>;
pub type SpatialCollisionSystem3<S, T, Y = ()> = SpatialCollisionSystem<
Primitive3<S>,
T,
(usize, TreeValueWrapped<Entity, Aabb3<S>>),
Aabb3<S>,
Y,
>;
pub type DynamicBoundingVolumeTree3<S> =
DynamicBoundingVolumeTree<TreeValueWrapped<Entity, Aabb3<S>>>;