vector_operations/
vector_operations.rs1use vexel::vectors::{vector2::Vector2, vector3::Vector3, vector4::Vector4};
2
3fn main() {
4 let v2_a = Vector2 { x: 1.0, y: 2.0 };
6 let v2_b = Vector2 { x: 3.0, y: 4.0 };
7 let v3_a = Vector3 {
8 x: 1.0,
9 y: 2.0,
10 z: 3.0,
11 };
12 let v3_b = Vector3 {
13 x: 4.0,
14 y: 5.0,
15 z: 6.0,
16 };
17 let v4_a = Vector4 {
18 x: 1.0,
19 y: 2.0,
20 z: 3.0,
21 w: 4.0,
22 };
23 let v4_b = Vector4 {
24 x: 5.0,
25 y: 6.0,
26 z: 7.0,
27 w: 8.0,
28 };
29
30 println!("========================================");
31
32 println!("v2_a + v2_b = {:?}", v2_a + v2_b);
33 println!("v3_a + v3_b = {:?}", v3_a + v3_b);
34 println!("v4_a + v4_b = {:?}", v4_a + v4_b);
35
36 println!("========================================");
37
38 println!("v2_a - v2_b = {:?}", v2_a - v2_b);
39 println!("v3_a - v3_b = {:?}", v3_a - v3_b);
40 println!("v4_a - v4_b = {:?}", v4_a - v4_b);
41
42 println!("========================================");
43
44 println!("v2_a * v2_b = {:?}", v2_a - v2_b);
45 println!("v3_a * v3_b = {:?}", v3_a - v3_b);
46 println!("v4_a * v4_b = {:?}", v4_a - v4_b);
47
48 println!("========================================");
49
50 println!("v2_a / v2_b = {:?}", v2_a / v2_b);
51 println!("v3_a / v3_b = {:?}", v3_a / v3_b);
52 println!("v4_a / v4_b = {:?}", v4_a / v4_b);
53
54 println!("========================================");
55
56 println!("Length of Vector2: {}", v2_a.length());
58 println!("Length of Vector3: {}", v3_a.length());
59 println!("Length of Vector4: {}", v4_a.length());
60
61 println!("========================================");
62
63 println!("Dot Product of Vector2: {}", v2_a.dot(&v2_b));
65 println!("Dot Product of Vector3: {}", v3_a.dot(&v3_b));
66 println!("Dot Product of Vector4: {}", v4_a.dot(&v4_b));
67
68 println!("========================================");
69
70 println!("Cross Product of Vector2: {:?}", v2_a.cross(&v2_a));
72 println!("Cross Product of Vector3: {:?}", v3_a.cross(&v3_b));
73 println!("Cross Product of Vector4: {:?}", v4_a.cross(&v4_b));
74
75 println!("========================================");
76
77 println!("Projection onto of Vector2: {:?}", v2_a.project_onto(&v2_b));
79 println!("Projection onto of Vector3: {:?}", v3_a.project_onto(&v3_b));
80 println!("Projection onto of Vector4: {:?}", v4_a.project_onto(&v4_b));
81
82 println!("========================================");
83
84 println!("Lerp for Vector2 (t = 0.5): {:?}", v2_a.lerp(&v2_b, 0.5));
86 println!("Lerp for Vector3 (t = 0.5): {:?}", v3_a.lerp(&v3_b, 0.5));
87 println!("Lerp for Vector4 (t = 0.5): {:?}", v4_a.lerp(&v4_b, 0.5));
88
89 println!("Lerp for Vector2 (t = 0.0): {:?}", v2_a.lerp(&v2_b, 0.0)); println!("Lerp for Vector3 (t = 1.0): {:?}", v3_a.lerp(&v3_b, 1.0)); println!("========================================");
93
94 println!("Swizzled Vector2 (yx): {:?}", v2_a.swizzle(1, 0)); println!("Swizzled Vector3 (yxz): {:?}", v3_a.swizzle(1, 0, 2)); println!("Swizzled Vector4 (wzyx): {:?}", v4_a.swizzle(3, 2, 1, 0)); println!("========================================");
100
101 println!(
103 "Angle between Vector2 (radians): {}",
104 v2_a.angle_between(&v2_b)
105 );
106 println!(
107 "Angle between Vector3 (radians): {}",
108 v3_a.angle_between(&v3_b)
109 );
110 println!(
111 "Angle between Vector4 (radians): {}",
112 v4_a.angle_between(&v4_b)
113 );
114
115 println!("========================================");
116}