Add CalcWorldBoundingVolumes (#651)

This commit is contained in:
Christian Semmler
2024-03-10 10:29:16 -04:00
committed by GitHub
parent 660c1e1170
commit d090b449d1
9 changed files with 40 additions and 3 deletions

View File

@@ -131,6 +131,32 @@ void OrientableROI::UpdateWorldVelocity()
{
}
// FUNCTION: LEGO1 0x100a5a60
void CalcWorldBoundingVolumes(
const BoundingSphere& modelling_sphere,
const Matrix4& local2world,
BoundingBox& world_bounding_box,
BoundingSphere& world_bounding_sphere
)
{
// calculate world bounding volumes given a bounding sphere in modelling
// space and local2world transform
// ??? we need to transform the radius too... if scaling...
V3XM4(world_bounding_sphere.Center(), modelling_sphere.Center(), local2world);
world_bounding_sphere.Radius() = modelling_sphere.Radius();
// update world_bounding_box
world_bounding_box.Min()[0] = world_bounding_sphere.Center()[0] - world_bounding_sphere.Radius();
world_bounding_box.Min()[1] = world_bounding_sphere.Center()[1] - world_bounding_sphere.Radius();
world_bounding_box.Min()[2] = world_bounding_sphere.Center()[2] - world_bounding_sphere.Radius();
world_bounding_box.Max()[0] = world_bounding_sphere.Center()[0] + world_bounding_sphere.Radius();
world_bounding_box.Max()[1] = world_bounding_sphere.Center()[1] + world_bounding_sphere.Radius();
world_bounding_box.Max()[2] = world_bounding_sphere.Center()[2] + world_bounding_sphere.Radius();
}
// FUNCTION: LEGO1 0x100a5d80
const float* OrientableROI::GetWorldVelocity() const
{