CollisionComponent.ixx File
Component for layer-based collision detection and event generation. More...
Included Headers
#include <array>
#include <format>
#include <helios.engine.modules.physics.collision.types.HitPolicy>
#include <helios.engine.modules.physics.collision.types.CollisionBehavior>
#include <helios.engine.ecs.GameObject>
Namespaces Index
| namespace | helios |
| namespace | engine |
|
Main engine module aggregating core infrastructure and game systems. More... | |
| namespace | modules |
|
Domain-specific components and systems. More... | |
| namespace | physics |
|
Physics simulation and collision detection subsystem for the game engine. More... | |
| namespace | collision |
| namespace | components |
|
Collider components for collision detection. More... | |
Classes Index
| class | CollisionComponent |
|
Defines collision layer membership and interaction masks for a GameObject. More... | |
Description
Component for layer-based collision detection and event generation.
File Listing
The file content with the documentation metadata removed is:
18export namespace helios::engine::modules::physics::collision::components {
46 class CollisionComponent {
48 size_t CollisionBehaviorSize = helios::engine::modules::physics::collision::types::CollisionBehaviorItemSize;
76 static_assert(helios::engine::modules::physics::collision::types::CollisionBehaviorItemSize <= 32);
110 helios::engine::modules::physics::collision::types::HitPolicy hitPolicy_ = types::HitPolicy::OneHit;
150 explicit CollisionComponent(uint32_t layerId, bool isCollisionReporter = true,
151 uint32_t solidCollisionMask = 0, uint32_t triggerCollisionMask = 0
153 layerId_(layerId),
154 isCollisionReporter_(isCollisionReporter),
155 solidCollisionMask_(solidCollisionMask),
156 triggerCollisionMask_(triggerCollisionMask){}
166 CollisionComponent(const CollisionComponent& other) :
176 CollisionComponent& operator=(const CollisionComponent&) = default;
177 CollisionComponent(CollisionComponent&&) noexcept = default;
178 CollisionComponent& operator=(CollisionComponent&&) noexcept = default;
186 void setIsCollisionReporter(bool isCollisionReporter) {
187 isCollisionReporter_ = isCollisionReporter;
202 void setHitPolicy(const helios::engine::modules::physics::collision::types::HitPolicy hitPolicy) {
203 hitPolicy_ = hitPolicy;
213 [[nodiscard]] helios::engine::modules::physics::collision::types::HitPolicy hitPolicy() const noexcept {
222 [[nodiscard]] bool isCollisionReporter() const noexcept {
233 CollisionComponent& setSolidCollisionMask(const uint32_t solidCollisionMask) noexcept {
234 solidCollisionMask_ = solidCollisionMask;
245 CollisionComponent& setTriggerCollisionMask(const uint32_t triggerCollisionMask) noexcept {
246 triggerCollisionMask_ = triggerCollisionMask;
255 [[nodiscard]] uint32_t solidCollisionMask() const noexcept {
264 [[nodiscard]] uint32_t triggerCollisionMask() const noexcept {
289 const helios::engine::modules::physics::collision::types::CollisionBehavior collisionBehavior,
318 [[nodiscard]] helios::engine::modules::physics::collision::types::CollisionBehavior solidCollisionBehavior(uint32_t otherLayerId) const noexcept {
346 [[nodiscard]] helios::engine::modules::physics::collision::types::CollisionBehavior triggerCollisionBehavior(uint32_t otherLayerId) const noexcept {
375 const helios::engine::modules::physics::collision::types::CollisionBehavior collisionBehavior,
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.