Struct TrackballInput

Source
pub struct TrackballInput {
Show 28 fields pub velocity: TrackballVelocity, pub wheel_unit: TrackballWheelUnit, pub focus: bool, pub gamer_key: Option<KeyCode>, pub ortho_key: Option<KeyCode>, pub reset_key: Option<KeyCode>, pub first_button: Option<MouseButton>, pub first_key: Option<KeyCode>, pub first_left_key: Option<KeyCode>, pub first_right_key: Option<KeyCode>, pub first_up_key: Option<KeyCode>, pub first_down_key: Option<KeyCode>, pub orbit_button: Option<MouseButton>, pub screw_left_key: Option<KeyCode>, pub screw_right_key: Option<KeyCode>, pub orbit_left_key: Option<KeyCode>, pub orbit_right_key: Option<KeyCode>, pub orbit_up_key: Option<KeyCode>, pub orbit_down_key: Option<KeyCode>, pub slide_button: Option<MouseButton>, pub slide_left_key: Option<KeyCode>, pub slide_right_key: Option<KeyCode>, pub slide_up_key: Option<KeyCode>, pub slide_down_key: Option<KeyCode>, pub slide_far_key: Option<KeyCode>, pub slide_near_key: Option<KeyCode>, pub scale_in_key: Option<KeyCode>, pub scale_out_key: Option<KeyCode>,
}
Expand description

Trackball controller input mappings and settings.

Fields§

§velocity: TrackballVelocity

Trackball velocity for time-based input like pressed keys.

§wheel_unit: TrackballWheelUnit

Wheel unit for coherent scaling. Default is 24 clicks per turn.

Device dependent setting as mouse wheel events usually lack a reference unit.

§focus: bool

Enables focus operation. Default is true.

Whether to slide towards mouse or single-finger touch position when Self::orbit_button is just pressed and released again or single-finger gesture is just started and ended again. Moving the cursor/finger slightly between pressed/started and released/ended events discards the focus operation in favor of the orbit operation.

§gamer_key: Option<KeyCode>

Key used to toggle esdf/wasd mapping. Default is KeyCode::KeyM.

§ortho_key: Option<KeyCode>

Key used to toggle projection mode. Default is KeyCode::KeyP.

§reset_key: Option<KeyCode>

Key used to reset frame. Default is KeyCode::Enter.

§first_button: Option<MouseButton>

Mouse button used to look around. Default is MouseButton::Middle.

§first_key: Option<KeyCode>

Key used to look around with single-finger touch. Default is KeyCode::ShiftLeft.

§first_left_key: Option<KeyCode>

Key used to look left. Default is KeyCode::ArrowLeft.

§first_right_key: Option<KeyCode>

Key used to look right. Default is KeyCode::ArrowRight.

§first_up_key: Option<KeyCode>

Key used to look up. Default is KeyCode::ArrowUp.

§first_down_key: Option<KeyCode>

Key used to look down. Default is KeyCode::ArrowDown.

§orbit_button: Option<MouseButton>

Mouse button used to orbit camera. Default is MouseButton::Left.

§screw_left_key: Option<KeyCode>

Key used to screw/roll left. Default is KeyCode::KeyU.

§screw_right_key: Option<KeyCode>

Key used to screw/roll right. Default is KeyCode::KeyO.

§orbit_left_key: Option<KeyCode>

Key used to orbit left. Default is KeyCode::KeyJ.

§orbit_right_key: Option<KeyCode>

Key used to orbit right. Default is KeyCode::KeyL.

§orbit_up_key: Option<KeyCode>

Key used to orbit up. Default is KeyCode::KeyI.

§orbit_down_key: Option<KeyCode>

Key used to orbit down. Default is KeyCode::KeyK.

§slide_button: Option<MouseButton>

Mouse button used to slide camera. Default is MouseButton::Right.

§slide_left_key: Option<KeyCode>

Key used to slide left. Default is KeyCode::KeyS.

§slide_right_key: Option<KeyCode>

Key used to slide right. Default is KeyCode::KeyF.

§slide_up_key: Option<KeyCode>

Key used to slide up. Default is KeyCode::KeyE.

§slide_down_key: Option<KeyCode>

Key used to slide up. Default is KeyCode::KeyD.

§slide_far_key: Option<KeyCode>

Key used to slide far. Default is KeyCode::KeyG.

§slide_near_key: Option<KeyCode>

Key used to slide near. Default is KeyCode::KeyV.

§scale_in_key: Option<KeyCode>

Key used to scale/zoom in. Default is KeyCode::KeyH.

§scale_out_key: Option<KeyCode>

Key used to scale/zoom out. Default is KeyCode::KeyN.

Implementations§

Source§

impl TrackballInput

Source

pub const fn map_esdf(&mut self)

Maps esdf/gv to slide operations.

KeyOperation
eSlides up.
sSlides left.
dSlides down.
fSlides right.
gSlides far (in/forward).
vSlides near (out/backward).

This mapping is symmetric to the ijkl/hn orbit mapping but less intuitive to gamers compared with Self::map_wasd.

Source

pub const fn map_wasd(&mut self)

Maps wasd/Space/ControlLeft to slide operations.

KeyOperation
wSlides far (in/forward).
aSlides left.
sSlides near (out/backward).
dSlides right.
SpaceSlides up (jump).
ControlLeftSlides down (crouch).

This mapping isn’t symmetric to the ijkl/hn orbit mapping but more intuitive to gamers compared with Self::map_esdf.

Trait Implementations§

Source§

impl Clone for TrackballInput

Source§

fn clone(&self) -> TrackballInput

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Component for TrackballInput
where Self: Send + Sync + 'static,

Source§

const STORAGE_TYPE: StorageType = bevy::ecs::component::StorageType::Table

A constant indicating the storage type used for this component.
Source§

type Mutability = Mutable

A marker type to assist Bevy with determining if this component is mutable, or immutable. Mutable components will have [Component<Mutability = Mutable>], while immutable components will instead have [Component<Mutability = Immutable>]. Read more
Source§

fn register_required_components( requiree: ComponentId, components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, inheritance_depth: u16, recursion_check_stack: &mut Vec<ComponentId>, )

Registers required components.
Source§

fn clone_behavior() -> ComponentCloneBehavior

Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§

fn register_component_hooks(hooks: &mut ComponentHooks)

👎Deprecated since 0.16.0: Use the individual hook methods instead (e.g., Component::on_add, etc.)
Called when registering this component, allowing mutable access to its ComponentHooks.
Source§

fn on_add() -> Option<for<'w> fn(_: DeferredWorld<'w>, _: HookContext)>

Gets the on_add ComponentHook for this Component if one is defined.
Source§

fn on_insert() -> Option<for<'w> fn(_: DeferredWorld<'w>, _: HookContext)>

Gets the on_insert ComponentHook for this Component if one is defined.
Source§

fn on_replace() -> Option<for<'w> fn(_: DeferredWorld<'w>, _: HookContext)>

Gets the on_replace ComponentHook for this Component if one is defined.
Source§

fn on_remove() -> Option<for<'w> fn(_: DeferredWorld<'w>, _: HookContext)>

Gets the on_remove ComponentHook for this Component if one is defined.
Source§

fn on_despawn() -> Option<for<'w> fn(_: DeferredWorld<'w>, _: HookContext)>

Gets the on_despawn ComponentHook for this Component if one is defined.
Source§

fn map_entities<E>(_this: &mut Self, _mapper: &mut E)
where E: EntityMapper,

Maps the entities on this component using the given EntityMapper. This is used to remap entities in contexts like scenes and entity cloning. When deriving Component, this is populated by annotating fields containing entities with #[entities] Read more
Source§

impl Debug for TrackballInput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TrackballInput

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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<C> Bundle for C
where C: Component,

Source§

fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )

Source§

fn register_required_components( components: &mut ComponentsRegistrator<'_>, required_components: &mut RequiredComponents, )

Registers components that are required by the components in this Bundle.
Source§

fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )

Gets this Bundle’s component ids. This will be None if the component has not been registered.
Source§

impl<C> BundleFromComponents for C
where C: Component,

Source§

unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
where F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a>,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

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> Downcast for T
where T: Any,

Source§

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

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

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

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

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

Convert &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> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<C> DynamicBundle for C
where C: Component,

Source§

type Effect = ()

An operation on the entity that happens after inserting this bundle.
Source§

fn get_components( self, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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> TypeData for T
where T: 'static + Send + Sync + Clone,

Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,

Source§

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

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,