CollisionStateComponent.ixx File
Per-frame collision state component written by detection systems. More...
Included Headers
#include <format>
#include <iostream>
#include <optional>
#include <helios.math>
#include <helios.engine.ecs.GameObject>
#include <helios.engine.ecs.EntityHandle>
#include <helios.util.Guid>
#include <helios.engine.modules.physics.collision.types.CollisionContext>
#include <helios.engine.modules.physics.collision.types.CollisionBehavior>
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 | CollisionStateComponent |
|
Stores per-frame collision state for a GameObject. More... | |
Description
Per-frame collision state component written by detection systems.
File Listing
The file content with the documentation metadata removed is:
22export namespace helios::engine::modules::physics::collision::components {
35 class CollisionStateComponent {
39 helios::math::vec3f contact_;
64 helios::engine::modules::physics::collision::types::CollisionBehavior collisionBehavior_ = types::CollisionBehavior::None;
74 helios::engine::modules::physics::collision::types::CollisionContext collisionContext_{};
119 CollisionStateComponent() = default;
126 CollisionStateComponent(const CollisionStateComponent& other) {}
128 CollisionStateComponent& operator=(const CollisionStateComponent&) = default;
129 CollisionStateComponent(CollisionStateComponent&&) noexcept = default;
130 CollisionStateComponent& operator=(CollisionStateComponent&&) noexcept = default;
152 const bool isSolid,
153 const bool isTrigger,
155 const bool isCollisionReporter,
157 const uint32_t collisionLayer = 0,
158 const uint32_t otherCollisionLayer = 0) {
165 isSolid_ = isSolid;
166 isTrigger_ = isTrigger;
168 collisionBehavior_ = collisionBehavior;
170 isCollisionReporter_ = isCollisionReporter;
172 other_ = other;
173 contact_ = contact;
175 collisionLayer_ = collisionLayer;
176 otherCollisionLayer_ = otherCollisionLayer;
178 collisionContext_ = types::CollisionContext{
180 .contact = contact,
181 .isSolid = isSolid,
182 .isTrigger = isTrigger,
183 .isCollisionReporter = isCollisionReporter,
184 .other = other,
185 .collisionLayerId = collisionLayer,
186 .otherCollisionLayerId = otherCollisionLayer,
203 collisionBehavior_ = types::CollisionBehavior::None;
208 contact_ = helios::math::vec3f{0.0f, 0.0f, 0.0f};
210 collisionContext_ = types::CollisionContext{};
222 reset();
230 [[nodiscard]] const types::CollisionContext& collisionContext() const noexcept {
240 [[nodiscard]] bool hasCollision() const noexcept {
258 [[nodiscard]] bool isCollisionReporter() const noexcept {
285 [[nodiscard]] helios::engine::modules::physics::collision::types::CollisionBehavior collisionBehavior() const noexcept {
294 [[nodiscard]] helios::math::vec3f contact() const noexcept {
303 [[nodiscard]] uint32_t collisionLayer() const noexcept {
312 [[nodiscard]] uint32_t otherCollisionLayer() const noexcept {
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.