pub struct PickingStateMachine {
pub previous: GlobalPickingState,
pub current: GlobalPickingState,
pub pointer: Vec2,
pub press: Option<PressState>,
pub current_btn_just_pressed: bool,
pub pointer_is_out_of_bounds: bool,
pub is_post_cancellation_state: bool,
pub transitions: PickingTransitions,
}Expand description
Global state machine for bevy_picking.
Fields§
§previous: GlobalPickingStateState of the previous frame.
current: GlobalPickingStateState of the current frame.
pointer: Vec2Pointer position.
press: Option<PressState>If mouse is pressed, contains position, button and time of the button press.
§Note
This will not be present on button release, use transitions instead.
current_btn_just_pressed: boolIf true, current button is just pressed.
pointer_is_out_of_bounds: boolIf true, PickingStateMachine::pointer
is not retrieved from the current frame.
is_post_cancellation_state: boolTrue if multiple valid buttons are pressed as the same time. Lasts until all valid buttons are released.
transitions: PickingTransitionsAn internal event channel for picking events.
Use as_ref or iter to access items.
Implementations§
Source§impl PickingStateMachine
impl PickingStateMachine
Sourcepub fn get_state(&self, entity: Entity) -> EntityPickingState
pub fn get_state(&self, entity: Entity) -> EntityPickingState
Returns the current state on an entity.
§Note
- At most one entity have state other than
EntityPickingState::Noneat a given frame. - Does not require the entity to exist.
Sourcepub fn active_state(&self) -> EntityPickingState
pub fn active_state(&self) -> EntityPickingState
Returns the current state on the active entity.
Sourcepub fn get_transition(&self, entity: Entity) -> Option<PickingTransition>
pub fn get_transition(&self, entity: Entity) -> Option<PickingTransition>
Returns the current state transition event on an entity.
Sourcepub fn get_active_entity(&self) -> Option<Entity>
pub fn get_active_entity(&self) -> Option<Entity>
Returns the active entity that is being hovered or pressed.
Sourcepub fn is_hovering(&self) -> bool
pub fn is_hovering(&self) -> bool
Returns true if something is hovered and no recognized button is being pressed.
Sourcepub fn is_pressing(&self) -> bool
pub fn is_pressing(&self) -> bool
Returns true if a recognized button is pressed and not in cancellation state.
Sourcepub fn is_cancelled(&self) -> bool
pub fn is_cancelled(&self) -> bool
Returns true if in cancellation state.
Trait Implementations§
Source§impl Clone for PickingStateMachine
impl Clone for PickingStateMachine
Source§fn clone(&self) -> PickingStateMachine
fn clone(&self) -> PickingStateMachine
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PickingStateMachine
impl Debug for PickingStateMachine
Source§impl Default for PickingStateMachine
impl Default for PickingStateMachine
Source§fn default() -> PickingStateMachine
fn default() -> PickingStateMachine
impl Resource for PickingStateMachine
Auto Trait Implementations§
impl Freeze for PickingStateMachine
impl RefUnwindSafe for PickingStateMachine
impl Send for PickingStateMachine
impl Sync for PickingStateMachine
impl Unpin for PickingStateMachine
impl UnwindSafe for PickingStateMachine
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> 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>, 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> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
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