rustyray_sys/
math.rs

1#[repr(C)]
2#[derive(Debug, Clone, Copy, PartialEq)]
3pub struct Rectangle {
4    pub x: f32,
5    pub y: f32,
6    pub width: f32,
7    pub height: f32,
8}
9
10#[repr(C)]
11#[derive(Debug, Clone, Copy)]
12pub struct Vector2 {
13    pub x: f32,
14    pub y: f32,
15}
16
17#[repr(C)]
18#[derive(Debug, Clone, Copy, PartialEq)]
19pub struct Vector3 {
20    pub x: f32,
21    pub y: f32,
22    pub z: f32,
23}
24
25/// Vector4, 4 components
26#[repr(C)]
27#[derive(Debug, Clone, Copy, PartialEq)]
28pub struct Vector4 {
29    pub x: f32,
30    pub y: f32,
31    pub z: f32,
32    pub w: f32,
33}
34
35/// Quaternion, 4 components (Vector4 alias)
36pub type Quaternion = Vector4;
37
38/// Matrix, 4x4 components, column major, OpenGL style, right-handed
39#[repr(C)]
40#[derive(Debug, Clone, Copy, PartialEq)]
41pub struct Matrix {
42    m0: f32,
43    m4: f32,
44    m8: f32,
45    m12: f32, // Matrix first row (4 components)
46    m1: f32,
47    m5: f32,
48    m9: f32,
49    m13: f32, // Matrix second row (4 components)
50    m2: f32,
51    m6: f32,
52    m10: f32,
53    m14: f32, // Matrix third row (4 components)
54    m3: f32,
55    m7: f32,
56    m11: f32,
57    m15: f32, // Matrix fourth row (4 components)
58}