Trait mgf::Collider
[−]
[src]
pub trait Collider<CollisionType: Clone, T = Self> { fn collide<F: FnMut(CollisionType)>(&self, other: &T, callback: F) -> bool { ... } fn check_collision(&self, other: &T) -> Option<CollisionType> { ... } }
Determine if two objects collide and collect information on the collision if they do. The type of the collision checked for and the amount of information returned depends on the CollisionType argument requested by the callback passed to collide.
Provided Methods
fn collide<F: FnMut(CollisionType)>(&self, other: &T, callback: F) -> bool
Collide with an object and call the callback for as many contacts there are. True is returned if any contact is found.
fn check_collision(&self, other: &T) -> Option<CollisionType>
Returns the first collision found if any exists.
Implementors
impl<B, V, RHS> Collider<V, RHS> for BVH<B, V> where
B: Bound,
V: Clone,
RHS: Collider<Overlaps, B>,impl<T: BoundedBy<AABB>> Collider<Overlaps, AABB> for Timpl<T: BoundedBy<AABB>> Collider<Contains, T> for AABBimpl<T: BoundedBy<Sphere>> Collider<Overlaps, Sphere> for Timpl<T: BoundedBy<Sphere>> Collider<Contains, T> for Sphereimpl Collider<Contact, Moving<Component>> for Rectangleimpl<T> Collider<Contact, T> for Moving<Component> where
T: Collider<Contact, Moving<Sphere>> + Collider<Contact, Moving<Capsule>>,impl Collider<Contact, Component> for Moving<Sphere>impl Collider<Contact, Component> for Moving<Capsule>impl<T> Collider<Contact, T> for Compound where
T: Collider<Contact, Component> + BoundedBy<AABB>,impl Collider<Contains, Point3<f32>> for Planeimpl Collider<Contains, Point3<f32>> for Triangleimpl Collider<Contains, Point3<f32>> for Rectangleimpl Collider<Contains, Point3<f32>> for AABBimpl Collider<Contains, Point3<f32>> for Sphereimpl Collider<Intersection, Ray> for Planeimpl Collider<Intersection, Plane> for Rayimpl Collider<Intersection, AABB> for Rayimpl Collider<Intersection, Sphere> for Rayimpl Collider<Intersection, Capsule> for Rayimpl Collider<Intersection, Moving<Sphere>> for Rayimpl<T: Collider<Intersection, Ray>> Collider<Intersection, T> for Segmentimpl Collider<Intersection, Ray> for Triangleimpl Collider<Intersection, Ray> for Rectangleimpl Collider<Intersection, Ray> for AABBimpl Collider<Intersection, Ray> for Sphereimpl Collider<Intersection, Ray> for Capsuleimpl Collider<Intersection, Ray> for Moving<Sphere>impl Collider<Contact, Moving<Sphere>> for Planeimpl Collider<Contact, Moving<Capsule>> for Planeimpl Collider<Contact, Plane> for Moving<Sphere>impl Collider<Contact, Plane> for Moving<Capsule>impl<Poly: Polygon> Collider<Contact, Moving<Sphere>> for Polyimpl Collider<Contact, Triangle> for Moving<Sphere>impl Collider<Contact, Triangle> for Moving<Capsule>impl Collider<Contact, Rectangle> for Moving<Sphere>impl Collider<Contact, Rectangle> for Moving<Capsule>impl<Poly: Polygon> Collider<Contact, Moving<Capsule>> for Polyimpl Collider<Contact, Moving<Sphere>> for Sphereimpl Collider<Contact, Moving<Capsule>> for Sphereimpl Collider<Contact, Moving<Sphere>> for Capsuleimpl Collider<Contact, Moving<Capsule>> for Capsuleimpl<Recv, Arg> Collider<Contact, Arg> for Moving<Recv> where
Arg: Shape + Copy,
Recv: Collider<Contact, Moving<Arg>> + Shape + Copy,impl<K, T> Collider<Contact, Moving<T>> for Moving<K> where
K: Collider<Contact, Moving<T>> + Copy + Clone + Shape,
T: Copy + Clone + Shape,impl<Recv, Arg> Collider<LocalContact, Arg> for Recv where
Recv: Shape + Collider<Contact, Arg> + Delta,
Arg: Shape + Delta,impl<Recv, Arg> Collider<LocalContact, Moving<Arg>> for Recv where
Recv: Shape + Collider<Contact, Moving<Arg>>,
Arg: Shape + Copy,impl<Recv, Arg> Collider<LocalContact, Arg> for Moving<Recv> where
Recv: Shape + Copy,
Arg: Shape + Collider<Contact, Moving<Recv>> + Copy,impl<Recv, Arg> Collider<LocalContact, Moving<Arg>> for Moving<Recv> where
Recv: Shape + Collider<Contact, Moving<Arg>> + Copy,
Arg: Shape + Copy,impl<T> Collider<Contact, T> for Mesh where
T: Collider<Contact, Triangle> + Collider<Contact, Rect> + BoundedBy<AABB>,impl<T> Collider<Contact, T> for RigidBody where
T: Collider<Contact, Moving<Component>> + BoundedBy<AABB>,impl<'a, S, T> Collider<Intersection, T> for StaticBody<'a, S> where
S: Shape + Collider<Intersection, T>,impl<'a, S, T> Collider<Contact, T> for StaticBody<'a, S> where
S: Shape + Collider<Contact, T>,impl<'a, S, T> Collider<LocalContact, StaticBody<'a, S>> for T where
S: Shape,
T: Shape + Delta + Collider<Contact, S>,