Add constructor to BoundingBox for single point empty box construction

This commit is contained in:
Wojtek Figat
2021-03-18 21:50:05 +01:00
parent 544a11562c
commit 8ef8b89fd5
25 changed files with 39 additions and 29 deletions

View File

@@ -1132,6 +1132,6 @@ void SceneAnimationPlayer::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -63,7 +63,7 @@ void AudioListener::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
if (IsActiveInHierarchy())

View File

@@ -461,7 +461,7 @@ void AudioSource::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
if (IsActiveInHierarchy() && SourceIDs.HasItems())

View File

@@ -6,7 +6,7 @@
#include "../Types/String.h"
const BoundingBox BoundingBox::Empty(Vector3(MAX_float), Vector3(MIN_float));
const BoundingBox BoundingBox::Zero(Vector3(0.0f), Vector3(0.0f));
const BoundingBox BoundingBox::Zero(Vector3(0.0f));
String BoundingBox::ToString() const
{

View File

@@ -45,6 +45,16 @@ public:
{
}
/// <summary>
/// Initializes a new instance of the <see cref="BoundingBox"/> struct.
/// </summary>
/// <param name="point">The location of the empty bounding box.</param>
BoundingBox(const Vector3& point)
: Minimum(point)
, Maximum(point)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="BoundingBox"/> struct.
/// </summary>

View File

@@ -383,7 +383,7 @@ void AnimatedModel::UpdateLocalBounds()
}
else
{
box = BoundingBox(Vector3::Zero, Vector3::Zero);
box = BoundingBox(Vector3::Zero);
}
// Scale bounds

View File

@@ -96,7 +96,7 @@ void BoneSocket::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -92,6 +92,6 @@ void DirectionalLight::OnTransformChanged()
// Base
LightWithShadow::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -22,6 +22,6 @@ void EmptyActor::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -228,6 +228,6 @@ void ExponentialHeightFog::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -259,6 +259,6 @@ void Sky::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -146,6 +146,6 @@ void Skybox::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -110,7 +110,7 @@ void SplineModel::OnSplineUpdated()
// Skip updates when actor is disabled or something is missing
if (!_spline || !Model || !Model->IsLoaded() || !IsActiveInHierarchy() || _spline->GetSplinePointsCount() < 2)
{
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
BoundingSphere::FromBox(_box, _sphere);
return;
}

View File

@@ -187,7 +187,7 @@ void StaticModel::UpdateBounds()
}
else
{
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
}
BoundingSphere::FromBox(_box, _sphere);
}

View File

@@ -362,6 +362,6 @@ void Scene::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -306,7 +306,7 @@ void ParticleEffect::UpdateBounds()
// Empty bounds if there is no particle system to play or it has been never played
if (bounds == BoundingBox::Empty)
{
bounds = BoundingBox(_transform.Translation, _transform.Translation);
bounds = BoundingBox(_transform.Translation);
}
_box = bounds;

View File

@@ -61,7 +61,7 @@ void PhysicsActor::UpdateBounds()
}
else
{
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
}
}
else
@@ -71,7 +71,7 @@ void PhysicsActor::UpdateBounds()
}
else
{
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
}
BoundingSphere::FromBox(_box, _sphere);
}

View File

@@ -178,6 +178,6 @@ void SplineRopeBody::OnTransformChanged()
{
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -220,7 +220,7 @@ void CharacterController::UpdateBounds()
if (actor)
_box = P2C(actor->getWorldBounds(boundsScale));
else
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
BoundingSphere::FromBox(_box, _sphere);
}
@@ -345,7 +345,7 @@ void CharacterController::OnTransformChanged()
}
else if (!_controller)
{
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
BoundingSphere::FromBox(_box, _sphere);
}
}

View File

@@ -64,7 +64,7 @@ void SplineCollider::OnSplineUpdated()
{
if (!_spline || !IsActiveInHierarchy() || _spline->GetSplinePointsCount() < 2 || !CollisionData || !CollisionData->IsLoaded())
{
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
BoundingSphere::FromBox(_box, _sphere);
return;
}
@@ -178,7 +178,7 @@ void SplineCollider::UpdateBounds()
void SplineCollider::GetGeometry(PxGeometryHolder& geometry)
{
// Reset bounds
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
BoundingSphere::FromBox(_box, _sphere);
// Skip if sth is missing

View File

@@ -327,7 +327,7 @@ void Joint::OnTransformChanged()
// TODO: this could track only local transform changed
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
if (_joint)

View File

@@ -37,7 +37,7 @@ Terrain::~Terrain()
void Terrain::UpdateBounds()
{
PROFILE_CPU();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
for (int32 i = 0; i < _patches.Count(); i++)
{
auto patch = _patches[i];

View File

@@ -31,7 +31,7 @@ TextRender::TextRender(const SpawnParams& params)
{
_world = Matrix::Identity;
_color = Color::White;
_localBox = BoundingBox(Vector3::Zero, Vector3::Zero);
_localBox = BoundingBox(Vector3::Zero);
_layoutOptions.Bounds = Rectangle(-100, -100, 200, 200);
_layoutOptions.HorizontalAlignment = TextAlignment::Center;
_layoutOptions.VerticalAlignment = TextAlignment::Center;
@@ -92,7 +92,7 @@ void TextRender::UpdateLayout()
_vb0.Clear();
_vb1.Clear();
_vb2.Clear();
_localBox = BoundingBox(Vector3::Zero, Vector3::Zero);
_localBox = BoundingBox(Vector3::Zero);
BoundingBox::Transform(_localBox, _world, _box);
BoundingSphere::FromBox(_box, _sphere);
#if USE_PRECISE_MESH_INTERSECTS
@@ -291,7 +291,7 @@ void TextRender::UpdateLayout()
if (_ib.Data.IsEmpty())
{
// Empty
box = BoundingBox(_transform.Translation, _transform.Translation);
box = BoundingBox(_transform.Translation);
}
_localBox = box;
BoundingBox::Transform(_localBox, _world, _box);

View File

@@ -164,6 +164,6 @@ void UICanvas::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
}

View File

@@ -163,7 +163,7 @@ void UIControl::OnTransformChanged()
// Base
Actor::OnTransformChanged();
_box = BoundingBox(_transform.Translation, _transform.Translation);
_box = BoundingBox(_transform.Translation);
_sphere = BoundingSphere(_transform.Translation, 0.0f);
UICONTROL_INVOKE(TransformChanged);