Trait heron::rapier_plugin::rapier2d::parry::query::PersistentQueryDispatcher
source · pub trait PersistentQueryDispatcher<ManifoldData = (), ContactData = ()>: QueryDispatcher {
fn contact_manifolds(
&self,
pos12: &Isometry<f32, Unit<Complex<f32>>, 2>,
g1: &(dyn Shape + 'static),
g2: &(dyn Shape + 'static),
prediction: f32,
manifolds: &mut Vec<ContactManifold<ManifoldData, ContactData>, Global>,
workspace: &mut Option<ContactManifoldsWorkspace>
) -> Result<(), Unsupported>;
fn contact_manifold_convex_convex(
&self,
pos12: &Isometry<f32, Unit<Complex<f32>>, 2>,
g1: &(dyn Shape + 'static),
g2: &(dyn Shape + 'static),
prediction: f32,
manifold: &mut ContactManifold<ManifoldData, ContactData>
) -> Result<(), Unsupported>;
}
Expand description
A query dispatcher for queries relying on spatial coherence, including contact-manifold computation.
Required Methods
sourcefn contact_manifolds(
&self,
pos12: &Isometry<f32, Unit<Complex<f32>>, 2>,
g1: &(dyn Shape + 'static),
g2: &(dyn Shape + 'static),
prediction: f32,
manifolds: &mut Vec<ContactManifold<ManifoldData, ContactData>, Global>,
workspace: &mut Option<ContactManifoldsWorkspace>
) -> Result<(), Unsupported>
fn contact_manifolds(
&self,
pos12: &Isometry<f32, Unit<Complex<f32>>, 2>,
g1: &(dyn Shape + 'static),
g2: &(dyn Shape + 'static),
prediction: f32,
manifolds: &mut Vec<ContactManifold<ManifoldData, ContactData>, Global>,
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.
sourcefn contact_manifold_convex_convex(
&self,
pos12: &Isometry<f32, Unit<Complex<f32>>, 2>,
g1: &(dyn Shape + 'static),
g2: &(dyn Shape + 'static),
prediction: f32,
manifold: &mut ContactManifold<ManifoldData, ContactData>
) -> Result<(), Unsupported>
fn contact_manifold_convex_convex(
&self,
pos12: &Isometry<f32, Unit<Complex<f32>>, 2>,
g1: &(dyn Shape + 'static),
g2: &(dyn Shape + 'static),
prediction: f32,
manifold: &mut ContactManifold<ManifoldData, ContactData>
) -> Result<(), Unsupported>
Computes the contact-manifold between two convex shapes.