Plasma Engine  2.0
Loading...
Searching...
No Matches
StandardTypes.h
1#pragma once
2
4
5#include <Foundation/Reflection/Implementation/AbstractProperty.h>
6#include <Foundation/Reflection/Implementation/DynamicRTTI.h>
7#include <Foundation/Reflection/Implementation/RTTI.h>
8#include <Foundation/Types/Interval.h>
9#include <Foundation/Types/Variant.h>
10
11PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plEnumBase);
12PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plBitflagsBase);
13
14PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plReflectedClass);
15
16// *********************************************
17// ***** Standard POD Types for Properties *****
18
19PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, bool);
20
21PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, float);
22PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, double);
23
24PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plInt8);
25PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plUInt8);
26PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plInt16);
27PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plUInt16);
28PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plInt32);
29PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plUInt32);
30PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plInt64);
31PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plUInt64);
32
33// macros won't work with 'const char*'
34using plConstCharPtr = const char*;
35PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plConstCharPtr);
36
37PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plTime);
38PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plColor);
39PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plColorBaseUB);
40PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plColorGammaUB);
41PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plColorLinearUB);
42PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec2);
43PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec3);
44PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec4);
45PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec2I32);
46PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec3I32);
47PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec4I32);
48PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec2U32);
49PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec3U32);
50PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVec4U32);
51PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plQuat);
52PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plMat3);
53PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plMat4);
54PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plTransform);
55PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plBasisAxis);
56PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plUuid);
57PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plAngle);
58PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plFloatInterval);
59PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plIntInterval);
60
61PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVariant);
62PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVariantArray);
63PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVariantDictionary);
64PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plString);
65PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plUntrackedString);
66PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plStringView);
67PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plDataBuffer);
68PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plHashedString);
69PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plTempHashedString);
70
71// **********************************************************************
72// ***** Various RTTI infos that can't be put next to their classes *****
73
74PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plTypeFlags);
75PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plPropertyFlags);
76PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plFunctionType);
77PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plVariantType);
78PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plPropertyCategory);
79PL_DECLARE_REFLECTABLE_TYPE(PL_FOUNDATION_DLL, plComparisonOperator);
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
Dummy type to pass to templates and macros that expect a base type for an bitflags class.
Definition Types.h:145
A 8bit per channel color storage format with undefined encoding. It is up to the user to reinterpret ...
Definition Color8UNorm.h:12
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:99
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:61
Dummy type to pass to templates and macros that expect a base type for an enum class.
Definition Types.h:140
This class is optimized to take nearly no memory (sizeof(void*)) and to allow very fast checks whethe...
Definition HashedString.h:25
Represents an interval with a start and an end value.
Definition Interval.h:8
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
A class to use together with plHashedString for quick comparisons with temporary strings that need no...
Definition HashedString.h:151
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
An enum that allows to select on of the six main axis (positive / negative)
Definition Declarations.h:237
An enum that represents the operator of a comparison.
Definition Declarations.h:273
Describes what kind of function a property is.
Definition AbstractProperty.h:521
Describes what category a property belongs to.
Definition AbstractProperty.h:132
Flags used to describe a property and its type.
Definition AbstractProperty.h:48
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12
Flags that describe a reflected type.
Definition StaticRTTI.h:16
This enum describes the type of data that is currently stored inside the variant.
Definition VariantType.h:20