Bomberman
CollisionComponent.hpp
Go to the documentation of this file.
1 //
2 // Created by Louis Auzuret on 2021-05-20.
3 //
4 
5 #pragma once
6 
7 #include "Models/Callback.hpp"
8 #include "Models/Vector3.hpp"
10 #include "Entity/Entity.hpp"
11 
12 namespace BBM
13 {
15  {
16  public:
19  enum CollidedAxis {
20  NONE = 0,
21  X = 1,
22  Y = 2,
23  Z = 4,
24  ALL = 7
25  };
26 
41 
43  WAL::Component *clone(WAL::Entity &entity) const override;
44 
46  explicit CollisionComponent(WAL::Entity &entity);
47 
53  Vector3f bound);
54 
59  float positionOffset,
60  float boundSize);
61 
64 
66  CollisionComponent(WAL::Entity &entity, float positionOffset, float boundSize);
67 
69  CollisionComponent(const CollisionComponent &) = default;
70 
72  ~CollisionComponent() override = default;
73 
76  };
77 
80 }
BBM::operator|
CollisionComponent::CollidedAxis operator|(CollisionComponent::CollidedAxis first, CollisionComponent::CollidedAxis second)
Definition: CollisionComponent.cpp:58
BBM::operator|=
CollisionComponent::CollidedAxis & operator|=(CollisionComponent::CollidedAxis &self, CollisionComponent::CollidedAxis other)
Definition: CollisionComponent.cpp:64
BBM::CollisionComponent::ALL
@ ALL
Definition: CollisionComponent.hpp:24
Callback.hpp
BBM::CollisionComponent
Definition: CollisionComponent.hpp:14
BBM::CollisionComponent::clone
WAL::Component * clone(WAL::Entity &entity) const override
Clone a component for another or the same entity.
Definition: CollisionComponent.cpp:13
WAL::Component
Represent a single component of WAL.
Definition: Component.hpp:17
Vector3.hpp
BBM
Definition: AnimationsComponent.cpp:9
BBM::CollisionComponent::onCollide
WAL::Callback< WAL::Entity &, const WAL::Entity &, CollidedAxis > onCollide
onCollide functions to be called
Definition: CollisionComponent.hpp:31
Entity.hpp
WAL::Entity
An entity of the WAL's ECS.
Definition: Entity.hpp:20
BBM::CollisionComponent::bound
Vector3f bound
Bound size on all axis.
Definition: CollisionComponent.hpp:38
BBM::CollisionComponent::CollidedAxis
CollidedAxis
Used to tell the collided axis.
Definition: CollisionComponent.hpp:19
BBM::Vector3< float >
Component.hpp
BBM::CollisionComponent::onCollided
WAL::Callback< WAL::Entity &, const WAL::Entity &, CollidedAxis > onCollided
onCollided functions to be called
Definition: CollisionComponent.hpp:36
WAL::Callback< WAL::Entity &, const WAL::Entity &, CollidedAxis >
BBM::CollisionComponent::operator=
CollisionComponent & operator=(const CollisionComponent &)=delete
A component can't be assigned.
BBM::CollisionComponent::Y
@ Y
Definition: CollisionComponent.hpp:22
BBM::CollisionComponent::CollisionComponent
CollisionComponent(WAL::Entity &entity)
A component can't be instantiated, it should be derived.
Definition: CollisionComponent.cpp:9
BBM::CollisionComponent::Z
@ Z
Definition: CollisionComponent.hpp:23
BBM::CollisionComponent::NONE
@ NONE
Definition: CollisionComponent.hpp:20
BBM::CollisionComponent::positionOffset
Vector3f positionOffset
Offset from the position component.
Definition: CollisionComponent.hpp:40
BBM::CollisionComponent::X
@ X
Definition: CollisionComponent.hpp:21
BBM::CollisionComponent::~CollisionComponent
~CollisionComponent() override=default
default destructor