Trait parry3d::query::PersistentQueryDispatcher

source ·
pub trait PersistentQueryDispatcher<ManifoldData = (), ContactData = ()>: QueryDispatcher {
    // Required methods
    fn contact_manifolds(
        &self,
        pos12: &Isometry<Real>,
        g1: &dyn Shape,
        g2: &dyn Shape,
        prediction: Real,
        manifolds: &mut Vec<ContactManifold<ManifoldData, ContactData>>,
        workspace: &mut Option<ContactManifoldsWorkspace>
    ) -> Result<(), Unsupported>;
    fn contact_manifold_convex_convex(
        &self,
        pos12: &Isometry<Real>,
        g1: &dyn Shape,
        g2: &dyn Shape,
        normal_constraints1: Option<&dyn NormalConstraints>,
        normal_constraints2: Option<&dyn NormalConstraints>,
        prediction: Real,
        manifold: &mut ContactManifold<ManifoldData, ContactData>
    ) -> Result<(), Unsupported>;
}
Expand description

A query dispatcher for queries relying on spatial coherence, including contact-manifold computation.

Required Methods§

source

fn contact_manifolds( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape, prediction: Real, manifolds: &mut Vec<ContactManifold<ManifoldData, ContactData>>, workspace: &mut Option<ContactManifoldsWorkspace> ) -> Result<(), Unsupported>

Compute all the contacts between two shapes.

The output is written into manifolds and context. Both can persist between multiple calls to contacts by re-using the result of the previous call to contacts. This persistence can significantly improve collision detection performances by allowing the underlying algorithms to exploit spatial and temporal coherence.

source

fn contact_manifold_convex_convex( &self, pos12: &Isometry<Real>, g1: &dyn Shape, g2: &dyn Shape, normal_constraints1: Option<&dyn NormalConstraints>, normal_constraints2: Option<&dyn NormalConstraints>, prediction: Real, manifold: &mut ContactManifold<ManifoldData, ContactData> ) -> Result<(), Unsupported>

Computes the contact-manifold between two convex shapes.

Implementors§

source§

impl<ManifoldData, ContactData> PersistentQueryDispatcher<ManifoldData, ContactData> for DefaultQueryDispatcher
where ManifoldData: Default + Clone, ContactData: Default + Copy,

source§

impl<ManifoldData, ContactData, T, U> PersistentQueryDispatcher<ManifoldData, ContactData> for QueryDispatcherChain<T, U>
where T: PersistentQueryDispatcher<ManifoldData, ContactData>, U: PersistentQueryDispatcher<ManifoldData, ContactData>,