Test chained transformations
This commit is contained in:
parent
a2aa132886
commit
7be0baba53
|
@ -189,4 +189,31 @@ mod tests {
|
|||
let p = Point::new(2., 3., 4.);
|
||||
assert_eq!(transform * p, Point::new(2., 3., 7.));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn individual_transformations_are_applied_in_sequence() {
|
||||
let p = Point::new(1., 0., 1.);
|
||||
let rotation = rotation_x(PI / 2.);
|
||||
let scale = scaling(5., 5., 5.);
|
||||
let translate = translation(10., 5., 7.);
|
||||
|
||||
let p2 = rotation * p;
|
||||
assert_eq!(p2, Point::new(1., -1., 0.));
|
||||
|
||||
let p3 = scale * p2;
|
||||
assert_eq!(p3, Point::new(5., -5., 0.));
|
||||
|
||||
let p4 = translate * p3;
|
||||
assert_eq!(p4, Point::new(15., 0., 7.));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn chained_translations() {
|
||||
let p = Point::new(1., 0., 1.);
|
||||
let rotation = rotation_x(PI / 2.);
|
||||
let scale = scaling(5., 5., 5.);
|
||||
let translate = translation(10., 5., 7.);
|
||||
let tr = translate * scale * rotation;
|
||||
assert_eq!(tr * p, Point::new(15., 0., 7.));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue