Trait heron::rapier_plugin::rapier::ncollide::pipeline::narrow_phase::ContactManifoldGenerator [−][src]
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]
&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
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.
Provided methods
pub fn init_manifold(&self) -> ContactManifold<N>
[src]
Generate an empty contact manifold configured as required by this contact manifold generator.
Implementors
impl<N> ContactManifoldGenerator<N> for BallBallManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
&(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]
&mut self,
&(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
impl<N> ContactManifoldGenerator<N> for BallConvexPolyhedronManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
a: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &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]
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
a: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
b: &(dyn Shape<N> + 'static),
proc2: Option<&dyn ContactPreprocessor<N>>,
prediction: &ContactPrediction<N>,
manifold: &mut ContactManifold<N>
) -> bool
impl<N> ContactManifoldGenerator<N> for CapsuleCapsuleManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
d: &(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]
&mut self,
d: &(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
impl<N> ContactManifoldGenerator<N> for CapsuleShapeManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
d: &(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]
&mut self,
d: &(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
impl<N> ContactManifoldGenerator<N> for CompositeShapeCompositeShapeManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
d: &(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]
&mut self,
d: &(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
impl<N> ContactManifoldGenerator<N> for CompositeShapeShapeManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
d: &(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]
&mut self,
d: &(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>
[src]
impl<N> ContactManifoldGenerator<N> for ConvexPolyhedronConvexPolyhedronManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
&(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]
&mut self,
&(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
impl<N> ContactManifoldGenerator<N> for HeightFieldShapeManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
d: &(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]
&mut self,
d: &(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
impl<N> ContactManifoldGenerator<N> for PlaneBallManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
g1: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
g2: &(dyn Shape<N> + 'static),
proc2: Option<&dyn ContactPreprocessor<N>>,
prediction: &ContactPrediction<N>,
manifold: &mut ContactManifold<N>
) -> bool
[src]
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
g1: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
g2: &(dyn Shape<N> + 'static),
proc2: Option<&dyn ContactPreprocessor<N>>,
prediction: &ContactPrediction<N>,
manifold: &mut ContactManifold<N>
) -> bool
impl<N> ContactManifoldGenerator<N> for PlaneConvexPolyhedronManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
g1: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
g2: &(dyn Shape<N> + 'static),
proc2: Option<&dyn ContactPreprocessor<N>>,
prediction: &ContactPrediction<N>,
manifold: &mut ContactManifold<N>
) -> bool
[src]
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
g1: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
g2: &(dyn Shape<N> + 'static),
proc2: Option<&dyn ContactPreprocessor<N>>,
prediction: &ContactPrediction<N>,
manifold: &mut ContactManifold<N>
) -> bool
impl<N> ContactManifoldGenerator<N> for TriMeshTriMeshManifoldGenerator<N> where
N: RealField,
[src]
N: RealField,
pub fn generate_contacts(
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
g1: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
g2: &(dyn Shape<N> + 'static),
proc2: Option<&dyn ContactPreprocessor<N>>,
prediction: &ContactPrediction<N>,
manifold: &mut ContactManifold<N>
) -> bool
[src]
&mut self,
&(dyn ContactDispatcher<N> + 'static),
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
g1: &(dyn Shape<N> + 'static),
proc1: Option<&dyn ContactPreprocessor<N>>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
g2: &(dyn Shape<N> + 'static),
proc2: Option<&dyn ContactPreprocessor<N>>,
prediction: &ContactPrediction<N>,
manifold: &mut ContactManifold<N>
) -> bool