[][src]Struct mgf::Moving

pub struct Moving<T: Shape>(pub T, pub Vector3<f32>);

A geometry swept accross a given path of motion.

Methods

impl<T: Copy + Clone + Shape> Moving<T>[src]

pub fn sweep(obj: T, vel: Vector3<f32>) -> Self[src]

Create a moving object with velocity of vel

impl<T: Shape> Moving<T>[src]

pub fn vel(&self) -> Vector3<f32>[src]

Return the velocity of the object.

Trait Implementations

impl<B: Bound, T: Copy + Clone + Shape + BoundedBy<B>> BoundedBy<B> for Moving<T>[src]

fn bounds(&self) -> B[src]

The bounds for a swept object is the bounds extended in the direction and magnitude of the velocity.

impl<P: Particle> Intersects<Moving<Sphere>> for P[src]

impl Contacts<Moving<Component>> for Plane[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Component>> for Triangle[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Component>> for Rectangle[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Component>> for Sphere[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Component>> for Capsule[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl<RHS> Contacts<RHS> for Moving<Component> where
    RHS: Contacts<Moving<Sphere>> + Contacts<Moving<Capsule>>, 
[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Sphere>> for Plane[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Capsule>> for Plane[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Plane> for Moving<Sphere>[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Plane> for Moving<Capsule>[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl<Poly: Polygon> Contacts<Moving<Sphere>> for Poly[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Triangle> for Moving<Sphere>[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Rectangle> for Moving<Sphere>[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Triangle> for Moving<Capsule>[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Rectangle> for Moving<Capsule>[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl<Poly: Polygon> Contacts<Moving<Capsule>> for Poly[src]

Colliding a moving capsule with a single-faced polygon can potentially produce multiple contacts depending on the angle between the capsule's length and the normal of the polygon's face.

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Sphere>> for Sphere[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Capsule>> for Sphere[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Sphere>> for Capsule[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl Contacts<Moving<Capsule>> for Capsule[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl<Recv, Arg> Contacts<Arg> for Moving<Recv> where
    Arg: Shape + Copy,
    Recv: Contacts<Moving<Arg>> + Shape
[src]

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl<Recv, Arg> Contacts<Moving<Arg>> for Moving<Recv> where
    Recv: Contacts<Moving<Arg>> + Shape + Copy,
    Arg: Shape + Copy
[src]

Any two moving object collision can be reduced to a one moving one static object collision. This is done by finding the relative velocity between the two objects.

fn last_contact(&self, rhs: &RHS) -> Option<Contact>[src]

Returns the last contact found, if one exists.

impl LocalContacts<Moving<Component>> for Moving<Component>[src]

fn last_local_contact(&self, rhs: &RHS) -> Option<LocalContact>[src]

Returns the last contact found, if one exists.

impl<Recv, Arg> LocalContacts<Moving<Arg>> for Recv where
    Recv: Contacts<Moving<Arg>> + Shape,
    Arg: Shape + Copy
[src]

fn last_local_contact(&self, rhs: &RHS) -> Option<LocalContact>[src]

Returns the last contact found, if one exists.

impl<Recv, Arg> LocalContacts<Arg> for Moving<Recv> where
    Recv: Shape + Copy,
    Arg: Contacts<Moving<Recv>> + Shape
[src]

fn last_local_contact(&self, rhs: &RHS) -> Option<LocalContact>[src]

Returns the last contact found, if one exists.

impl<Recv, Arg> LocalContacts<Moving<Arg>> for Moving<Recv> where
    Recv: Contacts<Moving<Arg>> + Shape + Copy,
    Arg: Shape + Copy
[src]

fn last_local_contact(&self, rhs: &RHS) -> Option<LocalContact>[src]

Returns the last contact found, if one exists.

impl<T: Shape> Delta for Moving<T>[src]

impl<T: Clone + Shape> Clone for Moving<T>[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl From<Moving<Sphere>> for Capsule[src]

impl<T: Copy + Shape> Copy for Moving<T>[src]

impl<T: Shape> AsMut<T> for Moving<T>[src]

impl<T: Shape> AsRef<T> for Moving<T>[src]

impl<T: Debug + Shape> Debug for Moving<T>[src]

Auto Trait Implementations

impl<T> Send for Moving<T> where
    T: Send

impl<T> Sync for Moving<T> where
    T: Sync

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.