Unravel Engine C++ Reference
Loading...
Searching...
No Matches
gizmo_character_controller_component.cpp
Go to the documentation of this file.
4
5namespace unravel
6{
7
9 entt::meta_any& var,
10 const camera& cam,
11 gfx::dd_raii& dd,
12 dd_2d_raii& dd_2d)
13{
15 auto& data = var.cast<character_controller_component&>();
16 auto owner = data.get_owner();
17 if(!owner || !owner.all_of<transform_component>())
18 {
19 return;
20 }
21 const auto& transform = owner.get<transform_component>();
22 const auto& world_transform = transform.get_transform_global();
23 float cylinder_half_height = (data.get_height() - 2.0f * data.get_radius()) * 0.5f;
24 if(cylinder_half_height < 0.0f)
25 {
26 cylinder_half_height = 0.0f;
27 }
28 math::vec3 capsule_center = data.get_center();
29 math::vec3 up{0.0f, 1.0f, 0.0f};
30 auto top = capsule_center + up * cylinder_half_height;
31 auto bottom = capsule_center - up * cylinder_half_height;
33 auto trans = world_transform;
34 trans.reset_scale();
35 dd.encoder.pushTransform((const float*)trans);
36 dd.encoder.setColor(0x8800ffff);
37 dd.encoder.setWireframe(true);
38 dd.encoder.drawCapsule(to_bx(bottom), to_bx(top), data.get_radius());
40}
41
43 entt::meta_any& var,
44 const camera& cam,
45 gfx::dd_raii& dd)
46{
47}
48
49} // namespace unravel
Class representing a camera. Contains functionality for manipulating and updating a camera....
Definition camera.h:62
Component for character controller physics with sweep-based movement.
auto get_owner() const noexcept -> entt::const_handle
Gets the owner of the component.
Component that handles transformations (position, rotation, scale, etc.) in the ACE framework.
auto as_derived(meta_any &obj) -> bool
auto to_bx(const glm::vec3 &data) -> bx::Vec3
Definition gizmos.cpp:12
void setColor(uint32_t _abgr)
void setWireframe(bool _wireframe)
void pushTransform(const void *_mtx)
void drawCapsule(const bx::Vec3 &_from, const bx::Vec3 &_to, float _radius)
DebugDrawEncoder encoder
Definition debugdraw.h:15
void draw(rtti::context &ctx, entt::meta_any &var, const camera &cam, gfx::dd_raii &dd, dd_2d_raii &dd_2d) override
void draw_billboard(rtti::context &ctx, entt::meta_any &var, const camera &cam, gfx::dd_raii &dd) override
std::string owner