Cogs.Core
CollisionComponent.cpp
1#include "CollisionComponent.h"
2
3#include "Types.h"
4
5using namespace Cogs::Reflection;
6
7void Cogs::Core::CollisionComponent::registerType()
8{
9 TypeDatabase::createType<CollisionComponent>().setBase<Component>();
10}
11
12void Cogs::Core::PlaneCollisionComponent::registerType()
13{
14 TypeDatabase::createType<PlaneCollisionComponent>().setBase<CollisionComponent>();
15}
16
17void Cogs::Core::SphereCollisionComponent::registerType()
18{
19 Field fields[] = {
20 Field(Name("radius"), &SphereCollisionComponent::radius),
21 };
22
23 TypeDatabase::createType<SphereCollisionComponent>().setBase<CollisionComponent>().setFields(fields);
24}
25
26void Cogs::Core::BoxCollisionComponent::registerType()
27{
28 Field fields[] = {
29 Field(Name("halfSize"), &BoxCollisionComponent::halfSize),
30 };
31
32 TypeDatabase::createType<BoxCollisionComponent>().setBase<CollisionComponent>().setFields(fields);
33}
34
35void Cogs::Core::CapsuleCollisionComponent::registerType()
36{
37 Field fields[] = {
38 Field(Name("height"), &CapsuleCollisionComponent::height),
39 Field(Name("radius"), &CapsuleCollisionComponent::radius),
40 };
41
42 TypeDatabase::createType<CapsuleCollisionComponent>().setBase<CollisionComponent>().setFields(fields);
43}
44
45void Cogs::Core::CylinderCollisionComponent::registerType()
46{
47 Field fields[] = {
48 Field(Name("height"), &CylinderCollisionComponent::height),
49 Field(Name("radius"), &CylinderCollisionComponent::radius),
50 };
51
52 TypeDatabase::createType<CylinderCollisionComponent>().setBase<CollisionComponent>().setFields(fields);
53}
54
55void Cogs::Core::EmptyCollisionComponent::registerType()
56{
57 TypeDatabase::createType<EmptyCollisionComponent>().setBase<CollisionComponent>();
58}
59
60
61void Cogs::Core::MeshCollisionComponent::registerType()
62{
63 Field fields[] = {
64 Field(Name("mesh"), &MeshCollisionComponent::mesh),
65 Field(Name("model"), &MeshCollisionComponent::model),
66 };
67
68 TypeDatabase::createType<MeshCollisionComponent>().setBase<CollisionComponent>().setFields(fields);
69}
Field definition describing a single data member of a data structure.
Definition: Field.h:68
Contains reflection support.
Definition: Component.h:11
Represents an unique name.
Definition: Name.h:70