Struct bevy_rapier2d::prelude::Polyline
source · [−]pub struct Polyline { /* private fields */ }
Expand description
A polyline.
Implementations
sourceimpl Polyline
impl Polyline
sourcepub fn bounding_sphere(
&self,
pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> BoundingSphere
pub fn bounding_sphere(
&self,
pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> BoundingSphere
Computes the world-space bounding sphere of this polyline, transformed by pos
.
sourcepub fn local_bounding_sphere(&self) -> BoundingSphere
pub fn local_bounding_sphere(&self) -> BoundingSphere
Computes the local-space bounding sphere of this polyline.
sourceimpl Polyline
impl Polyline
sourcepub fn new(
vertices: Vec<OPoint<f32, Const<2_usize>>, Global>,
indices: Option<Vec<[u32; 2], Global>>
) -> Polyline
pub fn new(
vertices: Vec<OPoint<f32, Const<2_usize>>, Global>,
indices: Option<Vec<[u32; 2], Global>>
) -> Polyline
Creates a new polyline from a vertex buffer and an index buffer.
sourcepub fn aabb(&self, pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>) -> AABB
pub fn aabb(&self, pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>) -> AABB
Compute the axis-aligned bounding box of this polyline.
sourcepub fn local_aabb(&self) -> &AABB
pub fn local_aabb(&self) -> &AABB
Gets the local axis-aligned bounding box of this polyline.
sourcepub fn num_segments(&self) -> usize
pub fn num_segments(&self) -> usize
The number of segments forming this polyline.
sourcepub fn segments(&self) -> impl Iterator<Item = Segment>
pub fn segments(&self) -> impl Iterator<Item = Segment>
An iterator through all the segments of this mesh.
sourcepub fn segment_feature_to_polyline_feature(
&self,
segment: u32,
_feature: FeatureId
) -> FeatureId
pub fn segment_feature_to_polyline_feature(
&self,
segment: u32,
_feature: FeatureId
) -> FeatureId
Transforms the feature-id of a segment to the feature-id of this polyline.
sourcepub fn flat_indices(&self) -> &[u32]
pub fn flat_indices(&self) -> &[u32]
A flat view of the index buffer of this mesh.
sourcepub fn reverse(&mut self)
pub fn reverse(&mut self)
Reverse the orientation of this polyline by swapping the indices of all its segments and reverting its index buffer.
sourcepub fn project_local_point_assuming_solid_interior_ccw(
&self,
point: OPoint<f32, Const<2_usize>>
) -> (PointProjection, (u32, SegmentPointLocation))
pub fn project_local_point_assuming_solid_interior_ccw(
&self,
point: OPoint<f32, Const<2_usize>>
) -> (PointProjection, (u32, SegmentPointLocation))
Perform a point projection assuming a solid interior based on a counter-clock-wise orientation.
This is similar to self.project_local_point_and_get_location
except that the resulting
PointProjection::is_inside
will be set to true if the point is inside of the area delimited
by this polyline, assuming that:
- This polyline isn’t self-crossing.
- This polyline is closed with
self.indices[i][1] == self.indices[(i + 1) % num_indices][0]
wherenum_indices == self.indices.len()
. - This polyline is oriented counter-clockwise.
- In 3D, the polyline is assumed to be fully coplanar, on a plane with normal given by These properties are not checked.
Trait Implementations
sourceimpl PointQuery for Polyline
impl PointQuery for Polyline
sourcepub fn project_local_point(
&self,
point: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> PointProjection
pub fn project_local_point(
&self,
point: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> PointProjection
Projects a point on self
. Read more
sourcepub fn project_local_point_and_get_feature(
&self,
point: &OPoint<f32, Const<2_usize>>
) -> (PointProjection, FeatureId)
pub fn project_local_point_and_get_feature(
&self,
point: &OPoint<f32, Const<2_usize>>
) -> (PointProjection, FeatureId)
Projects a point on the boundary of self
and returns the id of the
feature the point was projected on. Read more
sourcepub fn contains_local_point(&self, point: &OPoint<f32, Const<2_usize>>) -> bool
pub fn contains_local_point(&self, point: &OPoint<f32, Const<2_usize>>) -> bool
Tests if the given point is inside of self
.
sourcefn distance_to_local_point(
&self,
pt: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> f32
fn distance_to_local_point(
&self,
pt: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> f32
Computes the minimal distance between a point and self
.
sourcefn project_point(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
pt: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> PointProjection
fn project_point(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
pt: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> PointProjection
Projects a point on self
transformed by m
.
sourcefn distance_to_point(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
pt: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> f32
fn distance_to_point(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
pt: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> f32
Computes the minimal distance between a point and self
transformed by m
.
sourceimpl PointQueryWithLocation for Polyline
impl PointQueryWithLocation for Polyline
type Location = (u32, SegmentPointLocation)
type Location = (u32, SegmentPointLocation)
Additional shape-specific projection information Read more
sourcepub fn project_local_point_and_get_location(
&self,
point: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> (PointProjection, <Polyline as PointQueryWithLocation>::Location)
pub fn project_local_point_and_get_location(
&self,
point: &OPoint<f32, Const<2_usize>>,
solid: bool
) -> (PointProjection, <Polyline as PointQueryWithLocation>::Location)
Projects a point on self
.
sourceimpl RayCast for Polyline
impl RayCast for Polyline
sourcepub fn cast_local_ray(
&self,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<f32>
pub fn cast_local_ray(
&self,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<f32>
Computes the time of impact between this transform shape and a ray.
sourcepub fn cast_local_ray_and_get_normal(
&self,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<RayIntersection>
pub fn cast_local_ray_and_get_normal(
&self,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<RayIntersection>
Computes the time of impact, and normal between this transformed shape and a ray.
sourcefn intersects_local_ray(&self, ray: &Ray, max_toi: f32) -> bool
fn intersects_local_ray(&self, ray: &Ray, max_toi: f32) -> bool
Tests whether a ray intersects this transformed shape.
sourcefn cast_ray(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<f32>
fn cast_ray(
&self,
m: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
ray: &Ray,
max_toi: f32,
solid: bool
) -> Option<f32>
Computes the time of impact between this transform shape and a ray.
sourceimpl Shape for Polyline
impl Shape for Polyline
sourcepub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>
pub fn clone_box(&self) -> Box<dyn Shape + 'static, Global>
Clones this shape into a boxed trait-object.
sourcepub fn compute_local_aabb(&self) -> AABB
pub fn compute_local_aabb(&self) -> AABB
Computes the AABB of this shape.
sourcepub fn compute_local_bounding_sphere(&self) -> BoundingSphere
pub fn compute_local_bounding_sphere(&self) -> BoundingSphere
Computes the bounding-sphere of this shape.
sourcepub fn compute_aabb(
&self,
position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
pub fn compute_aabb(
&self,
position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
Computes the AABB of this shape with the given position.
sourcepub fn mass_properties(&self, _density: f32) -> MassProperties
pub fn mass_properties(&self, _density: f32) -> MassProperties
Compute the mass-properties of this shape given its uniform density.
sourcepub fn shape_type(&self) -> ShapeType
pub fn shape_type(&self) -> ShapeType
Gets the type tag of this shape.
sourcepub fn as_typed_shape(&self) -> TypedShape<'_>
pub fn as_typed_shape(&self) -> TypedShape<'_>
Gets the underlying shape as an enum.
pub fn ccd_thickness(&self) -> f32
pub fn ccd_angular_thickness(&self) -> f32
pub fn as_composite_shape(&self) -> Option<&dyn SimdCompositeShape>
sourcefn compute_bounding_sphere(
&self,
position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> BoundingSphere
fn compute_bounding_sphere(
&self,
position: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> BoundingSphere
Computes the bounding-sphere of this shape with the given position.
sourcefn as_support_map(&self) -> Option<&dyn SupportMap>
fn as_support_map(&self) -> Option<&dyn SupportMap>
Convents this shape into its support mapping, if it has one.
sourcefn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
fn as_polygonal_feature_map(&self) -> Option<(&dyn PolygonalFeatureMap, f32)>
Converts this shape to a polygonal feature-map, if it is one.
sourcefn feature_normal_at_point(
&self,
_feature: FeatureId,
_point: &OPoint<f32, Const<2_usize>>
) -> Option<Unit<Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>>>
fn feature_normal_at_point(
&self,
_feature: FeatureId,
_point: &OPoint<f32, Const<2_usize>>
) -> Option<Unit<Matrix<f32, Const<{_: usize}>, Const<1_usize>, ArrayStorage<f32, 2_usize, 1_usize>>>>
The shape’s normal at the given point located on a specific feature.
sourcefn compute_swept_aabb(
&self,
start_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
end_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
fn compute_swept_aabb(
&self,
start_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>,
end_pos: &Isometry<f32, Unit<Complex<f32>>, 2_usize>
) -> AABB
Computes the swept AABB of this shape, i.e., the space it would occupy by moving from the given start position to the given end position. Read more
sourceimpl SimdCompositeShape for Polyline
impl SimdCompositeShape for Polyline
sourceimpl TypedSimdCompositeShape for Polyline
impl TypedSimdCompositeShape for Polyline
type PartShape = Segment
type PartId = u32
pub fn map_typed_part_at(
&self,
i: u32,
f: impl FnMut(Option<&Isometry<f32, Unit<Complex<f32>>, 2_usize>>, &<Polyline as TypedSimdCompositeShape>::PartShape)
)
pub fn map_untyped_part_at(
&self,
i: u32,
f: impl FnMut(Option<&Isometry<f32, Unit<Complex<f32>>, 2_usize>>, &(dyn Shape + 'static))
)
pub fn typed_qbvh(&self) -> &QBVH<u32>
Auto Trait Implementations
impl RefUnwindSafe for Polyline
impl Send for Polyline
impl Sync for Polyline
impl Unpin for Polyline
impl UnwindSafe for Polyline
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert 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
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
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>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more