33#ifndef DVD_BOUNDS_COMPONENT_H_
34#define DVD_BOUNDS_COMPONENT_H_
49 [[nodiscard]]
const OBB& getOBB();
51 void updateBoundingBoxTransform();
52 void appendChildBBs();
53 void appendChildRefBBs();
54 [[nodiscard]]
FORCE_INLINE bool isClean() const noexcept {
return _transformUpdatedMask.load() == 0u; }
61 void showAABB(
bool state);
62 void showOBB(
bool state);
63 void showBS(
bool state);
68 template<
typename T,
typename U>
73 void setRefBoundingBox(
const BoundingBox& nodeBounds)
noexcept;
76 void flagBoundingBoxDirty(
U32 transformMask,
bool recursive);
85 std::atomic_bool _obbDirty =
false;
#define BEGIN_COMPONENT_EXT1(Name, Enum, Base1)
#define END_COMPONENT(Name)
PROPERTY_R(bool, showOBB, false)
std::atomic_uint _transformUpdatedMask
PROPERTY_RW(bool, collisionsEnabled, true)
const BoundingBox & getBoundingBox() const noexcept
PROPERTY_R(bool, showBS, false)
FORCE_INLINE bool isClean() const noexcept
const BoundingSphere & getBoundingSphere() const noexcept
PROPERTY_R(bool, showAABB, false)
Utility class that adds basic GUID management to objects.
Handle console commands that start with a forward slash.
bool Collision(const BoundsComponent &lhs, const BoundsComponent &rhs) noexcept
void OnData(const ECS::CustomEvent &data) override