Trait heron::rapier_plugin::rapier::ncollide::pipeline::narrow_phase::ContactManifoldGenerator[][src]

pub trait ContactManifoldGenerator<N>: Send + Sync + Any where
    N: RealField
{ pub fn generate_contacts(
        &mut self,
        dispatcher: &(dyn ContactDispatcher<N> + 'static),
        ma: &Isometry<N, U3, Unit<Quaternion<N>>>,
        a: &(dyn Shape<N> + 'static),
        proc1: Option<&dyn ContactPreprocessor<N>>,
        mb: &Isometry<N, U3, Unit<Quaternion<N>>>,
        b: &(dyn Shape<N> + 'static),
        proc2: Option<&dyn ContactPreprocessor<N>>,
        prediction: &ContactPrediction<N>,
        manifold: &mut ContactManifold<N>
    ) -> bool; pub fn init_manifold(&self) -> ContactManifold<N> { ... } }

An algorithm to compute contact points, normals and penetration depths between two specific objects.

Required methods

pub fn generate_contacts(
    &mut self,
    dispatcher: &(dyn ContactDispatcher<N> + 'static),
    ma: &Isometry<N, U3, Unit<Quaternion<N>>>,
    a: &(dyn Shape<N> + 'static),
    proc1: Option<&dyn ContactPreprocessor<N>>,
    mb: &Isometry<N, U3, Unit<Quaternion<N>>>,
    b: &(dyn Shape<N> + 'static),
    proc2: Option<&dyn ContactPreprocessor<N>>,
    prediction: &ContactPrediction<N>,
    manifold: &mut ContactManifold<N>
) -> bool
[src]

Runs the collision detection on two objects. It is assumed that the same collision detector (the same structure) is always used with the same pair of objects.

Returns false if persisting this algorithm for re-use is unlikely to improve performance, e.g. due to the objects being distant. Note that if the ContactManifoldGenerator would likely be immediately reconstructed in the next time-step, dropping it is sub-optimal regardless.

Loading content...

Provided methods

pub fn init_manifold(&self) -> ContactManifold<N>[src]

Generate an empty contact manifold configured as required by this contact manifold generator.

Loading content...

Implementors

impl<N> ContactManifoldGenerator<N> for BallBallManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for BallConvexPolyhedronManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for CapsuleCapsuleManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for CapsuleShapeManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for CompositeShapeCompositeShapeManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for CompositeShapeShapeManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for ConvexPolyhedronConvexPolyhedronManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for HeightFieldShapeManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for PlaneBallManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for PlaneConvexPolyhedronManifoldGenerator<N> where
    N: RealField
[src]

impl<N> ContactManifoldGenerator<N> for TriMeshTriMeshManifoldGenerator<N> where
    N: RealField
[src]

Loading content...