#[non_exhaustive]pub struct TransformSession {
pub items: Rc<[ItemId]>,
pub handle: TransformHandle,
pub start_frame: TransformFrame,
pub frame: TransformFrame,
pub delta: TransformDelta,
pub source: TransformSource,
}Expand description
A snapshot of the live session, handed to the three event hooks and
published by
SceneView::transform_session_signal.
#[non_exhaustive]: the crate hands this to consumer code — it is the
argument of all three hooks — and a session may learn to carry more. Build
one with new, which is what a consumer’s own test of its
on_end needs.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.items: Rc<[ItemId]>The selection roots this gesture will actually change — pruned of any item whose ancestor is also in the set (moving the ancestor already moves it) and filtered to those carrying the operation’s flag.
handle: TransformHandleThe handle being driven.
start_frame: TransformFrameThe frame as it was when the gesture started.
frame: TransformFrameThe frame now, after the scene’s geometry constraint.
delta: TransformDeltaThe delta now, in agreement with frame.
source: TransformSourceWhich route produced it.
Implementations§
Source§impl TransformSession
impl TransformSession
Sourcepub fn new(
items: Rc<[ItemId]>,
handle: TransformHandle,
start_frame: TransformFrame,
frame: TransformFrame,
delta: TransformDelta,
source: TransformSource,
) -> Self
pub fn new( items: Rc<[ItemId]>, handle: TransformHandle, start_frame: TransformFrame, frame: TransformFrame, delta: TransformDelta, source: TransformSource, ) -> Self
A session snapshot stated field by field — the constructor
#[non_exhaustive] takes the place of a struct literal for.
The controller builds its own; this exists so a consumer can drive its
on_start / on_change / on_end from a test without a live view.
Sourcepub fn op(&self) -> TransformOp
pub fn op(&self) -> TransformOp
The operation this session performs.
Trait Implementations§
Source§impl Clone for TransformSession
impl Clone for TransformSession
Source§fn clone(&self) -> TransformSession
fn clone(&self) -> TransformSession
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !Send for TransformSession
impl !Sync for TransformSession
impl Freeze for TransformSession
impl RefUnwindSafe for TransformSession
impl Unpin for TransformSession
impl UnsafeUnpin for TransformSession
impl UnwindSafe for TransformSession
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§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>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§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.§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.impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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