Struct heron::rapier_plugin::rapier::ncollide::query::ContactKinematic [−][src]
Local contact kinematic of a pair of solids around two given points.
This is used to update the localization of contact points between two solids from one frame to another. To achieve this, the local shape of the solids around the given points are approximated by either dilated lines (unbounded cylinders), planes, dilated points (spheres).
Implementations
impl<N> ContactKinematic<N> where
N: RealField,
[src]
N: RealField,
pub fn new() -> ContactKinematic<N>
[src]
Initializes an empty contact kinematic.
All the contact kinematic information must be filled using methods
prefixed by set_
.
pub fn transform1(&mut self, m: &Isometry<N, U3, Unit<Quaternion<N>>>)
[src]
Applies the given transformation to the first set of contact information.
pub fn transform2(&mut self, m: &Isometry<N, U3, Unit<Quaternion<N>>>)
[src]
Applies the given transformation to the second set of contact information.
pub fn dilation1(&self) -> N
[src]
The dilation of the first solid.
pub fn dilation2(&self) -> N
[src]
The dilation of the second solid.
pub fn local1(&self) -> Point<N, U3>
[src]
The tracked point in local space of the first solid.
This may not correspond to the contact point in the local space of the first since it does not takes the dilation into account.
pub fn local2(&self) -> Point<N, U3>
[src]
The tracked point in local space of the second solid.
This may not correspond to the contact point in the local space of the second solid since it does not takes the dilation into account.
pub fn feature1(&self) -> FeatureId
[src]
The shape-dependent identifier of the feature of the first solid on which lies the contact point.
pub fn feature2(&self) -> FeatureId
[src]
The shape-dependent identifier of the feature of the second solid on which lies the contact point.
pub fn set_feature1(&mut self, f: FeatureId)
[src]
Sets the shape-dependent identifier of the feature of the first solid on which lies the contact point.
pub fn set_feature2(&mut self, f: FeatureId)
[src]
Sets the shape-dependent identifier of the feature of the second solid on which lies the contact point.
pub fn set_dilation1(&mut self, margin: N)
[src]
Sets the dilation of the first solid.
pub fn set_dilation2(&mut self, margin: N)
[src]
Sets the dilation of the second solid.
pub fn approx1(&self) -> &LocalShapeApproximation<N>
[src]
The local approximation of the first shape.
pub fn approx2(&self) -> &LocalShapeApproximation<N>
[src]
The local approximation of the first shape.
pub fn approx1_mut(&mut self) -> &mut LocalShapeApproximation<N>
[src]
The local approximation of the first shape.
pub fn approx2_mut(&mut self) -> &mut LocalShapeApproximation<N>
[src]
The local approximation of the second shape.
pub fn set_approx1(
&mut self,
feature: FeatureId,
point: Point<N, U3>,
geom: NeighborhoodGeometry<N>
)
[src]
&mut self,
feature: FeatureId,
point: Point<N, U3>,
geom: NeighborhoodGeometry<N>
)
Sets the local approximation of the first shape.
pub fn set_approx2(
&mut self,
feature: FeatureId,
point: Point<N, U3>,
geom: NeighborhoodGeometry<N>
)
[src]
&mut self,
feature: FeatureId,
point: Point<N, U3>,
geom: NeighborhoodGeometry<N>
)
Sets the local approximation of the second shape.
pub fn contact(
&self,
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
s1: &(dyn Shape<N> + 'static),
deformations1: Option<&[N]>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
s2: &(dyn Shape<N> + 'static),
deformations2: Option<&[N]>,
default_normal1: &Unit<Matrix<N, U3, U1, <DefaultAllocator as Allocator<N, U3, U1>>::Buffer>>
) -> Option<Contact<N>>
[src]
&self,
m1: &Isometry<N, U3, Unit<Quaternion<N>>>,
s1: &(dyn Shape<N> + 'static),
deformations1: Option<&[N]>,
m2: &Isometry<N, U3, Unit<Quaternion<N>>>,
s2: &(dyn Shape<N> + 'static),
deformations2: Option<&[N]>,
default_normal1: &Unit<Matrix<N, U3, U1, <DefaultAllocator as Allocator<N, U3, U1>>::Buffer>>
) -> Option<Contact<N>>
Computes the updated contact points with the new positions of the solids.
The vector default_normal1
is the normal of the resulting contact
in the rare case where the contact normal cannot be determined by the update.
Typically, this should be set to the latest contact normal known.
Trait Implementations
impl<N> Clone for ContactKinematic<N> where
N: Clone + RealField,
[src]
N: Clone + RealField,
pub fn clone(&self) -> ContactKinematic<N>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<N> Copy for ContactKinematic<N> where
N: Copy + RealField,
[src]
N: Copy + RealField,
impl<N> Debug for ContactKinematic<N> where
N: Debug + RealField,
[src]
N: Debug + RealField,
Auto Trait Implementations
impl<N> RefUnwindSafe for ContactKinematic<N> where
N: RefUnwindSafe,
[src]
N: RefUnwindSafe,
impl<N> Send for ContactKinematic<N>
[src]
impl<N> Sync for ContactKinematic<N>
[src]
impl<N> Unpin for ContactKinematic<N> where
N: Unpin,
[src]
N: Unpin,
impl<N> UnwindSafe for ContactKinematic<N> where
N: UnwindSafe,
[src]
N: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CloneAny for T where
T: Clone + Any,
T: Clone + Any,
impl<T> Component for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Downcast for T where
T: Any,
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Resource for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> Slottable for T where
T: Copy,
[src]
T: Copy,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
T: 'static + Send + Sync + Clone,
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,