# Struct fidl_fuchsia_ui_observation_geometry::RotatableExtent

``````pub struct RotatableExtent {
pub origin: PointF,
pub width: f32,
pub height: f32,
pub angle_degrees: f32,
}``````
Expand description

A view bounding box, described in another view’s coordinate system. Concretely, |RotatableExtent| describes the origin, size, and rotation angle about the origin, for a view’s bounding box.

Note: For describing a view’s bounding box in the view’s own coordinate system, see |AlignedExtent|.

We use “V” to refer to the view being described, and “W” to refer to the view where V is being described.

Note that while |angle| can be arbitrary, typical usage is axis aligned. To find the bounding box of V in W in clockwise order, starting with |origin|, where |angle| is 0, 90, 180, or 270, and using o=origin, w=width, h=height, a=angle: a= 0: (o.x, o.y), (o.x + w, o.y), (o.x + w, o.y + h), (o.x, o.y + h) a= 90: (o.x, o.y), (o.x, o.y - w), (o.x + h, o.y - w), (o.x + h, o.y) a=180: (o.x, o.y), (o.x - w, o.y), (o.x - w, o.y - h), (o.x, o.y - h) a=270: (o.x, o.y), (o.x, o.y + w), (o.x - h, o.y + w), (o.x - h, o.y) A formula based on sin a and cos a is readily obtained, but floating point computation may give only approximate results.

## Fields§

§`origin: PointF`

The origin point of V’s bounding box, in W’s coordinate system.

§`width: f32`

The width of V’s bounding box (along the direction where V’s x axis increases), in W’s coordinate system.

§`height: f32`

The height of V’s bounding box (along the direction where V’s y axis increases), in W’s coordinate system.

§`angle_degrees: f32`

The clockwise rotation about the origin, in degrees.

## Trait Implementations§

source§

### impl Clone for RotatableExtent

source§

#### fn clone(&self) -> RotatableExtent

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 Debug for RotatableExtent

source§

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

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

### impl Decode<RotatableExtent> for RotatableExtent

source§

#### fn new_empty() -> Self

Creates a valid instance of `Self`. The specific value does not matter, since it will be overwritten by `decode`.
source§

#### unsafe fn decode( &mut self, decoder: &mut Decoder<'_>, offset: usize, _depth: Depth, ) -> Result<()>

Decodes an object of type `T` from the decoder’s buffers into `self`. Read more
source§

### impl Encode<RotatableExtent> for &RotatableExtent

source§

#### unsafe fn encode( self, encoder: &mut Encoder<'_>, offset: usize, _depth: Depth, ) -> Result<()>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for `Handle::INVALID`. Read more
source§

### impl<T0: Encode<PointF>, T1: Encode<f32>, T2: Encode<f32>, T3: Encode<f32>> Encode<RotatableExtent> for (T0, T1, T2, T3)

source§

#### unsafe fn encode( self, encoder: &mut Encoder<'_>, offset: usize, depth: Depth, ) -> Result<()>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for `Handle::INVALID`. Read more
source§

### impl PartialEq for RotatableExtent

source§

#### fn eq(&self, other: &RotatableExtent) -> bool

This method tests for `self` and `other` values to be equal, and is used by `==`.
1.0.0 · source§

#### fn ne(&self, other: &Rhs) -> bool

This method tests for `!=`. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

### impl TypeMarker for RotatableExtent

§

#### type Owned = RotatableExtent

The owned Rust type which this FIDL type decodes into.
source§

#### fn inline_align(_context: Context) -> usize

Returns the minimum required alignment of the inline portion of the encoded object. It must be a (nonzero) power of two.
source§

#### fn inline_size(_context: Context) -> usize

Returns the size of the inline portion of the encoded object, including padding for alignment. Must be a multiple of `inline_align`.
§

#### fn encode_is_copy() -> bool

Returns true if the memory layout of `Self::Owned` matches the FIDL wire format and encoding requires no validation. When true, we can optimize encoding arrays and vectors of `Self::Owned` to a single memcpy. Read more
§

#### fn decode_is_copy() -> bool

Returns true if the memory layout of `Self::Owned` matches the FIDL wire format and decoding requires no validation. When true, we can optimize decoding arrays and vectors of `Self::Owned` to a single memcpy.
source§

### impl ValueTypeMarker for RotatableExtent

§

#### type Borrowed<'a> = &'a RotatableExtent

The Rust type to use for encoding. This is a particular `Encode<Self>` type cheaply obtainable from `&Self::Owned`. There are three cases: Read more
source§

#### fn borrow<'a>(value: &'a <Self as TypeMarker>::Owned) -> Self::Borrowed<'a>

Cheaply converts from `&Self::Owned` to `Self::Borrowed`.
source§

source§

§

§

§

§

§

§

## Blanket Implementations§

source§

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

source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
§

### impl<T> Body for Twhere T: Persistable,

§

#### type MarkerAtTopLevel = T

The marker type to use when the body is at the top-level.
§

#### type MarkerInResultUnion = T

The marker type to use when the body is nested in a result union.
source§

### impl<T> Borrow<T> for Twhere T: ?Sized,

source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

### impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

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

Mutably borrows from an owned value. Read more
source§

### impl<T> CloneToUninit for Twhere T: Clone,

source§

#### default unsafe fn clone_to_uninit(&self, dst: *mut T)

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

### impl<T> Encode<Ambiguous1> for T

§

#### unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for `Handle::INVALID`. Read more
§

### impl<T> Encode<Ambiguous2> for T

§

#### unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for `Handle::INVALID`. Read more
§

§

The marker type.
source§

### impl<T> From<T> for T

source§

#### fn from(t: T) -> T

Returns the argument unchanged.

§

### impl<T> Instrument for T

§

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

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

#### 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 Twhere 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.

§

### impl<T> Pointable for T

§

#### const ALIGN: usize = _

The alignment of pointer.
§

#### type Init = T

The type for initializers.
§

#### unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

#### unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

#### unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

#### unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

### impl<T> ToOwned for Twhere T: Clone,

§

#### 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 Twhere U: Into<T>,

§

#### 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 Twhere U: TryFrom<T>,

§

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

### impl<T> WithSubscriber for T

§

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

#### fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default `Subscriber` to this type, returning a [`WithDispatch`] wrapper. Read more