use static_math::{DualQuaternion, Quaternion, V3};
use static_math::transformations::{euler_to_rotation, homogeneous_from_quaternion};
fn main() {
let rot = euler_to_rotation(10f32.to_radians(), 10f32.to_radians(), 10f32.to_radians(), None);
let q = Quaternion::from_euler_angles(10f32.to_radians(), 10f32.to_radians(), 10f32.to_radians());
let t = homogeneous_from_quaternion(&q, &V3::new_from(1.0, 2.0, 3.0));
let double = DualQuaternion::new_from_homogeneous(&t).to_homogeneous();
let t_pure = DualQuaternion::new_from_translation(&V3::x_axis());
let r_pure = DualQuaternion::new_from_rotation(&q);
let normal = DualQuaternion::new_from_rot_trans(&q, &V3::x_axis());
let combined = t_pure * r_pure;
let r_pure2 = DualQuaternion::new_from_rotation_matrix(&rot);
let combined2 = t_pure * r_pure2;
println!("t: {}", t);
println!("double: {}", double);
println!("normal: {}", normal);
println!("combined: {}", combined);
println!("combined2: {}", combined2);
}