pub struct TransformInfo {
reference_from_entity: Affine3A,
pub reference_from_instances: SmallVec1<[Affine3A; 1]>,
pub twod_in_threed_info: Option<TwoDInThreeDTransformInfo>,
}
Fields§
§reference_from_entity: Affine3A
The transform from the entity to the reference space.
⚠️ Does not include per instance poses! ⚠️ Include 3D-from-2D / 2D-from-3D pinhole transform if present.
reference_from_instances: SmallVec1<[Affine3A; 1]>
List of transforms per instance including poses.
If no poses are present, this is always the same as reference_from_entity
.
(also implying that in this case there is only a single element).
If there are poses there may be more than one element.
twod_in_threed_info: Option<TwoDInThreeDTransformInfo>
If this entity is under (!) a pinhole camera, this contains additional information.
TODO(#2663, #1025): Going forward we should have separate transform hierarchies for 2D (i.e. projected) and 3D, which would remove the need for this.
Implementations§
source§impl TransformInfo
impl TransformInfo
sourcepub fn warn_on_per_instance_transform(
&self,
entity_name: &EntityPath,
visualizer_name: &'static str
)
pub fn warn_on_per_instance_transform( &self, entity_name: &EntityPath, visualizer_name: &'static str )
Warns that multiple transforms within the entity are not supported.
sourcepub fn single_entity_transform_required(
&self,
entity_name: &EntityPath,
visualizer_name: &'static str
) -> Affine3A
pub fn single_entity_transform_required( &self, entity_name: &EntityPath, visualizer_name: &'static str ) -> Affine3A
Returns the first instance transform and warns if there are multiple (via Self::warn_on_per_instance_transform
).
sourcepub fn single_entity_transform_silent(&self) -> Affine3A
pub fn single_entity_transform_silent(&self) -> Affine3A
Returns the first instance transform and does not warn if there are multiple.
sourcepub fn clamped_reference_from_instances(
&self
) -> impl Iterator<Item = Affine3A> + '_
pub fn clamped_reference_from_instances( &self ) -> impl Iterator<Item = Affine3A> + '_
Returns reference from instance transforms, repeating the last value indefinitely.
Trait Implementations§
source§impl Clone for TransformInfo
impl Clone for TransformInfo
source§fn clone(&self) -> TransformInfo
fn clone(&self) -> TransformInfo
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for TransformInfo
impl Debug for TransformInfo
Auto Trait Implementations§
impl Freeze for TransformInfo
impl RefUnwindSafe for TransformInfo
impl Send for TransformInfo
impl Sync for TransformInfo
impl Unpin for TransformInfo
impl UnwindSafe for TransformInfo
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
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§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> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request