MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / xBoxInitBoundOBB

Function xBoxInitBoundOBB

src/SB/Core/x/xMath3.cpp:83–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81}
82
83void xBoxInitBoundOBB(xBox* o, const xBox* b, const xMat4x3* m)
84{
85 xVec3 boxcent;
86 boxcent.x = 0.5f * (b->lower.x + b->upper.x);
87 boxcent.y = 0.5f * (b->lower.y + b->upper.y);
88 boxcent.z = 0.5f * (b->lower.z + b->upper.z);
89
90 F32 xmax = xabs(m->right.x * (b->upper.x - boxcent.x));
91 F32 ymax = xabs(m->right.y * (b->upper.x - boxcent.x));
92 F32 zmax = xabs(m->right.z * (b->upper.x - boxcent.x));
93
94 xmax += xabs(m->up.x * (b->upper.y - boxcent.y));
95 ymax += xabs(m->up.y * (b->upper.y - boxcent.y));
96 zmax += xabs(m->up.z * (b->upper.y - boxcent.y));
97
98 xmax += xabs(m->at.x * (b->upper.z - boxcent.z));
99 ymax += xabs(m->at.y * (b->upper.z - boxcent.z));
100 zmax += xabs(m->at.z * (b->upper.z - boxcent.z));
101
102 xMat4x3Toworld(&boxcent, m, &boxcent);
103
104 o->lower.x = boxcent.x - xmax;
105 o->lower.y = boxcent.y - ymax;
106 o->lower.z = boxcent.z - zmax;
107 o->upper.x = boxcent.x + xmax;
108 o->upper.y = boxcent.y + ymax;
109 o->upper.z = boxcent.z + zmax;
110}
111
112void xBoxInitBoundCapsule(xBox* b, const xCapsule* c)
113{

Callers 2

xQuickCullForOBBFunction · 0.70
xBoundGetBoxFunction · 0.70

Calls 1

xMat4x3ToworldFunction · 0.85

Tested by

no test coverage detected