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;
51 f32 radius = getBoundingRadius();
56 m_points[0].x = m_center.x + scaledDims.x;
57 m_points[0].y = m_center.y + 2.0f * scaledDims.y;
58 m_points[0].z = m_center.z + scaledDims.z;
60 m_points[1].x = m_center.x + scaledDims.x;
61 m_points[1].y = m_center.y + 2.0f * scaledDims.y;
62 m_points[1].z = m_center.z - scaledDims.z;
64 m_points[2].x = m_center.x + scaledDims.x;
65 m_points[2].y = m_center.y - 2.0f * scaledDims.y;
66 m_points[2].z = m_center.z + scaledDims.z;
68 m_points[3].x = m_center.x - scaledDims.x;
69 m_points[3].y = m_center.y + 2.0f * scaledDims.y;
70 m_points[3].z = m_center.z + scaledDims.z;
72 m_points[4].x = m_center.x + scaledDims.x;
73 m_points[4].y = m_center.y - 2.0f * scaledDims.y;
74 m_points[4].z = m_center.z - scaledDims.z;
76 m_points[5].x = m_center.x - scaledDims.x;
77 m_points[5].y = m_center.y + 2.0f * scaledDims.y;
78 m_points[5].z = m_center.z - scaledDims.z;
80 m_points[6].x = m_center.x - scaledDims.x;
81 m_points[6].y = m_center.y - 2.0f * scaledDims.y;
82 m_points[6].z = m_center.z + scaledDims.z;
84 m_points[7].x = m_center.x - scaledDims.x;
85 m_points[7].y = m_center.y - 2.0f * scaledDims.y;
86 m_points[7].z = m_center.z - scaledDims.z;
88 ObjectCollisionConvexHull::transform(mat, EGG::Vector3f::unit, speed);