1#include "MaterialComponent.h"
7void Cogs::Core::MaterialComponent::registerType()
12 Field(
Name(
"diffuseColor"), &MaterialComponent::diffuseColor),
13 Field(
Name(
"emissiveColor"), &MaterialComponent::emissiveColor),
14 Field(
Name(
"specularColor"), &MaterialComponent::specularColor),
15 Field(
Name(
"specularPower"), &MaterialComponent::specularPower),
16 Field(
Name(
"ambientColor"), &MaterialComponent::ambientColor),
17 Field(
Name(
"transparency"), &MaterialComponent::transparency),
19 Field(
Name(
"vertexColor"), &MaterialComponent::vertexColor),
20 Field(
Name(
"primitiveType"), &MaterialComponent::primitiveType),
21 Field(
Name(
"lineWidth"), &MaterialComponent::lineWidth),
22 Field(
Name(
"stippleFactor"), &MaterialComponent::stippleFactor),
23 Field(
Name(
"stipplePattern"), &MaterialComponent::stipplePattern),
24 Field(
Name(
"pointSize"), &MaterialComponent::pointSize),
25 Field(
Name(
"cullMode"), &MaterialComponent::cullMode),
26 Field(
Name(
"depthWriteEnabled"), &MaterialComponent::depthWriteEnabled),
27 Field(
Name(
"depthTestEnabled"), &MaterialComponent::depthTestEnabled),
28 Field(
Name(
"depthTestAlwaysPass"), &MaterialComponent::depthTestAlwaysPass),
29 Field(
Name(
"depthBiasEnable"), &MaterialComponent::depthBiasEnable),
30 Field(
Name(
"depthBiasConstant"), &MaterialComponent::depthBiasConstant),
31 Field(
Name(
"depthBiasSlope"), &MaterialComponent::depthBiasSlope),
32 Field(
Name(
"depthBiasClamp"), &MaterialComponent::depthBiasClamp),
34 Field(
Name(
"blendMode"), &MaterialComponent::blendMode),
35 Field(
Name(
"enableLighting"), &MaterialComponent::enableLighting),
37 Field(
Name(
"diffuseMapScale"), &MaterialComponent::diffuseMapScale),
38 Field(
Name(
"diffuseMap"), &MaterialComponent::diffuseMap),
39 Field(
Name(
"diffuseAddressMode"), &MaterialComponent::addressMode),
40 Field(
Name(
"diffuseFilterMode"), &MaterialComponent::filterMode),
41 Field(
Name(
"normalMap"), &MaterialComponent::normalMap),
42 Field(
Name(
"normalMapScale"), &MaterialComponent::normalMapScale),
43 Field(
Name(
"normalMapFactor"), &MaterialComponent::normalMapFactor),
44 Field(
Name(
"specularMap"), &MaterialComponent::specularMap),
45 Field(
Name(
"specularMapScale"), &MaterialComponent::specularMapScale),
46 Field(
Name(
"enableOverride"), &MaterialComponent::enableOverride),
47 Field(
Name(
"enableColorOverride"), &MaterialComponent::enableColorOverride),
48 Field(
Name(
"enableAlphaOverride"), &MaterialComponent::enableAlphaOverride),
49 Field(
Name(
"enableTextureOverride"), &MaterialComponent::enableTextureOverride),
52 TypeDatabase::createType<MaterialComponent>().setBase<Component>().setFields(fields);
55void Cogs::Core::MaterialComponent::copyProperties(
const MaterialComponent* source)
57 material = source->material;
58 diffuseColor = source->diffuseColor;
59 emissiveColor = source->emissiveColor;
60 specularColor = source->specularColor;
61 ambientColor = source->ambientColor;
62 transparency = source->transparency;
63 instancedLine = source->instancedLine;
64 vertexColor = source->vertexColor;
65 backdrop = source->backdrop;
66 enableLighting = source->enableLighting;
67 shadowReceiver = source->shadowReceiver;
68 primitiveType = source->primitiveType;
69 lineWidth = source->lineWidth;
70 stippleFactor = source->stippleFactor;
71 stipplePattern = source->stipplePattern;
72 drawOrder = source->drawOrder;
73 pointSize = source->pointSize;
74 cullMode = source->cullMode;
75 depthWriteEnabled = source->depthWriteEnabled;
76 depthTestEnabled = source->depthTestEnabled;
77 depthTestAlwaysPass = source->depthTestAlwaysPass;
78 depthBiasEnable = source->depthBiasEnable;
79 depthBiasConstant = source->depthBiasConstant;
80 depthBiasSlope = source->depthBiasSlope;
81 depthBiasClamp = source->depthBiasClamp;
82 blendMode = source->blendMode;
83 diffuseMap = source->diffuseMap;
84 normalMap = source->normalMap;
85 specularMap = source->specularMap;
86 addressMode = source->addressMode;
87 filterMode = source->filterMode;
88 diffuseMapScale = source->diffuseMapScale;
89 normalMapScale = source->normalMapScale;
90 specularMapScale = source->specularMapScale;
91 normalMapFactor = source->normalMapFactor;
92 enableOverride = source->enableOverride;
93 enableColorOverride = source->enableColorOverride;
94 enableAlphaOverride = source->enableAlphaOverride;
95 enableTextureOverride = source->enableTextureOverride;
Field definition describing a single data member of a data structure.
Contains reflection support.
void setChanged(Cogs::Core::Context *context, Cogs::ComponentModel::Component *component, Reflection::FieldId fieldId)
Must be Called after changing a Component field. Mark field changed. Request engine update.
bool shadowReceiver
If false, object never gets shadowed.
int32_t drawOrder
Manages draw order, maps to MaterialOptions::drawOrder.
bool backdrop
If true the MaterialFlags::Backdrop on the material instance.
bool instancedLine
Lines rendered with instancing.
Represents an unique name.