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

Function xBoxFromRay

src/SB/Core/x/xScene.cpp:1200–1241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1198}
1199
1200void xBoxFromRay(xBox& box, const xRay3& ray)
1201{
1202 xLine3 line;
1203
1204 if (ray.flags & 0x400)
1205 {
1206 F32 x = ray.dir.x * ray.min_t;
1207 F32 y = ray.dir.y * ray.min_t;
1208 F32 z = ray.dir.z * ray.min_t;
1209
1210 line.p1.x = ray.origin.x + x;
1211 line.p1.y = ray.origin.y + y;
1212 line.p1.z = ray.origin.z + z;
1213 }
1214 else
1215 {
1216 line.p1.x = ray.origin.x;
1217 line.p1.y = ray.origin.y;
1218 line.p1.z = ray.origin.z;
1219 }
1220
1221 if (ray.flags & 0x800)
1222 {
1223 F32 dist = (ray.flags & 0x400) ? ray.max_t - ray.min_t : ray.max_t;
1224
1225 line.p2.x = ray.dir.x * dist;
1226 line.p2.y = ray.dir.y * dist;
1227 line.p2.z = ray.dir.z * dist;
1228 }
1229 else
1230 {
1231 line.p2.x = ray.dir.x;
1232 line.p2.y = ray.dir.y;
1233 line.p2.z = ray.dir.z;
1234 }
1235
1236 line.p2.x = line.p1.x + line.p2.x;
1237 line.p2.y = line.p1.y + line.p2.y;
1238 line.p2.z = line.p1.z + line.p2.z;
1239
1240 xBoxFromLine(box, line);
1241}
1242
1243void xBoxFromLine(xBox& box, const xLine3& line)
1244{

Callers 1

xRayHitsSceneFlagsFunction · 0.85

Calls 1

xBoxFromLineFunction · 0.85

Tested by

no test coverage detected