1#include "ObjectCollisionBox.hh"
6ObjectCollisionBox::ObjectCollisionBox(f32 x, f32 y, f32 z,
const EGG::Vector3f ¢er)
7 : ObjectCollisionConvexHull(8), m_dimensions(x, y, z), m_center(center),
8 m_scale(
EGG::Vector3f::unit) {
9 f32 radius = getBoundingRadius();
12 m_points[0].x = m_center.x + scaledDims.x;
13 m_points[0].y = m_center.y + 2.0f * scaledDims.y;
14 m_points[0].z = m_center.z + scaledDims.z;
16 m_points[1].x = m_center.x + scaledDims.x;
17 m_points[1].y = m_center.y + 2.0f * scaledDims.y;
18 m_points[1].z = m_center.z - scaledDims.z;
20 m_points[2].x = m_center.x + scaledDims.x;
21 m_points[2].y = m_center.y - 2.0f * scaledDims.y;
22 m_points[2].z = m_center.z + scaledDims.z;
24 m_points[3].x = m_center.x - scaledDims.x;
25 m_points[3].y = m_center.y + 2.0f * scaledDims.y;
26 m_points[3].z = m_center.z + scaledDims.z;
28 m_points[4].x = m_center.x + scaledDims.x;
29 m_points[4].y = m_center.y - 2.0f * scaledDims.y;
30 m_points[4].z = m_center.z - scaledDims.z;
32 m_points[5].x = m_center.x - scaledDims.x;
33 m_points[5].y = m_center.y + 2.0f * scaledDims.y;
34 m_points[5].z = m_center.z - scaledDims.z;
36 m_points[6].x = m_center.x - scaledDims.x;
37 m_points[6].y = m_center.y - 2.0f * scaledDims.y;
38 m_points[6].z = m_center.z + scaledDims.z;
40 m_points[7].x = m_center.x - scaledDims.x;
41 m_points[7].y = m_center.y - 2.0f * scaledDims.y;
42 m_points[7].z = m_center.z - scaledDims.z;
46ObjectCollisionBox::~ObjectCollisionBox() =
default;
50 f32 radius = getBoundingRadius();
55 m_points[0].x = m_center.x + scaledDims.x;
56 m_points[0].y = m_center.y + 2.0f * scaledDims.y;
57 m_points[0].z = m_center.z + scaledDims.z;
59 m_points[1].x = m_center.x + scaledDims.x;
60 m_points[1].y = m_center.y + 2.0f * scaledDims.y;
61 m_points[1].z = m_center.z - scaledDims.z;
63 m_points[2].x = m_center.x + scaledDims.x;
64 m_points[2].y = m_center.y - 2.0f * scaledDims.y;
65 m_points[2].z = m_center.z + scaledDims.z;
67 m_points[3].x = m_center.x - scaledDims.x;
68 m_points[3].y = m_center.y + 2.0f * scaledDims.y;
69 m_points[3].z = m_center.z + scaledDims.z;
71 m_points[4].x = m_center.x + scaledDims.x;
72 m_points[4].y = m_center.y - 2.0f * scaledDims.y;
73 m_points[4].z = m_center.z - scaledDims.z;
75 m_points[5].x = m_center.x - scaledDims.x;
76 m_points[5].y = m_center.y + 2.0f * scaledDims.y;
77 m_points[5].z = m_center.z - scaledDims.z;
79 m_points[6].x = m_center.x - scaledDims.x;
80 m_points[6].y = m_center.y - 2.0f * scaledDims.y;
81 m_points[6].z = m_center.z + scaledDims.z;
83 m_points[7].x = m_center.x - scaledDims.x;
84 m_points[7].y = m_center.y - 2.0f * scaledDims.y;
85 m_points[7].z = m_center.z - scaledDims.z;
87 ObjectCollisionConvexHull::transform(mat, EGG::Vector3f::unit);
93 f32 radius = getBoundingRadius();
98 m_points[0].x = m_center.x + scaledDims.x;
99 m_points[0].y = m_center.y + 2.0f * scaledDims.y;
100 m_points[0].z = m_center.z + scaledDims.z;
102 m_points[1].x = m_center.x + scaledDims.x;
103 m_points[1].y = m_center.y + 2.0f * scaledDims.y;
104 m_points[1].z = m_center.z - scaledDims.z;
106 m_points[2].x = m_center.x + scaledDims.x;
107 m_points[2].y = m_center.y - 2.0f * scaledDims.y;
108 m_points[2].z = m_center.z + scaledDims.z;
110 m_points[3].x = m_center.x - scaledDims.x;
111 m_points[3].y = m_center.y + 2.0f * scaledDims.y;
112 m_points[3].z = m_center.z + scaledDims.z;
114 m_points[4].x = m_center.x + scaledDims.x;
115 m_points[4].y = m_center.y - 2.0f * scaledDims.y;
116 m_points[4].z = m_center.z - scaledDims.z;
118 m_points[5].x = m_center.x - scaledDims.x;
119 m_points[5].y = m_center.y + 2.0f * scaledDims.y;
120 m_points[5].z = m_center.z - scaledDims.z;
122 m_points[6].x = m_center.x - scaledDims.x;
123 m_points[6].y = m_center.y - 2.0f * scaledDims.y;
124 m_points[6].z = m_center.z + scaledDims.z;
126 m_points[7].x = m_center.x - scaledDims.x;
127 m_points[7].y = m_center.y - 2.0f * scaledDims.y;
128 m_points[7].z = m_center.z - scaledDims.z;
130 ObjectCollisionConvexHull::transform(mat, EGG::Vector3f::unit, speed);