Cogs.Core
ShapeComponent.cpp
1#include "ShapeComponent.h"
2
3#include "Types.h"
4
5using namespace Cogs::Reflection;
6
7void Cogs::Core::ShapeComponent::registerType()
8{
9 static constexpr EnumeratorDef enumerators [] = {
10 { "Default", ShapePrimitiveType::Default },
11 { "TriangleList", ShapePrimitiveType::TriangleList },
12 { "TriangleStrip", ShapePrimitiveType::TriangleStrip },
13 { "DefaultLine", ShapePrimitiveType::DefaultLine },
14 { "LineList", ShapePrimitiveType::LineList },
15 { "LineStrip", ShapePrimitiveType::LineStrip },
16 { "TriangleListAdjacency", ShapePrimitiveType::TriangleListAdjacency },
17 { "TriangleStripAdjacency", ShapePrimitiveType::TriangleStripAdjacency },
18 { "LineListAdjacency", ShapePrimitiveType::LineListAdjacency },
19 { "LineStripAdjacency", ShapePrimitiveType::LineStripAdjacency },
20 { "PointList", ShapePrimitiveType::PointList },
21 };
22
23 TypeDatabase::createType<ShapePrimitiveType>()
24 .setEnumerators(enumerators);
25
26 Field fields[] = {
27 Field(Name("positions"), &ShapeComponent::positions),
28 Field(Name("normals"), &ShapeComponent::normals),
29 Field(Name("texCoords"), &ShapeComponent::texCoords),
30 Field(Name("indexes"), &ShapeComponent::indexes),
31 Field(Name("primitiveType"), &ShapeComponent::primitiveType),
32 };
33
34 TypeDatabase::createType<ShapeComponent>().setBase<Component>().setFields(fields);
35}
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