wren
Vulkan-based game engine
Toggle main menu visibility
Loading...
Searching...
No Matches
collider.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <flecs.h>
4
5
#include <memory>
6
#include <optional>
7
#include <
wren/math/vector.hpp
>
8
#include <
wren/scene/components/transform.hpp
>
9
10
#include "
../components.hpp
"
11
12
namespace
wren::scene::components
{
13
14
struct
Collider
:
public
Base
{
15
using
Ptr
= std::shared_ptr<Collider>;
16
17
[[nodiscard]]
virtual
auto
raycast
(
const
Transform
& transform,
18
const
math::Vec3f
& origin,
19
const
math::Vec3f
& direction)
const
20
-> std::optional<math::Vec3f> = 0;
21
};
22
23
struct
BoxCollider2D
:
public
Collider
{
24
static
void
init
(
const
flecs::world& world) {
25
static
bool
inited =
false
;
26
if
(!inited) {
27
inited =
true
;
28
world.component<
BoxCollider2D::Ptr
>().is_a<Collider>();
29
}
30
}
31
32
[[nodiscard]]
auto
raycast
(
const
Transform
& transform,
33
const
math::Vec3f
& origin,
34
const
math::Vec3f
& direction)
const
35
-> std::optional<math::Vec3f>
override
;
36
37
math::Vec2f
size
;
38
};
39
40
}
// namespace wren::scene::components
components.hpp
wren::scene::components
Definition
collider.cpp:3
wren::math::Vec2f
Definition
vector.hpp:161
wren::math::Vec3f
Definition
vector.hpp:174
wren::scene::components::Base::Base
Base()=default
wren::scene::components::BoxCollider2D
Definition
collider.hpp:23
wren::scene::components::BoxCollider2D::raycast
auto raycast(const Transform &transform, const math::Vec3f &origin, const math::Vec3f &direction) const -> std::optional< math::Vec3f > override
Definition
collider.cpp:5
wren::scene::components::BoxCollider2D::init
static void init(const flecs::world &world)
Definition
collider.hpp:24
wren::scene::components::BoxCollider2D::size
math::Vec2f size
Definition
collider.hpp:37
wren::scene::components::Collider
Definition
collider.hpp:14
wren::scene::components::Collider::raycast
virtual auto raycast(const Transform &transform, const math::Vec3f &origin, const math::Vec3f &direction) const -> std::optional< math::Vec3f >=0
wren::scene::components::Collider::Ptr
std::shared_ptr< Collider > Ptr
Definition
collider.hpp:15
wren::scene::components::Transform
Definition
transform.hpp:10
transform.hpp
vector.hpp
wren
include
wren
scene
components
collider.hpp
Generated by
1.17.0