Cogs.Core
TwinCadModelComponent.h
1#pragma once
2
3#include "Foundation/ComponentModel/Component.h"
4
5#include "Resources/Buffer.h"
6#include "Resources/Texture.h"
7
8namespace Cogs::Core {
9
12 {
13 public:
28
29 std::string substance;
30
31 // Forwarded properties
32 glm::vec3 emissiveColor = glm::vec3(0.0, 0.0, 0.0);
33 glm::vec4 diffuseColor = glm::vec4(1.0, 1.0, 1.0, 1.0);
34 glm::vec3 specularColor = glm::vec3(0.3, 0.3, 0.3);
35 float specularPower = 80.f;
36 float metallic = 1.f;
37 float roughness = 0.f;
38 glm::vec3 substanceParams = glm::vec3(0.0, 0.0, 0.0);
39 glm::vec4 parameters = glm::vec4(0.0, 0.0, 0.0, 0.0);
40 glm::vec4 clipping = glm::vec4(0.0, 0.0, 0.0, 0.0);
41 glm::vec3 minClipping = glm::vec3(0.0, 0.0, 0.0);
42 glm::vec3 maxClipping = glm::vec3(0.0, 0.0, 0.0);
43 bool hasAttributeData = false;
44 TextureHandle surfaceVarianceTexture;
45
46 // Variants
47 bool allowClipping = false;
48 int customEffect = 0;
49 int selectionEffect = 0;
50 bool surfaceVariance = false;
51 int numSubstanceDefinitionMaps = 0;
52 bool pbrLighting = false;
53
54 static void registerType();
55 };
56
57}
58
59template<> inline Cogs::StringView getName<Cogs::Core::TwinCadModelComponent>() { return "TwinCadModelComponent"; }
Base class for Component instances.
Definition: Component.h:143
Provides a weakly referenced view over the contents of a string.
Definition: StringView.h:50
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
BufferView provides a typed, reference-counted, span of an underlying buffer resource.
Definition: Buffer.h:118