VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
rigidBodyComponent.cpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright 2025-2026 Arnis Lektauers
3
#include "
rigidBodyComponent.h
"
4
5
#include "
framework/components/collision/collisionComponent.h
"
6
#include "
framework/entity.h
"
7
8
namespace
visutwin::canvas
9
{
10
RigidBodyComponent::RigidBodyComponent
(
IComponentSystem
*
system
,
Entity
*
entity
)
11
:
Component
(
system
,
entity
)
12
{
13
_instances.push_back(
this
);
14
}
15
16
RigidBodyComponent::~RigidBodyComponent
()
17
{
18
std::erase(_instances,
this
);
19
}
20
21
void
RigidBodyComponent::setType
(
const
std::string&
type
)
22
{
23
if
(
type
==
"dynamic"
) {
24
_type =
RigidBodyType::Dynamic
;
25
}
else
if
(
type
==
"kinematic"
) {
26
_type =
RigidBodyType::Kinematic
;
27
}
else
{
28
_type =
RigidBodyType::Static
;
29
}
30
}
31
32
CollisionComponent
*
RigidBodyComponent::collision
()
const
33
{
34
return
entity
() ?
entity
()->
findComponent
<
CollisionComponent
>() :
nullptr
;
35
}
36
}
visutwin::canvas::CollisionComponent
Definition
collisionComponent.h:18
visutwin::canvas::Component::entity
Entity * entity() const
Definition
component.cpp:16
visutwin::canvas::Component::Component
Component(IComponentSystem *system, Entity *entity)
Definition
component.cpp:12
visutwin::canvas::Component::system
IComponentSystem * system() const
Definition
component.h:47
visutwin::canvas::Entity
ECS entity — a GraphNode that hosts components defining its behavior.
Definition
entity.h:32
visutwin::canvas::Entity::findComponent
T * findComponent()
Definition
entity.h:95
visutwin::canvas::IComponentSystem
Definition
componentSystem.h:19
visutwin::canvas::RigidBodyComponent::setType
void setType(const RigidBodyType type)
Definition
rigidBodyComponent.h:33
visutwin::canvas::RigidBodyComponent::~RigidBodyComponent
~RigidBodyComponent() override
Definition
rigidBodyComponent.cpp:16
visutwin::canvas::RigidBodyComponent::type
RigidBodyType type() const
Definition
rigidBodyComponent.h:32
visutwin::canvas::RigidBodyComponent::RigidBodyComponent
RigidBodyComponent(IComponentSystem *system, Entity *entity)
Definition
rigidBodyComponent.cpp:10
visutwin::canvas::RigidBodyComponent::collision
CollisionComponent * collision() const
Definition
rigidBodyComponent.cpp:32
collisionComponent.h
entity.h
visutwin::canvas
Definition
eventHandler.cpp:9
visutwin::canvas::RigidBodyType::Kinematic
@ Kinematic
Definition
rigidBodyComponent.h:19
visutwin::canvas::RigidBodyType::Static
@ Static
Definition
rigidBodyComponent.h:17
visutwin::canvas::RigidBodyType::Dynamic
@ Dynamic
Definition
rigidBodyComponent.h:18
rigidBodyComponent.h
framework
components
rigidbody
rigidBodyComponent.cpp
Generated by
1.16.1