Struct re_types::components::ViewCoordinates

source ·
#[repr(transparent)]
pub struct ViewCoordinates(pub [u8; 3]);
Expand description

Component: How we interpret the coordinate system of an entity/space.

For instance: What is “up”? What does the Z axis mean? Is this right-handed or left-handed?

The three coordinates are always ordered as [x, y, z].

For example [Right, Down, Forward] means that the X axis points to the right, the Y axis points down, and the Z axis points forward.

The following constants are used to represent the different directions:

  • Up = 1
  • Down = 2
  • Right = 3
  • Left = 4
  • Forward = 5
  • Back = 6

Tuple Fields§

§0: [u8; 3]

The directions of the [x, y, z] axes.

Implementations§

source§

impl ViewCoordinates

source

pub const fn new(x: ViewDir, y: ViewDir, z: ViewDir) -> Self

Construct a new ViewCoordinates from an array of ViewDirs.

source

pub fn from_up_and_handedness(up: SignedAxis3, handedness: Handedness) -> Self

Chooses a coordinate system based on just an up-axis.

source

pub fn sanity_check(&self) -> Result<(), String>

Returns an error if this does not span all three dimensions.

source

pub fn up(&self) -> Option<SignedAxis3>

The up-axis.

source

pub fn right(&self) -> Option<SignedAxis3>

The right-axis.

source

pub fn forward(&self) -> Option<SignedAxis3>

The forward-axis.

source

pub fn describe_short(&self) -> String

Describe using three letters, e.g. RDF for X=Right, Y=Down, Z=Forward.

source

pub fn describe(&self) -> String

A long description of the coordinate system, explicitly writing out all directions.

source§

impl ViewCoordinates

source

pub const ULF: Self = _

X=Up, Y=Left, Z=Forward

source

pub const UFL: Self = _

X=Up, Y=Forward, Z=Left

source

pub const LUF: Self = _

X=Left, Y=Up, Z=Forward

source

pub const LFU: Self = _

X=Left, Y=Forward, Z=Up

source

pub const FUL: Self = _

X=Forward, Y=Up, Z=Left

source

pub const FLU: Self = _

X=Forward, Y=Left, Z=Up

source

pub const ULB: Self = _

X=Up, Y=Left, Z=Back

source

pub const UBL: Self = _

X=Up, Y=Back, Z=Left

source

pub const LUB: Self = _

X=Left, Y=Up, Z=Back

source

pub const LBU: Self = _

X=Left, Y=Back, Z=Up

source

pub const BUL: Self = _

X=Back, Y=Up, Z=Left

source

pub const BLU: Self = _

X=Back, Y=Left, Z=Up

source

pub const URF: Self = _

X=Up, Y=Right, Z=Forward

source

pub const UFR: Self = _

X=Up, Y=Forward, Z=Right

source

pub const RUF: Self = _

X=Right, Y=Up, Z=Forward

source

pub const RFU: Self = _

X=Right, Y=Forward, Z=Up

source

pub const FUR: Self = _

X=Forward, Y=Up, Z=Right

source

pub const FRU: Self = _

X=Forward, Y=Right, Z=Up

source

pub const URB: Self = _

X=Up, Y=Right, Z=Back

source

pub const UBR: Self = _

X=Up, Y=Back, Z=Right

source

pub const RUB: Self = _

X=Right, Y=Up, Z=Back

source

pub const RBU: Self = _

X=Right, Y=Back, Z=Up

source

pub const BUR: Self = _

X=Back, Y=Up, Z=Right

source

pub const BRU: Self = _

X=Back, Y=Right, Z=Up

source

pub const DLF: Self = _

X=Down, Y=Left, Z=Forward

source

pub const DFL: Self = _

X=Down, Y=Forward, Z=Left

source

pub const LDF: Self = _

X=Left, Y=Down, Z=Forward

source

pub const LFD: Self = _

X=Left, Y=Forward, Z=Down

source

pub const FDL: Self = _

X=Forward, Y=Down, Z=Left

source

pub const FLD: Self = _

X=Forward, Y=Left, Z=Down

source

pub const DLB: Self = _

X=Down, Y=Left, Z=Back

source

pub const DBL: Self = _

X=Down, Y=Back, Z=Left

source

pub const LDB: Self = _

X=Left, Y=Down, Z=Back

source

pub const LBD: Self = _

X=Left, Y=Back, Z=Down

source

pub const BDL: Self = _

X=Back, Y=Down, Z=Left

source

pub const BLD: Self = _

X=Back, Y=Left, Z=Down

source

pub const DRF: Self = _

X=Down, Y=Right, Z=Forward

source

pub const DFR: Self = _

X=Down, Y=Forward, Z=Right

source

pub const RDF: Self = _

X=Right, Y=Down, Z=Forward

source

pub const RFD: Self = _

X=Right, Y=Forward, Z=Down

source

pub const FDR: Self = _

X=Forward, Y=Down, Z=Right

source

pub const FRD: Self = _

X=Forward, Y=Right, Z=Down

source

pub const DRB: Self = _

X=Down, Y=Right, Z=Back

source

pub const DBR: Self = _

X=Down, Y=Back, Z=Right

source

pub const RDB: Self = _

X=Right, Y=Down, Z=Back

source

pub const RBD: Self = _

X=Right, Y=Back, Z=Down

source

pub const BDR: Self = _

X=Back, Y=Down, Z=Right

source

pub const BRD: Self = _

X=Back, Y=Right, Z=Down

source

pub const RIGHT_HAND_X_UP: Self = _

X=Up, Y=Right, Z=Forward

source

pub const RIGHT_HAND_X_DOWN: Self = _

X=Down, Y=Right, Z=Back

source

pub const RIGHT_HAND_Y_UP: Self = _

X=Right, Y=Up, Z=Back

source

pub const RIGHT_HAND_Y_DOWN: Self = _

X=Right, Y=Down, Z=Forward

source

pub const RIGHT_HAND_Z_UP: Self = _

X=Right, Y=Forward, Z=Up

source

pub const RIGHT_HAND_Z_DOWN: Self = _

X=Right, Y=Back, Z=Down

source

pub const LEFT_HAND_X_UP: Self = _

X=Up, Y=Right, Z=Back

source

pub const LEFT_HAND_X_DOWN: Self = _

X=Down, Y=Right, Z=Forward

source

pub const LEFT_HAND_Y_UP: Self = _

X=Right, Y=Up, Z=Forward

source

pub const LEFT_HAND_Y_DOWN: Self = _

X=Right, Y=Down, Z=Back

source

pub const LEFT_HAND_Z_UP: Self = _

X=Right, Y=Back, Z=Up

source

pub const LEFT_HAND_Z_DOWN: Self = _

X=Right, Y=Forward, Z=Down

Trait Implementations§

source§

impl Clone for ViewCoordinates

source§

fn clone(&self) -> ViewCoordinates

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 ViewCoordinates

source§

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

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

impl<'a> From<&'a ViewCoordinates> for Cow<'a, ViewCoordinates>

source§

fn from(value: &'a ViewCoordinates) -> Self

Converts to this type from the input type.
source§

impl From<[u8; 3]> for ViewCoordinates

source§

fn from(coordinates: [u8; 3]) -> Self

Converts to this type from the input type.
source§

impl From<ViewCoordinates> for [u8; 3]

source§

fn from(value: ViewCoordinates) -> Self

Converts to this type from the input type.
source§

impl<'a> From<ViewCoordinates> for Cow<'a, ViewCoordinates>

source§

fn from(value: ViewCoordinates) -> Self

Converts to this type from the input type.
source§

impl FromStr for ViewCoordinates

§

type Err = String

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Loggable for ViewCoordinates

§

type Name = ComponentName

source§

fn name() -> Self::Name

The fully-qualified name of this loggable, e.g. rerun.datatypes.Vec2D.
source§

fn arrow_datatype() -> DataType

The underlying arrow2::datatypes::DataType, excluding datatype extensions.
source§

fn to_arrow_opt<'a>( data: impl IntoIterator<Item = Option<impl Into<Cow<'a, Self>>>> ) -> SerializationResult<Box<dyn Array>>
where Self: Clone + 'a,

Given an iterator of options of owned or reference values to the current Loggable, serializes them into an Arrow array. The Arrow array’s datatype will match Loggable::arrow_field. Read more
source§

fn from_arrow_opt( arrow_data: &dyn Array ) -> DeserializationResult<Vec<Option<Self>>>
where Self: Sized,

Given an Arrow array, deserializes it into a collection of optional Loggables. Read more
source§

fn from_arrow(arrow_data: &dyn Array) -> DeserializationResult<Vec<Self>>
where Self: Sized,

Given an Arrow array, deserializes it into a collection of Loggables. Read more
source§

fn extended_arrow_datatype() -> DataType

The underlying arrow2::datatypes::DataType, including datatype extensions. Read more
source§

fn arrow_field() -> Field

The underlying arrow2::datatypes::Field, including datatype extensions. Read more
source§

fn to_arrow<'a>( data: impl IntoIterator<Item = impl Into<Cow<'a, Self>>> ) -> Result<Box<dyn Array>, SerializationError>
where Self: 'a,

Given an iterator of owned or reference values to the current Loggable, serializes them into an Arrow array. The Arrow array’s datatype will match Loggable::arrow_field. Read more
source§

impl PartialEq for ViewCoordinates

source§

fn eq(&self, other: &ViewCoordinates) -> 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 SizeBytes for ViewCoordinates

source§

fn heap_size_bytes(&self) -> u64

Returns the total size of self on the heap, in bytes.
source§

fn is_pod() -> bool

Is Self just plain old data? Read more
source§

fn total_size_bytes(&self) -> u64

Returns the total size of self in bytes, accounting for both stack and heap space.
source§

fn stack_size_bytes(&self) -> u64

Returns the total size of self on the stack, in bytes. Read more
source§

impl Zeroable for ViewCoordinates

source§

fn zeroed() -> Self

source§

impl Copy for ViewCoordinates

source§

impl Eq for ViewCoordinates

source§

impl Pod for ViewCoordinates

source§

impl StructuralPartialEq for ViewCoordinates

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> 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> CheckedBitPattern for T
where T: AnyBitPattern,

§

type Bits = T

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
source§

fn is_valid_bit_pattern(_bits: &T) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
source§

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

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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<L> LoggableBatch for L
where L: Clone + Loggable,

§

type Name = <L as Loggable>::Name

source§

fn name(&self) -> <L as LoggableBatch>::Name

The fully-qualified name of this batch, e.g. rerun.datatypes.Vec2D.
source§

fn num_instances(&self) -> usize

The number of component instances stored into this batch.
source§

fn arrow_field(&self) -> Field

The underlying arrow2::datatypes::Field, including datatype extensions.
source§

fn to_arrow(&self) -> Result<Box<dyn Array>, SerializationError>

Serializes the batch into an Arrow array.
source§

impl<T> ToOwned for T
where 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 T
where 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 T
where 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.
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> AnyBitPattern for T
where T: Pod,

source§

impl<L> Component for L
where L: Loggable<Name = ComponentName>,

source§

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

source§

impl<T> NoUninit for T
where T: Pod,