pub struct TnuaRadarBlipLens<'a, X: TnuaSpatialExt> {
pub collider_data: X::ColliderData<'a>,
/* private fields */
}Fields§
§collider_data: X::ColliderData<'a>Physical properties of the collider from the physics backend.
This is typically a tuple of the collider, the position, and the rotation - but these are different types in each physics backend.
Implementations§
Source§impl<X: TnuaSpatialExt> TnuaRadarBlipLens<'_, X>
impl<X: TnuaSpatialExt> TnuaRadarBlipLens<'_, X>
Sourcepub fn is_interactable(&self) -> bool
pub fn is_interactable(&self) -> bool
Check if the physics engine is solving interaction between the controller entity and the blip entity.
Sourcepub fn closest_point(&self) -> TnuaPointProjectionResult
pub fn closest_point(&self) -> TnuaPointProjectionResult
Closest point (to the controller entity) on the surface of the collider that generated the blip.
Sourcepub fn closest_point_from(
&self,
point: Vector3,
solid: bool,
) -> TnuaPointProjectionResult
pub fn closest_point_from( &self, point: Vector3, solid: bool, ) -> TnuaPointProjectionResult
Closest point (to some provided point) on the surface of the collider that generated the blip.
Sourcepub fn closest_point_from_offset(
&self,
offset: Vector3,
solid: bool,
) -> TnuaPointProjectionResult
pub fn closest_point_from_offset( &self, offset: Vector3, solid: bool, ) -> TnuaPointProjectionResult
Closest point (to an offset from the controller entity) on the surface of the collider that generated the blip.
Sourcepub fn flat_wall_score(&self, up: Dir3, offsets: &[Float]) -> Float
pub fn flat_wall_score(&self, up: Dir3, offsets: &[Float]) -> Float
A number between 0.0 (floor) and 1.0 (wall) indicating how close the blip is to a perfectly vertical wall.
Sourcepub fn probe_extent_from_closest_point(
&self,
direction: Dir3,
probe_at_distance: Float,
) -> Float
pub fn probe_extent_from_closest_point( &self, direction: Dir3, probe_at_distance: Float, ) -> Float
Try traversing the geometry from the closest_point along
direction until reaching probe_at_distance.
If the geometry reaches that distance (and behind), that distance will be returned.
If the geometry does not reach the desired distance, and it ends in a right angle or acute angle, the distance to that point will be returned.
If the geometry does not reach the desired distance, and it “ends” in an obtuse angle, the
returned value will be between that point and probe_at_distance.
This is useful to detect when the character is near the top of a wall or of a climbable object.
Maybe have weird results if used on concave colliders, and the distance may not be accurate in genral, so always use a threshold
Sourcepub fn direction_to_closest_point(&self) -> Result<Dir3, InvalidDirectionError>
pub fn direction_to_closest_point(&self) -> Result<Dir3, InvalidDirectionError>
The direction from the controller entity to the blip’s surface.
If the controller entity is inside the blip surface (possible when the physics engine is set to not solve contacts between them), this will still point into the insdie of the blip entity.
Sourcepub fn normal_from_closest_point(&self) -> Vector3
pub fn normal_from_closest_point(&self) -> Vector3
The normal on the surface of the blip collider at the closest point.
Sourcepub fn spatial_relation(&self, threshold: Float) -> TnuaBlipSpatialRelation
pub fn spatial_relation(&self, threshold: Float) -> TnuaBlipSpatialRelation
Where is the blip collider located relative to the controller entity.
Auto Trait Implementations§
impl<'a, X> !Freeze for TnuaRadarBlipLens<'a, X>
impl<'a, X> !RefUnwindSafe for TnuaRadarBlipLens<'a, X>
impl<'a, X> Send for TnuaRadarBlipLens<'a, X>
impl<'a, X> !Sync for TnuaRadarBlipLens<'a, X>
impl<'a, X> Unpin for TnuaRadarBlipLens<'a, X>
impl<'a, X> UnwindSafe for TnuaRadarBlipLens<'a, X>
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.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> 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>, which can then be
downcast into Box<dyn 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>, which 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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more