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§
sourcefn 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_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.
sourcefn 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>
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.