pub type TransformOperation = GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>;
Expand description
A single operation in a computed CSS transform
Aliased Type§
enum TransformOperation {
Show 23 variants
Matrix(GenericMatrix<f32>),
Matrix3D(GenericMatrix3D<f32>),
Skew(Angle, Angle),
SkewX(Angle),
SkewY(Angle),
Translate(LengthPercentage, LengthPercentage),
TranslateX(LengthPercentage),
TranslateY(LengthPercentage),
TranslateZ(CSSPixelLength),
Translate3D(LengthPercentage, LengthPercentage, CSSPixelLength),
Scale(f32, f32),
ScaleX(f32),
ScaleY(f32),
ScaleZ(f32),
Scale3D(f32, f32, f32),
Rotate(Angle),
RotateX(Angle),
RotateY(Angle),
RotateZ(Angle),
Rotate3D(f32, f32, f32, Angle),
Perspective(GenericPerspectiveFunction<CSSPixelLength>),
InterpolateMatrix {
from_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>,
to_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>,
progress: Percentage,
},
AccumulateMatrix {
from_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>,
to_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>,
count: i32,
},
}
Variants§
Matrix(GenericMatrix<f32>)
Represents a 2D 2x3 matrix.
Matrix3D(GenericMatrix3D<f32>)
Represents a 3D 4x4 matrix.
Skew(Angle, Angle)
A 2D skew.
If the second angle is not provided it is assumed zero.
Syntax can be skew(angle) or skew(angle, angle)
SkewX(Angle)
skewX(angle)
SkewY(Angle)
skewY(angle)
Translate(LengthPercentage, LengthPercentage)
translate(x, y) or translate(x)
TranslateX(LengthPercentage)
translateX(x)
TranslateY(LengthPercentage)
translateY(y)
TranslateZ(CSSPixelLength)
translateZ(z)
Translate3D(LengthPercentage, LengthPercentage, CSSPixelLength)
translate3d(x, y, z)
Scale(f32, f32)
A 2D scaling factor.
Syntax can be scale(factor) or scale(factor, factor)
ScaleX(f32)
scaleX(factor)
ScaleY(f32)
scaleY(factor)
ScaleZ(f32)
scaleZ(factor)
Scale3D(f32, f32, f32)
scale3D(factorX, factorY, factorZ)
Rotate(Angle)
Describes a 2D Rotation.
In a 3D scene rotate(angle)
is equivalent to rotateZ(angle)
.
RotateX(Angle)
Rotation in 3D space around the x-axis.
RotateY(Angle)
Rotation in 3D space around the y-axis.
RotateZ(Angle)
Rotation in 3D space around the z-axis.
Rotate3D(f32, f32, f32, Angle)
Rotation in 3D space.
Generalization of rotateX, rotateY and rotateZ.
Perspective(GenericPerspectiveFunction<CSSPixelLength>)
Specifies a perspective projection matrix.
Part of CSS Transform Module Level 2 and defined at § 13.1. 3D Transform Function.
The value must be greater than or equal to zero.
InterpolateMatrix
Fields
from_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>
to_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>
progress: Percentage
A intermediate type for interpolation of mismatched transform lists.
AccumulateMatrix
Fields
from_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>
to_list: GenericTransform<GenericTransformOperation<Angle, f32, CSSPixelLength, i32, LengthPercentage>>
A intermediate type for accumulation of mismatched transform lists.
Implementations§
source§impl TransformOperation
impl TransformOperation
sourcefn try_animate_mismatched_transforms_in_place(
left: &[Self],
right: &[Self],
procedure: Procedure
) -> Result<Self, ()>
fn try_animate_mismatched_transforms_in_place( left: &[Self], right: &[Self], procedure: Procedure ) -> Result<Self, ()>
If there are no size dependencies, we try to animate in-place, to avoid creating deeply nested Interpolate* operations.
fn animate_mismatched_transforms( left: &[Self], right: &[Self], procedure: Procedure ) -> Result<Self, ()>
source§impl TransformOperation
impl TransformOperation
sourcepub fn to_translate_3d(&self) -> Self
pub fn to_translate_3d(&self) -> Self
Convert to a Translate3D.
Must be called on a Translate function
sourcepub fn to_rotate_3d(&self) -> Self
pub fn to_rotate_3d(&self) -> Self
Convert to a Rotate3D.
Must be called on a Rotate function.
sourcepub fn to_scale_3d(&self) -> Self
pub fn to_scale_3d(&self) -> Self
Convert to a Scale3D.
Must be called on a Scale function
source§impl<Angle, Number, Length, Integer, LengthPercentage> TransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero,
LengthPercentage: Zero + ZeroNoPercent,
Number: PartialEq,
impl<Angle, Number, Length, Integer, LengthPercentage> TransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero, LengthPercentage: Zero + ZeroNoPercent, Number: PartialEq,
Trait Implementations§
source§impl Animate for TransformOperation
impl Animate for TransformOperation
source§impl<Angle, Number, Length: Clone, Integer: Clone, LengthPercentage> Clone for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + Clone,
LengthPercentage: Zero + ZeroNoPercent + Clone,
Number: PartialEq + Clone,
impl<Angle, Number, Length: Clone, Integer: Clone, LengthPercentage> Clone for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + Clone, LengthPercentage: Zero + ZeroNoPercent + Clone, Number: PartialEq + Clone,
source§fn clone(
&self
) -> GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>
fn clone( &self ) -> GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl ComputeSquaredDistance for TransformOperation
impl ComputeSquaredDistance for TransformOperation
source§fn compute_squared_distance(&self, other: &Self) -> Result<SquaredDistance, ()>
fn compute_squared_distance(&self, other: &Self) -> Result<SquaredDistance, ()>
source§impl<Angle, Number, Length: Debug, Integer: Debug, LengthPercentage> Debug for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + Debug,
LengthPercentage: Zero + ZeroNoPercent + Debug,
Number: PartialEq + Debug,
impl<Angle, Number, Length: Debug, Integer: Debug, LengthPercentage> Debug for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + Debug, LengthPercentage: Zero + ZeroNoPercent + Debug, Number: PartialEq + Debug,
source§impl<'de, Angle, Number, Length, Integer, LengthPercentage> Deserialize<'de> for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + Deserialize<'de>,
LengthPercentage: Zero + ZeroNoPercent + Deserialize<'de>,
Number: PartialEq + Deserialize<'de>,
Length: Deserialize<'de>,
Integer: Deserialize<'de>,
impl<'de, Angle, Number, Length, Integer, LengthPercentage> Deserialize<'de> for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + Deserialize<'de>, LengthPercentage: Zero + ZeroNoPercent + Deserialize<'de>, Number: PartialEq + Deserialize<'de>, Length: Deserialize<'de>, Integer: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl<Angle, Number, Length, Integer, LengthPercentage> MallocSizeOf for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + MallocSizeOf,
LengthPercentage: Zero + ZeroNoPercent + MallocSizeOf,
Number: PartialEq + MallocSizeOf,
Length: MallocSizeOf,
Integer: MallocSizeOf,
impl<Angle, Number, Length, Integer, LengthPercentage> MallocSizeOf for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + MallocSizeOf, LengthPercentage: Zero + ZeroNoPercent + MallocSizeOf, Number: PartialEq + MallocSizeOf, Length: MallocSizeOf, Integer: MallocSizeOf,
source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
source§impl<Angle, Number, Length: PartialEq, Integer: PartialEq, LengthPercentage> PartialEq<GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>> for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + PartialEq,
LengthPercentage: Zero + ZeroNoPercent + PartialEq,
Number: PartialEq + PartialEq,
impl<Angle, Number, Length: PartialEq, Integer: PartialEq, LengthPercentage> PartialEq<GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>> for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + PartialEq, LengthPercentage: Zero + ZeroNoPercent + PartialEq, Number: PartialEq + PartialEq,
source§fn eq(
&self,
other: &GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>
) -> bool
fn eq( &self, other: &GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage> ) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<Angle, Number, Length, Integer, LengthPercentage> Serialize for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + Serialize,
LengthPercentage: Zero + ZeroNoPercent + Serialize,
Number: PartialEq + Serialize,
Length: Serialize,
Integer: Serialize,
impl<Angle, Number, Length, Integer, LengthPercentage> Serialize for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + Serialize, LengthPercentage: Zero + ZeroNoPercent + Serialize, Number: PartialEq + Serialize, Length: Serialize, Integer: Serialize,
source§impl<Angle, Number, Length, Integer, LengthPercentage> SpecifiedValueInfo for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + SpecifiedValueInfo,
LengthPercentage: Zero + ZeroNoPercent + SpecifiedValueInfo,
Number: PartialEq + SpecifiedValueInfo,
Length: SpecifiedValueInfo,
Integer: SpecifiedValueInfo,
impl<Angle, Number, Length, Integer, LengthPercentage> SpecifiedValueInfo for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + SpecifiedValueInfo, LengthPercentage: Zero + ZeroNoPercent + SpecifiedValueInfo, Number: PartialEq + SpecifiedValueInfo, Length: SpecifiedValueInfo, Integer: SpecifiedValueInfo,
source§const SUPPORTED_TYPES: u8 = 0u8
const SUPPORTED_TYPES: u8 = 0u8
source§impl ToAnimatedZero for TransformOperation
impl ToAnimatedZero for TransformOperation
Build an equivalent ‘identity transform function list’ based on an existing transform list. http://dev.w3.org/csswg/css-transforms/#none-transform-animation
source§fn to_animated_zero(&self) -> Result<Self, ()>
fn to_animated_zero(&self) -> Result<Self, ()>
source§impl<Angle, Number, Length, Integer, LengthPercentage> ToComputedValue for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + ToComputedValue,
LengthPercentage: Zero + ZeroNoPercent + ToComputedValue,
Number: PartialEq + ToComputedValue,
<Angle as ToComputedValue>::ComputedValue: Zero,
<LengthPercentage as ToComputedValue>::ComputedValue: Zero + ZeroNoPercent,
<Number as ToComputedValue>::ComputedValue: PartialEq,
Length: ToComputedValue,
Integer: ToComputedValue,
impl<Angle, Number, Length, Integer, LengthPercentage> ToComputedValue for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + ToComputedValue, LengthPercentage: Zero + ZeroNoPercent + ToComputedValue, Number: PartialEq + ToComputedValue, <Angle as ToComputedValue>::ComputedValue: Zero, <LengthPercentage as ToComputedValue>::ComputedValue: Zero + ZeroNoPercent, <Number as ToComputedValue>::ComputedValue: PartialEq, Length: ToComputedValue, Integer: ToComputedValue,
§type ComputedValue = GenericTransformOperation<<Angle as ToComputedValue>::ComputedValue, <Number as ToComputedValue>::ComputedValue, <Length as ToComputedValue>::ComputedValue, <Integer as ToComputedValue>::ComputedValue, <LengthPercentage as ToComputedValue>::ComputedValue>
type ComputedValue = GenericTransformOperation<<Angle as ToComputedValue>::ComputedValue, <Number as ToComputedValue>::ComputedValue, <Length as ToComputedValue>::ComputedValue, <Integer as ToComputedValue>::ComputedValue, <LengthPercentage as ToComputedValue>::ComputedValue>
source§fn from_computed_value(from: &Self::ComputedValue) -> Self
fn from_computed_value(from: &Self::ComputedValue) -> Self
source§fn to_computed_value(&self, context: &Context<'_>) -> Self::ComputedValue
fn to_computed_value(&self, context: &Context<'_>) -> Self::ComputedValue
Context
.source§impl<Angle, Number, Length, Integer, LengthPercentage> ToCss for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where
Angle: Zero + ToCss,
LengthPercentage: Zero + ZeroNoPercent + ToCss,
Number: PartialEq + ToCss,
Length: ToCss,
Integer: ToCss,
impl<Angle, Number, Length, Integer, LengthPercentage> ToCss for GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>where Angle: Zero + ToCss, LengthPercentage: Zero + ZeroNoPercent + ToCss, Number: PartialEq + ToCss, Length: ToCss, Integer: ToCss,
source§impl<Angle, Number, Length, Integer, LoP> ToMatrix for TransformOperation<Angle, Number, Length, Integer, LoP>where
Angle: Zero + ToRadians + Copy,
Number: PartialEq + Copy + Into<f32> + Into<f64>,
Length: ToAbsoluteLength,
LoP: Zero + ToAbsoluteLength + ZeroNoPercent,
impl<Angle, Number, Length, Integer, LoP> ToMatrix for TransformOperation<Angle, Number, Length, Integer, LoP>where Angle: Zero + ToRadians + Copy, Number: PartialEq + Copy + Into<f32> + Into<f64>, Length: ToAbsoluteLength, LoP: Zero + ToAbsoluteLength + ZeroNoPercent,
source§fn to_3d_matrix(
&self,
reference_box: Option<&Rect<ComputedLength>>
) -> Result<Transform3D<f64>, ()>
fn to_3d_matrix( &self, reference_box: Option<&Rect<ComputedLength>> ) -> Result<Transform3D<f64>, ()>
If |reference_box| is None, we will drop the percent part from translate because we cannot resolve it without the layout info, for computed TransformOperation. However, for specified TransformOperation, we will return Err(()) if there is any relative lengths because the only caller, DOMMatrix, doesn’t accept relative lengths.