style: Match rotate ops.

Per bug 1322189 we really should. I've copied the setup we have already for
translate / scale, but we should really clean this up a bit more I'd think.

In any case, probably skew should be matched as well...

Bug: 1464615
Reviewed-by: hiro
MozReview-Commit-ID: Jky5k8HVfuH
This commit is contained in:
Emilio Cobos Álvarez 2018-05-25 20:11:37 +02:00
parent 01f805af9f
commit 2e500d70ef
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
3 changed files with 46 additions and 1 deletions

View file

@ -151,6 +151,27 @@ impl TransformOperation {
_ => unreachable!(),
}
}
/// Convert to a Rotate3D.
///
/// Must be called on a Rotate function.
pub fn to_rotate_3d(&self) -> Self {
match *self {
generic::TransformOperation::Rotate3D(..) => self.clone(),
generic::TransformOperation::RotateZ(ref angle) |
generic::TransformOperation::Rotate(ref angle) => {
generic::TransformOperation::Rotate3D(0., 0., 1., angle.clone())
}
generic::TransformOperation::RotateX(ref angle) => {
generic::TransformOperation::Rotate3D(1., 0., 0., angle.clone())
}
generic::TransformOperation::RotateY(ref angle) => {
generic::TransformOperation::Rotate3D(0., 1., 0., angle.clone())
}
_ => unreachable!(),
}
}
/// Convert to a Scale3D.
///
/// Must be called on a Scale function