[][src]Trait ncollide3d::query::PointQueryWithLocation

pub trait PointQueryWithLocation<N: RealField> {
    type Location;
    fn project_point_with_location(
        &self,
        m: &Isometry<N>,
        pt: &Point<N>,
        solid: bool
    ) -> (PointProjection<N>, Self::Location); }

Returns shape-specific info in addition to generic projection information

One requirement for the PointQuery trait is to be usable as a trait object. Unfortunately this precludes us from adding an associated type to it that might allow us to return shape-specific information in addition to the general information provided in PointProjection. This is where PointQueryWithLocation comes in. It forgoes the ability to be used as a trait object in exchange for being able to provide shape-specific projection information.

Any shapes that implement PointQuery but are able to provide extra information, can implement PointQueryWithLocation in addition and have their PointQuery::project_point implementation just call out to PointQueryWithLocation::project_point_with_location.

Associated Types

type Location

Additional shape-specific projection information

In addition to the generic projection information returned in PointProjection, implementations might provide shape-specific projection info. The type of this shape-specific information is defined by this associated type.

Loading content...

Required methods

fn project_point_with_location(
    &self,
    m: &Isometry<N>,
    pt: &Point<N>,
    solid: bool
) -> (PointProjection<N>, Self::Location)

Projects a point on self transformed by m.

Loading content...

Implementors

impl<N: RealField> PointQueryWithLocation<N> for HeightField<N>[src]

type Location = (usize, TrianglePointLocation<N>)

impl<N: RealField> PointQueryWithLocation<N> for Polyline<N>[src]

type Location = (usize, SegmentPointLocation<N>)

impl<N: RealField> PointQueryWithLocation<N> for Segment<N>[src]

type Location = SegmentPointLocation<N>

impl<N: RealField> PointQueryWithLocation<N> for Tetrahedron<N>[src]

type Location = TetrahedronPointLocation<N>

impl<N: RealField> PointQueryWithLocation<N> for TriMesh<N>[src]

type Location = (usize, TrianglePointLocation<N>)

impl<N: RealField> PointQueryWithLocation<N> for Triangle<N>[src]

type Location = TrianglePointLocation<N>

Loading content...