fromsoftware_shared/dl_math/
linear.rs1use super::{F32Matrix4x4, F32Vector3, F32Vector4};
2
3#[repr(C, align(16))]
4#[derive(Debug, Clone, Copy, PartialEq)]
5pub struct Segment {
6 pub origin: F32Vector4,
8 pub dir: F32Vector4,
10}
11
12#[repr(C, align(16))]
13#[derive(Debug, Clone, Copy, PartialEq)]
14pub struct Ray {
15 pub origin: F32Vector4,
17 pub dir: F32Vector4,
19}
20
21#[repr(C, align(16))]
22#[derive(Debug, Clone, Copy, PartialEq)]
23pub struct Line {
24 pub origin: F32Vector4,
26 pub dir: F32Vector4,
28}
29
30#[repr(C, align(16))]
31#[derive(Debug, Clone, Copy, PartialEq)]
32pub struct Rectangle {
33 pub edge1: F32Vector4,
35 pub edge2: F32Vector4,
37 pub origin: F32Vector4,
39}
40
41#[repr(C, align(16))]
42#[derive(Debug, Clone, Copy, PartialEq)]
43pub struct Plane {
44 pub plane: F32Vector4,
46}
47
48#[repr(C, align(16))]
49#[derive(Debug, Clone, Copy, PartialEq)]
50pub struct Sphere {
51 pub sphere: F32Vector4,
53}
54
55#[repr(C, align(16))]
56#[derive(Debug, Clone, Copy, PartialEq)]
57pub struct Aabb {
58 pub min: F32Vector4,
60 pub max: F32Vector4,
62}
63
64#[repr(C, align(16))]
65#[derive(Debug, Clone, Copy, PartialEq)]
66pub struct Obb {
67 pub extents: F32Vector4,
69 pub xform: F32Matrix4x4,
71}
72
73#[repr(C, align(16))]
74#[derive(Debug, Clone, Copy, PartialEq)]
75pub struct Lss {
76 pub segment: Segment,
78 pub radius: f32,
80}
81
82#[repr(C, align(16))]
83#[derive(Debug, Clone, Copy, PartialEq)]
84pub struct Rss {
85 pub rectangle: Rectangle,
87 pub radius: f32,
89}
90
91#[repr(C, align(16))]
92#[derive(Debug, Clone, Copy, PartialEq)]
93pub struct Triangle {
94 pub origin: F32Vector4,
96 pub edge1: F32Vector4,
98 pub edge2: F32Vector4,
100}
101
102#[repr(C, align(16))]
103#[derive(Debug, Clone, Copy, PartialEq)]
104pub struct Triangle3 {
105 pub origin: F32Vector3,
107 pub edge1: F32Vector3,
109 pub edge2: F32Vector3,
111}
112
113#[repr(C, align(16))]
114#[derive(Debug, Clone, Copy, PartialEq)]
115pub struct Frustum {
116 pub planes: [Plane; 6],
118}