pub struct Polyline<N: RealField + Copy> { /* private fields */ }
Expand description
A polygonal line.
Implementations§
Source§impl<N: RealField + Copy> Polyline<N>
impl<N: RealField + Copy> Polyline<N>
Sourcepub fn new(
points: Vec<Point<N>>,
indices: Option<Vec<Point2<usize>>>,
) -> Polyline<N>
pub fn new( points: Vec<Point<N>>, indices: Option<Vec<Point2<usize>>>, ) -> Polyline<N>
Builds a new polyline.
Sourcepub fn oriented(&self) -> bool
pub fn oriented(&self) -> bool
Whether this polyline is considered is oriented or not.
By default a polyline is not oriented.
Sourcepub fn set_oriented(&mut self, oriented: bool)
pub fn set_oriented(&mut self, oriented: bool)
Whether this polyline is considered as oriented or not.
This is determined at the initialization of the polyline.
Sourcepub fn edge_containing_feature(&self, id: FeatureId) -> usize
pub fn edge_containing_feature(&self, id: FeatureId) -> usize
Face containing feature.
Sourcepub fn segment_feature_to_polyline_feature(
&self,
edge_id: usize,
feature: FeatureId,
) -> FeatureId
pub fn segment_feature_to_polyline_feature( &self, edge_id: usize, feature: FeatureId, ) -> FeatureId
Converts a segment FeatureId to a polyline FeatureId.
Sourcepub fn edge_segment(&self, i: usize) -> Segment<N>
pub fn edge_segment(&self, i: usize) -> Segment<N>
The segment of the i
-th edge on this polyline.
Sourcepub fn segment_at(&self, i: usize) -> Segment<N>
pub fn segment_at(&self, i: usize) -> Segment<N>
Gets the i-th polyline element.
Sourcepub fn vertex_tangent_cone_contains_dir(
&self,
_i: usize,
_deformations: Option<&[N]>,
_dir: &Unit<Vector<N>>,
) -> bool
pub fn vertex_tangent_cone_contains_dir( &self, _i: usize, _deformations: Option<&[N]>, _dir: &Unit<Vector<N>>, ) -> bool
Tests that the given dir
is on the tangent cone of the i
th vertex
of this polyline.
Sourcepub fn transform_by(&mut self, transform: &Isometry<N>)
pub fn transform_by(&mut self, transform: &Isometry<N>)
Applies in-place a transformation to this polyline.
Sourcepub fn transformed(self, t: &Isometry<N>) -> Self
pub fn transformed(self, t: &Isometry<N>) -> Self
Applies a transformation to this polyline.
Sourcepub fn scale_by(&mut self, scale: &Vector<N>)
pub fn scale_by(&mut self, scale: &Vector<N>)
Applies in-place a non-uniform scale to this polyline.
Sourcepub fn is_backface(&self, feature: FeatureId) -> bool
pub fn is_backface(&self, feature: FeatureId) -> bool
Returns true
if the given feature is a FeatureId::Face and
identifies a backface of this polyline.
Sourcepub fn vertex_tangent_cone_polar_contains_dir(
&self,
i: usize,
dir: &Unit<Vector<N>>,
sin_ang_tol: N,
) -> bool
pub fn vertex_tangent_cone_polar_contains_dir( &self, i: usize, dir: &Unit<Vector<N>>, sin_ang_tol: N, ) -> bool
Tests that the given dir
is on the polar of the tangent cone of the i
th vertex
of this polyline.
Sourcepub fn edge_tangent_cone_contains_dir(
&self,
_i: usize,
_deformations: Option<&[N]>,
_dir: &Unit<Vector<N>>,
) -> bool
pub fn edge_tangent_cone_contains_dir( &self, _i: usize, _deformations: Option<&[N]>, _dir: &Unit<Vector<N>>, ) -> bool
Tests that the given dir
is on the tangent cone of the i
th edge
of this polyline.
Sourcepub fn edge_tangent_cone_polar_contains_dir(
&self,
i: usize,
dir: &Unit<Vector<N>>,
cos_ang_tol: N,
) -> bool
pub fn edge_tangent_cone_polar_contains_dir( &self, i: usize, dir: &Unit<Vector<N>>, cos_ang_tol: N, ) -> bool
Tests whether the polar of the tangent cone of the i-th edge of this polyline
contains the direction dir
considering the cosinus of an angular tolerance cos_ang_tol
.
Sourcepub fn tangent_cone_polar_contains_dir(
&self,
_feature: FeatureId,
_dir: &Unit<Vector<N>>,
_sin_ang_tol: N,
_cos_ang_tol: N,
) -> bool
pub fn tangent_cone_polar_contains_dir( &self, _feature: FeatureId, _dir: &Unit<Vector<N>>, _sin_ang_tol: N, _cos_ang_tol: N, ) -> bool
(Not yet implemented) Tests whether the polar of the tangent cone of the specified feature of
this polyline contains the direction dir
considering the sinus and cosinus of an angular tolerance.
Trait Implementations§
Source§impl<N: RealField + Copy> CompositeShape<N> for Polyline<N>
impl<N: RealField + Copy> CompositeShape<N> for Polyline<N>
Source§fn map_part_at(
&self,
i: usize,
m: &Isometry<N>,
f: &mut dyn FnMut(&Isometry<N>, &dyn Shape<N>),
)
fn map_part_at( &self, i: usize, m: &Isometry<N>, f: &mut dyn FnMut(&Isometry<N>, &dyn Shape<N>), )
Source§fn map_part_and_preprocessor_at(
&self,
i: usize,
m: &Isometry<N>,
prediction: &ContactPrediction<N>,
f: &mut dyn FnMut(&Isometry<N>, &dyn Shape<N>, &dyn ContactPreprocessor<N>),
)
fn map_part_and_preprocessor_at( &self, i: usize, m: &Isometry<N>, prediction: &ContactPrediction<N>, f: &mut dyn FnMut(&Isometry<N>, &dyn Shape<N>, &dyn ContactPreprocessor<N>), )
Source§impl<N: RealField + Copy> DeformableShape<N> for Polyline<N>
impl<N: RealField + Copy> DeformableShape<N> for Polyline<N>
Source§fn set_deformations(&mut self, coords: &[N])
fn set_deformations(&mut self, coords: &[N])
Updates all the degrees of freedom of this shape.
Source§fn deformations_type(&self) -> DeformationsType
fn deformations_type(&self) -> DeformationsType
Source§fn update_local_approximation(
&self,
coords: &[N],
approx: &mut LocalShapeApproximation<N>,
)
fn update_local_approximation( &self, coords: &[N], approx: &mut LocalShapeApproximation<N>, )
Source§impl<N: RealField + Copy> HasBoundingVolume<N, AABB<N>> for Polyline<N>
impl<N: RealField + Copy> HasBoundingVolume<N, AABB<N>> for Polyline<N>
Source§fn bounding_volume(&self, m: &Isometry<N>) -> AABB<N>
fn bounding_volume(&self, m: &Isometry<N>) -> AABB<N>
self
transformed by m
.Source§fn local_bounding_volume(&self) -> AABB<N>
fn local_bounding_volume(&self) -> AABB<N>
self
.Source§impl<N: RealField + Copy> HasBoundingVolume<N, BoundingSphere<N>> for Polyline<N>
impl<N: RealField + Copy> HasBoundingVolume<N, BoundingSphere<N>> for Polyline<N>
Source§fn bounding_volume(&self, m: &Isometry<N>) -> BoundingSphere<N>
fn bounding_volume(&self, m: &Isometry<N>) -> BoundingSphere<N>
self
transformed by m
.Source§fn local_bounding_volume(&self) -> BoundingSphere<N>
fn local_bounding_volume(&self) -> BoundingSphere<N>
self
.Source§impl<N: RealField + Copy> PointQuery<N> for Polyline<N>
impl<N: RealField + Copy> PointQuery<N> for Polyline<N>
Source§fn project_point(
&self,
m: &Isometry<N>,
point: &Point<N>,
solid: bool,
) -> PointProjection<N>
fn project_point( &self, m: &Isometry<N>, point: &Point<N>, solid: bool, ) -> PointProjection<N>
self
transformed by m
.Source§fn project_point_with_feature(
&self,
m: &Isometry<N>,
point: &Point<N>,
) -> (PointProjection<N>, FeatureId)
fn project_point_with_feature( &self, m: &Isometry<N>, point: &Point<N>, ) -> (PointProjection<N>, FeatureId)
self
transformed by m
and retuns the id of the
feature the point was projected on.Source§impl<N: RealField + Copy> PointQueryWithLocation<N> for Polyline<N>
impl<N: RealField + Copy> PointQueryWithLocation<N> for Polyline<N>
Source§type Location = (usize, SegmentPointLocation<N>)
type Location = (usize, SegmentPointLocation<N>)
Source§fn project_point_with_location(
&self,
m: &Isometry<N>,
point: &Point<N>,
_: bool,
) -> (PointProjection<N>, Self::Location)
fn project_point_with_location( &self, m: &Isometry<N>, point: &Point<N>, _: bool, ) -> (PointProjection<N>, Self::Location)
self
transformed by m
.Source§impl<N: RealField + Copy> RayCast<N> for Polyline<N>
impl<N: RealField + Copy> RayCast<N> for Polyline<N>
Source§fn toi_with_ray(
&self,
m: &Isometry<N>,
ray: &Ray<N>,
max_toi: N,
_: bool,
) -> Option<N>
fn toi_with_ray( &self, m: &Isometry<N>, ray: &Ray<N>, max_toi: N, _: bool, ) -> Option<N>
Source§fn toi_and_normal_with_ray(
&self,
m: &Isometry<N>,
ray: &Ray<N>,
max_toi: N,
_: bool,
) -> Option<RayIntersection<N>>
fn toi_and_normal_with_ray( &self, m: &Isometry<N>, ray: &Ray<N>, max_toi: N, _: bool, ) -> Option<RayIntersection<N>>
Source§fn toi_and_normal_and_uv_with_ray(
&self,
m: &Isometry<N>,
ray: &Ray<N>,
max_toi: N,
solid: bool,
) -> Option<RayIntersection<N>>
fn toi_and_normal_and_uv_with_ray( &self, m: &Isometry<N>, ray: &Ray<N>, max_toi: N, solid: bool, ) -> Option<RayIntersection<N>>
Source§impl<N: RealField + Copy> Shape<N> for Polyline<N>
impl<N: RealField + Copy> Shape<N> for Polyline<N>
Source§fn local_aabb(&self) -> AABB<N>
fn local_aabb(&self) -> AABB<N>
self
.Source§fn bounding_sphere(&self, m: &Isometry<N>) -> BoundingSphere<N>
fn bounding_sphere(&self, m: &Isometry<N>) -> BoundingSphere<N>
self
transformed by m
.Source§fn as_ray_cast(&self) -> Option<&dyn RayCast<N>>
fn as_ray_cast(&self) -> Option<&dyn RayCast<N>>
RayCast
implementation of self
.Source§fn as_point_query(&self) -> Option<&dyn PointQuery<N>>
fn as_point_query(&self) -> Option<&dyn PointQuery<N>>
PointQuery
implementation of self
.Source§fn as_composite_shape(&self) -> Option<&dyn CompositeShape<N>>
fn as_composite_shape(&self) -> Option<&dyn CompositeShape<N>>
self
if applicable.Source§fn is_composite_shape(&self) -> bool
fn is_composite_shape(&self) -> bool
self
uses a composite shape-based representation.Source§fn as_deformable_shape(&self) -> Option<&dyn DeformableShape<N>>
fn as_deformable_shape(&self) -> Option<&dyn DeformableShape<N>>
self
if applicable.Source§fn as_deformable_shape_mut(&mut self) -> Option<&mut dyn DeformableShape<N>>
fn as_deformable_shape_mut(&mut self) -> Option<&mut dyn DeformableShape<N>>
self
if applicable.Source§fn is_deformable_shape(&self) -> bool
fn is_deformable_shape(&self) -> bool
self
uses a composite shape-based representation.Source§fn tangent_cone_contains_dir(
&self,
_feature: FeatureId,
_m: &Isometry<N>,
_deformations: Option<&[N]>,
_dir: &Unit<Vector<N>>,
) -> bool
fn tangent_cone_contains_dir( &self, _feature: FeatureId, _m: &Isometry<N>, _deformations: Option<&[N]>, _dir: &Unit<Vector<N>>, ) -> bool
_feature
of the i-th
subshape of self
transformed by m
has a tangent
cone that contains dir
at the point pt
.Source§fn subshape_containing_feature(&self, id: FeatureId) -> usize
fn subshape_containing_feature(&self, id: FeatureId) -> usize
Source§fn local_bounding_sphere(&self) -> BoundingSphere<N>
fn local_bounding_sphere(&self) -> BoundingSphere<N>
self
.Source§fn as_convex_polyhedron(&self) -> Option<&dyn ConvexPolyhedron<N>>
fn as_convex_polyhedron(&self) -> Option<&dyn ConvexPolyhedron<N>>
self
if applicable.Source§fn as_support_map(&self) -> Option<&dyn SupportMap<N>>
fn as_support_map(&self) -> Option<&dyn SupportMap<N>>
self
if applicable.Source§fn is_convex_polyhedron(&self) -> bool
fn is_convex_polyhedron(&self) -> bool
self
uses a convex polyhedron representation.Source§fn is_support_map(&self) -> bool
fn is_support_map(&self) -> bool
self
uses a support-mapping based representation.Auto Trait Implementations§
impl<N> Freeze for Polyline<N>where
N: Freeze,
impl<N> RefUnwindSafe for Polyline<N>where
N: RefUnwindSafe,
impl<N> Send for Polyline<N>
impl<N> Sync for Polyline<N>
impl<N> Unpin for Polyline<N>where
N: Unpin,
impl<N> UnwindSafe for Polyline<N>where
N: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.