TnuaRadarBlipLens

Struct TnuaRadarBlipLens 

Source
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>

Source

pub fn entity(&self) -> Entity

The entity that generated the blip.

Source

pub fn is_interactable(&self) -> bool

Check if the physics engine is solving interaction between the controller entity and the blip entity.

Source

pub fn closest_point(&self) -> TnuaPointProjectionResult

Closest point (to the controller entity) on the surface of the collider that generated the blip.

Source

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.

Source

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.

Source

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.

Source

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

Source

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.

Source

pub fn normal_from_closest_point(&self) -> Vector3

The normal on the surface of the blip collider at the closest point.

Source

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>
where <X as TnuaSpatialExt>::ColliderData<'a>: Send, X: Sync,

§

impl<'a, X> !Sync for TnuaRadarBlipLens<'a, X>

§

impl<'a, X> Unpin for TnuaRadarBlipLens<'a, X>
where <X as TnuaSpatialExt>::ColliderData<'a>: Unpin,

§

impl<'a, X> UnwindSafe for TnuaRadarBlipLens<'a, X>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts 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>

Converts 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)

Converts &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)

Converts &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
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> WasmNotSend for T
where T: Send,