|
Vulkan Schnee 0.0.1
High-performance rendering engine
|
Collision component using a box shape. More...
#include <BoxCollisionComponent.h>
Public Member Functions | |
| BoxCollisionComponent (Scene *scene, entt::entity entity, const glm::vec3 &halfExtents=glm::vec3(0.5f)) | |
| Constructs a BoxCollisionComponent. | |
| ~BoxCollisionComponent () override=default | |
| btCollisionShape * | createShape () override |
| Creates the Bullet collision shape. Must be implemented by derived classes. | |
| void | setHalfExtents (const glm::vec3 &halfExtents) |
| Sets the half extents of the box. | |
| glm::vec3 | getHalfExtents () const |
| Gets the half extents of the box. | |
| Public Member Functions inherited from EngineCore::CollisionComponent | |
| CollisionComponent (Scene *scene, entt::entity entity) | |
| Constructs a CollisionComponent. | |
| ~CollisionComponent () override | |
| void | beginPlay () override |
| Called when the component is added to the scene or the game starts. | |
| void | endPlay () override |
| Called when the component is removed or the game ends. | |
| virtual void | destroyShape () |
| Destroys the current shape. | |
| void | markDirty () |
| Marks the shape as needing rebuild. Call after changing shape properties (halfExtents, radius, etc.). | |
| void | rebuild () |
| Rebuilds the shape and notifies PhysicsBodyComponent. | |
| btCollisionShape * | getShape () const |
| Gets the current collision shape. | |
| void | setLocalOffset (const glm::vec3 &offset) |
| Sets the local position offset relative to the body. | |
| glm::vec3 | getLocalOffset () const |
| Gets the local position offset. | |
| void | setLocalRotation (const glm::quat &rotation) |
| Sets the local rotation relative to the body. | |
| glm::quat | getLocalRotation () const |
| Gets the local rotation. | |
| glm::mat4 | getLocalTransform () const |
| Gets the local transform matrix. | |
| void | setIsTrigger (bool trigger) |
| Sets whether this collision is a trigger (overlap only, no physics response). | |
| bool | isTrigger () const |
| Checks if this collision is a trigger. | |
| virtual void | onCollisionBegin (CollisionComponent *other) |
| Called when a collision with another object begins. | |
| virtual void | onCollisionEnd (CollisionComponent *other) |
| Called when a collision with another object ends. | |
| virtual void | onCollisionStay (CollisionComponent *other) |
| Called every frame while colliding with another object. | |
| PhysicsBodyComponent * | getBodyComponent () const |
| Gets the physics body component this collision is registered with. | |
| Public Member Functions inherited from EngineCore::LogicComponent | |
| LogicComponent (Scene *owningScene) | |
| virtual | ~LogicComponent ()=default |
| virtual void | tick (double deltaTime) |
| Called every frame if ticking is enabled. | |
| bool | canTick () const |
| Checks if the component is currently set to tick. | |
| void | setCanTick (bool enable) |
| Enables or disables ticking for this component. | |
| Entity * | getOwningEntity () const |
| Gets the entity this component belongs to. | |
Private Attributes | |
| glm::vec3 | halfExtents_ |
Additional Inherited Members | |
| Static Public Attributes inherited from EngineCore::CollisionComponent | |
| static constexpr bool | IsUnique = false |
| Static Public Attributes inherited from EngineCore::LogicComponent | |
| static constexpr bool | IsUnique = false |
| Defines whether multiple instances of this component can exist on the same entity. Defaults to false (multiple allowed). Override in derived classes with static constexpr bool IsUnique = true; if needed. | |
| Protected Member Functions inherited from EngineCore::LogicComponent | |
| Scene * | getScene () const |
| Gets the scene this component belongs to. | |
| SceneManager * | getSceneManager () const |
| Helper to get the SceneManager from the owning scene. | |
| Protected Attributes inherited from EngineCore::CollisionComponent | |
| entt::entity | entity_ |
| btCollisionShape * | shape_ = nullptr |
| glm::vec3 | localOffset_ {0.0f} |
| glm::quat | localRotation_ {glm::identity<glm::quat>()} |
| PhysicsBodyComponent * | bodyComponent_ = nullptr |
| bool | isTrigger_ = false |
| bool | isDirty_ = false |
Collision component using a box shape.
Definition at line 14 of file BoxCollisionComponent.h.
| EngineCore::BoxCollisionComponent::BoxCollisionComponent | ( | Scene * | scene, |
| entt::entity | entity, | ||
| const glm::vec3 & | halfExtents = glm::vec3(0.5f) ) |
Constructs a BoxCollisionComponent.
| scene | The owning scene. |
| entity | The ECS entity associated with this component. |
| halfExtents | Half-size of the box in each axis (default 0.5 = 1m cube). |
Definition at line 8 of file BoxCollisionComponent.cpp.
References EngineCore::CollisionComponent::CollisionComponent(), halfExtents_, and EngineCore::LogicComponent::scene.
|
overridedefault |
|
overridevirtual |
Creates the Bullet collision shape. Must be implemented by derived classes.
Implements EngineCore::CollisionComponent.
Definition at line 15 of file BoxCollisionComponent.cpp.
References bt::getVec3(), and halfExtents_.
|
inlinenodiscard |
Gets the half extents of the box.
Definition at line 39 of file BoxCollisionComponent.h.
References halfExtents_.
| void EngineCore::BoxCollisionComponent::setHalfExtents | ( | const glm::vec3 & | halfExtents | ) |
Sets the half extents of the box.
| halfExtents | Half-size in each axis. |
Definition at line 19 of file BoxCollisionComponent.cpp.
References halfExtents_, and EngineCore::CollisionComponent::markDirty().
|
private |
Definition at line 42 of file BoxCollisionComponent.h.
Referenced by BoxCollisionComponent(), createShape(), getHalfExtents(), and setHalfExtents().