[][src]Struct ncollide2d::shape::ConvexPolygonalFeature

pub struct ConvexPolygonalFeature<N: RealField> {
    pub vertices: [Point<N>; 2],
    pub nvertices: usize,
    pub normal: Option<Unit<Vector<N>>>,
    pub feature_id: FeatureId,
    pub vertices_id: [FeatureId; 2],
}

A feature (face or vertex) of a 2D convex polygon.

Fields

vertices: [Point<N>; 2]

The vertices of this face.

nvertices: usize

Number of vertices in vertices to be considered.

normal: Option<Unit<Vector<N>>>

The normal of this feature if it is an edge.

feature_id: FeatureId

The shape-dependent identifier of this feature.

vertices_id: [FeatureId; 2]

The shape-dependent indentifier of each vertex of this feature.

Methods

impl<N: RealField> ConvexPolygonalFeature<N>[src]

pub fn new() -> Self[src]

Creates a new empty convex polygonal faces.

pub fn clear(&mut self)[src]

Removes all the vertices, normals, and feature IDs of this feature.

pub fn transform_by(&mut self, m: &Isometry<N>)[src]

Transforms all the vertices and normal of this feature by the given isometry.

pub fn push(&mut self, pt: Point<N>, id: FeatureId)[src]

Adds a vertex to this face.

It is not checked whether pt breaks the convexity of the polyhedral face.

pub fn nvertices(&self) -> usize[src]

The number of vertices of this face.

pub fn vertices(&self) -> &[Point<N>][src]

The vertices of this convex polygonal face.

pub fn set_normal(&mut self, normal: Unit<Vector<N>>)[src]

Sets the outward normal of this convex polygonal face.

pub fn set_feature_id(&mut self, id: FeatureId)[src]

Sets the identifier of the feature represented by this convex polygon.

pub fn project_point(&self, pt: &Point<N>) -> Option<Contact<N>>[src]

Projects a point on this feature.

pub fn clip(
    &self,
    other: &Self,
    normal: &Unit<Vector<N>>,
    prediction: &ContactPrediction<N>,
    out: &mut Vec<(Contact<N>, FeatureId, FeatureId)>
)
[src]

Generate contacts between self and other using polygonal clipping, iif. they both have at least two vertices.

If either self or other has less than two vertices, this does nothing.

pub fn add_contact_to_manifold(
    &self,
    other: &Self,
    c: Contact<N>,
    m1: &Isometry<N>,
    f1: FeatureId,
    proc1: Option<&dyn ContactPreprocessor<N>>,
    m2: &Isometry<N>,
    f2: FeatureId,
    proc2: Option<&dyn ContactPreprocessor<N>>,
    manifold: &mut ContactManifold<N>
)
[src]

Given a contact between two polygonal features, adds it to a contact manifold.

Trait Implementations

impl<N: Clone + RealField> Clone for ConvexPolygonalFeature<N>[src]

impl<N: Debug + RealField> Debug for ConvexPolygonalFeature<N>[src]

Auto Trait Implementations

impl<N> RefUnwindSafe for ConvexPolygonalFeature<N> where
    N: RefUnwindSafe + Scalar

impl<N> Send for ConvexPolygonalFeature<N> where
    N: Scalar

impl<N> Sync for ConvexPolygonalFeature<N> where
    N: Scalar

impl<N> Unpin for ConvexPolygonalFeature<N> where
    N: Scalar + Unpin

impl<N> UnwindSafe for ConvexPolygonalFeature<N> where
    N: Scalar + UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any

impl<T> DowncastSync for T where
    T: Send + Sync + Any

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,