Cogs.Core
BasicOceanComponent.cpp
1#include "BasicOceanComponent.h"
2#include "Types.h"
3
4using namespace Cogs::Reflection;
5
6void Cogs::Core::BasicOceanComponent::registerType()
7{
8 {
9 static constexpr EnumeratorDef enumerators[] = {
10 { "Default", BasicOceanWaves::Default },
11 { "Quux", BasicOceanWaves::Quux },
12 };
13 TypeDatabase::createType<BasicOceanWaves>().setEnumerators(enumerators);
14 }
15 {
16 static constexpr EnumeratorDef enumerators[] = {
17 { "FlatEarth", BasicOceanBeliefSystem::FlatEarth },
18 { "CurvedEarth", BasicOceanBeliefSystem::CurvedEarth },
19 };
20 TypeDatabase::createType<BasicOceanBeliefSystem>().setEnumerators(enumerators);
21 }
22 {
23 static constexpr EnumeratorDef enumerators[] = {
24 { "Planar", BasicOceanReflection::Planar },
25 { "EnvSkyBox", BasicOceanReflection::EnvSkyBox },
26 { "EnvRadiance", BasicOceanReflection::EnvRadiance },
27 };
28 TypeDatabase::createType<BasicOceanReflection>().setEnumerators(enumerators);
29 }
30
31 Field fields[] = {
33 Field(Name("waves"), &BasicOceanComponent::waves),
34 Field(Name("beliefSystem"), &BasicOceanComponent::beliefSystem),
36 Field(Name("reflection"), &BasicOceanComponent::reflection),
37 Field(Name("physicallyBasedRendering"), &BasicOceanComponent::pbr),
38 Field(Name("reflectionBrightness"), &BasicOceanComponent::reflectionBrightness),
40 Field(Name("fftTileResolutionLog2"), &BasicOceanComponent::fftTileResolutionLog2),
41
42 Field(Name("significantWaveHeight"), &BasicOceanComponent::significantWaveHeight),
43 Field(Name("dominantWavePeriod"), &BasicOceanComponent::dominantWavePeriod),
44 Field(Name("windSpeed"), &BasicOceanComponent::windSpeed),
45 Field(Name("windDirection"), &BasicOceanComponent::windDirection),
46 Field(Name("reflectionTexFormat"), &BasicOceanComponent::reflectionTexFormat),
47 Field(Name("reflectionCamera"), &BasicOceanComponent::reflectionCamera),
48 };
49
50 TypeDatabase::createType<BasicOceanComponent>()
51 .setBase<Component>()
52 .setFields(fields);
53}
float reflectionBrightness
Multiplicative factor reflection.
float seaLevel
Vertical displacement of average sea height.
float transparency
Transparency of water.
glm::vec4 color
Color of water. Alpha taken from transparency component.
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