Struct ncollide3d::shape::ConvexPolygonalFeature [−][src]
pub struct ConvexPolygonalFeature<N: RealField> { pub vertices: Vec<Point<N>>, pub edge_normals: Vec<Vector<N>>, pub normal: Option<Unit<Vector<N>>>, pub feature_id: FeatureId, pub vertices_id: Vec<FeatureId>, pub edges_id: Vec<FeatureId>, }
Represents a convex polygonal approximation of a face of a solid.
It is never checked if the vertices actually form a convex polygon. If they do not, results of any geometric query may end up being invalid.
Fields
vertices: Vec<Point<N>>
The vertices of this face.
edge_normals: Vec<Vector<N>>
The outward normal of the edges if it is a face.
normal: Option<Unit<Vector<N>>>
The normal of this feature if it is a face.
feature_id: FeatureId
The shape-dependent identifier of this feature.
vertices_id: Vec<FeatureId>
The shape-dependent indentifier of each vertex of this feature.
edges_id: Vec<FeatureId>
The shape-dependent indentifier of each edge of this feature.
Implementations
impl<N: RealField> ConvexPolygonalFeature<N>
[src]
impl<N: RealField> ConvexPolygonalFeature<N>
[src]pub fn new() -> Self
[src]
Creates a new empty convex polygonal faces.
pub fn with_size(n: usize) -> Self
[src]
Creates a new convex polygonal feature with all field initialized with n
zero elements.
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 normals 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 nedges(&self) -> usize
[src]
The number of edges of this convex polygonal face.
pub fn edge(&self, edge_id: FeatureId) -> Option<Segment<N>>
[src]
Retrieves the edge with the given feature id.
pub fn push_scaled_edge_normal(&mut self, normal: Vector<N>)
[src]
Adds a scaled edge normal to this face.
pub fn push_edge_normal(&mut self, normal: Unit<Vector<N>>)
[src]
Adds an edge normal to this face.
pub fn recompute_edge_normals(&mut self)
[src]
Automatically recomputes the scaled edge normals (3D only).
Panics if the ambient space is not 3D.
pub fn project_point(&self, pt: &Point<N>) -> Option<Contact<N>>
[src]
Transforms all the vertices of this feature by the given isometry.
pub fn set_normal(&mut self, normal: Unit<Vector<N>>)
[src]
Sets the outward normal of this convex polygonal face.
pub fn push_edge_feature_id(&mut self, id: FeatureId)
[src]
Add the shape-dependent identifier of a edge of this feature (if it is a face).
pub fn set_feature_id(&mut self, id: FeatureId)
[src]
Add the shape-dependent identifier of this feature.
pub fn clip(
&self,
other: &Self,
normal: &Unit<Vector<N>>,
prediction: &ContactPrediction<N>,
cache: &mut ClippingCache<N>,
out: &mut Vec<(Contact<N>, FeatureId, FeatureId)>
)
[src]
&self,
other: &Self,
normal: &Unit<Vector<N>>,
prediction: &ContactPrediction<N>,
cache: &mut ClippingCache<N>,
out: &mut Vec<(Contact<N>, FeatureId, FeatureId)>
)
Generate contacts between self
and other
using polygonal clipping, iif. they both have at least
three vertices.
If either self
or other
has less than three 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]
&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>
)
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: Clone + RealField> Clone for ConvexPolygonalFeature<N>
[src]fn clone(&self) -> ConvexPolygonalFeature<N>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
Auto Trait Implementations
impl<N> RefUnwindSafe for ConvexPolygonalFeature<N> where
N: RefUnwindSafe,
N: RefUnwindSafe,
impl<N> Send for ConvexPolygonalFeature<N>
impl<N> Sync for ConvexPolygonalFeature<N>
impl<N> Unpin for ConvexPolygonalFeature<N> where
N: Unpin,
N: Unpin,
impl<N> UnwindSafe for ConvexPolygonalFeature<N> where
N: UnwindSafe,
N: UnwindSafe,
Blanket Implementations
impl<T> DowncastSync for T where
T: Any + Send + Sync,
[src]
impl<T> DowncastSync for T where
T: Any + Send + Sync,
[src]impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
[src]
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
[src]