CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GiMaterialTraitsData.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef _ODGIMATERIALTRAITSDATA_INCLUDED_
25#define _ODGIMATERIALTRAITSDATA_INCLUDED_
26
27#include "Gi/GiMaterial.h"
28#include "StaticRxObject.h"
29
30class OdDbStub;
31
32#include "TD_PackPush.h"
33
41{
42protected:
50 double m_opacity;
61 // Extended material properties
68 double m_lumiVal;
74 // BIM extensions
84 // Visualize extensions
91public:
98 , m_diffuseMap()
100 , m_specularMap()
101 , m_glossFactor(0.0)
103 , m_opacity(1.0)
104 , m_opacityMap()
105 , m_bumpMap()
106 , m_refractionIndex(1.0)
108 , m_translucenceVal(0.0)
109 , m_selfIllumVal(0.0)
110 , m_reflectivityVal(0.0)
111 , m_illumModel(OdGiMaterialTraits::kBlinnShader)
112 , m_channelFlags(OdGiMaterialTraits::kUseDiffuse)
113 , m_mode(OdGiMaterialTraits::kRealistic)
114 // Extended material properties
115 , m_bleedScale(100.0)
116 , m_indirectBumpScale(100.0)
117 , m_reflectScale(100.0)
118 , m_transmitScale(100.0)
120 , m_lumiMode(OdGiMaterialTraits::kSelfIllumination)
121 , m_lumiVal(0.0)
122 , m_normalMap()
123 , m_normalMethod(OdGiMaterialTraits::kTangentSpace)
124 , m_normalStrength(1.0)
125 , m_globIllum(OdGiMaterialTraits::kGlobalIlluminationCastAndReceive)
126 , m_fgMode(OdGiMaterialTraits::kFinalGatherCastAndReceive)
127 // BIM extensions
129 , m_emissionMap()
130 , m_tintColor(OdCmEntityColor(255, 255, 255))
134 , m_shadingOpacity(1.0)
135 , m_diffuseColorMode(OdGiMaterialTraits::kDiffuseRealisticColor)
136 , m_reflectionMethod(OdGiMaterialTraits::kRayTracedReflections)
137 // Visualize extensions
138 , m_shadowsOpacity(1.0)
139 , m_specularOverride(0.0)
140 , m_nslmEffect(1.0)
141 , m_roughness(0.0)
143 , m_cutoutsMap()
144 {
145 }
146
154 {
162 m_opacity = other.m_opacity;
164 m_bumpMap = other.m_bumpMap;
172 m_mode = other.m_mode;
173 // Extended material properties
178 m_twoSided = other.m_twoSided;
179 m_lumiMode = other.m_lumiMode;
180 m_lumiVal = other.m_lumiVal;
181 m_normalMap = other.m_normalMap;
184 m_globIllum = other.m_globIllum;
185 m_fgMode = other.m_fgMode;
186 // BIM extensions
189 m_tintColor = other.m_tintColor;
196 // Visualize extensions
200 m_roughness = other.m_roughness;
203 }
204
214 bool operator ==(const OdGiMaterialTraitsData& other) const
215 {
216 if (m_ambientColor != other.m_ambientColor) return false;
217 if (m_diffuseColor != other.m_diffuseColor) return false;
218 if (m_diffuseMap != other.m_diffuseMap) return false;
219 if (m_specularColor != other.m_specularColor) return false;
220 if (m_specularMap != other.m_specularMap) return false;
221 if (m_glossFactor != other.m_glossFactor) return false;
222 if (m_reflectionMap != other.m_reflectionMap) return false;
223 if (m_opacity != other.m_opacity) return false;
224 if (m_opacityMap != other.m_opacityMap) return false;
225 if (m_bumpMap != other.m_bumpMap) return false;
226 if (m_refractionIndex != other.m_refractionIndex) return false;
227 if (m_refractionMap != other.m_refractionMap) return false;
228 if (m_translucenceVal != other.m_translucenceVal) return false;
229 if (m_selfIllumVal != other.m_selfIllumVal) return false;
230 if (m_reflectivityVal != other.m_reflectivityVal) return false;
231 if (m_illumModel != other.m_illumModel) return false;
232 if (m_channelFlags != other.m_channelFlags) return false;
233 if (m_mode != other.m_mode) return false;
234 // Extended material properties
235 if (m_bleedScale != other.m_bleedScale) return false;
236 if (m_indirectBumpScale != other.m_indirectBumpScale) return false;
237 if (m_reflectScale != other.m_reflectScale) return false;
238 if (m_transmitScale != other.m_transmitScale) return false;
239 if (m_twoSided != other.m_twoSided) return false;
240 if (m_lumiMode != other.m_lumiMode) return false;
241 if (m_lumiVal != other.m_lumiVal) return false;
242 if (m_normalMap != other.m_normalMap) return false;
243 if (m_normalMethod != other.m_normalMethod) return false;
244 if (m_normalStrength != other.m_normalStrength) return false;
245 if (m_globIllum != other.m_globIllum) return false;
246 if (m_fgMode != other.m_fgMode) return false;
247 // BIM extensions
248 if (m_emissionColor != other.m_emissionColor) return false;
249 if (m_emissionMap != other.m_emissionMap) return false;
250 if (m_tintColor != other.m_tintColor) return false;
251 if (m_shadingAmbientColor != other.m_shadingAmbientColor) return false;
252 if (m_shadingDiffuseColor != other.m_shadingDiffuseColor) return false;
253 if (m_shadingSpeclrColor != other.m_shadingSpeclrColor) return false;
254 if (m_shadingOpacity != other.m_shadingOpacity) return false;
255 if (m_diffuseColorMode != other.m_diffuseColorMode) return false;
256 if (m_reflectionMethod != other.m_reflectionMethod) return false;
257 // Visualize extensions
258 if (m_shadowsOpacity != other.m_shadowsOpacity) return false;
259 if (m_specularOverride != other.m_specularOverride) return false;
260 if (m_nslmEffect != other.m_nslmEffect) return false;
261 if (m_roughness != other.m_roughness) return false;
262 if (m_roughnessMap != other.m_roughnessMap) return false;
263 if (m_cutoutsMap != other.m_cutoutsMap) return false;
264 return true;
265 }
266
276 bool operator !=(const OdGiMaterialTraitsData& other) const
277 {
278 if (m_ambientColor != other.m_ambientColor) return true;
279 if (m_diffuseColor != other.m_diffuseColor) return true;
280 if (m_diffuseMap != other.m_diffuseMap) return true;
281 if (m_specularColor != other.m_specularColor) return true;
282 if (m_specularMap != other.m_specularMap) return true;
283 if (m_glossFactor != other.m_glossFactor) return true;
284 if (m_reflectionMap != other.m_reflectionMap) return true;
285 if (m_opacity != other.m_opacity) return true;
286 if (m_opacityMap != other.m_opacityMap) return true;
287 if (m_bumpMap != other.m_bumpMap) return true;
288 if (m_refractionIndex != other.m_refractionIndex) return true;
289 if (m_refractionMap != other.m_refractionMap) return true;
290 if (m_translucenceVal != other.m_translucenceVal) return true;
291 if (m_selfIllumVal != other.m_selfIllumVal) return true;
292 if (m_reflectivityVal != other.m_reflectivityVal) return true;
293 if (m_illumModel != other.m_illumModel) return true;
294 if (m_channelFlags != other.m_channelFlags) return true;
295 if (m_mode != other.m_mode) return true;
296 // Extended material properties
297 if (m_bleedScale != other.m_bleedScale) return true;
298 if (m_indirectBumpScale != other.m_indirectBumpScale) return true;
299 if (m_reflectScale != other.m_reflectScale) return true;
300 if (m_transmitScale != other.m_transmitScale) return true;
301 if (m_twoSided != other.m_twoSided) return true;
302 if (m_lumiMode != other.m_lumiMode) return true;
303 if (m_lumiVal != other.m_lumiVal) return true;
304 if (m_normalMap != other.m_normalMap) return true;
305 if (m_normalMethod != other.m_normalMethod) return true;
306 if (m_normalStrength != other.m_normalStrength) return true;
307 if (m_globIllum != other.m_globIllum) return true;
308 if (m_fgMode != other.m_fgMode) return true;
309 // BIM extensions
310 if (m_emissionColor != other.m_emissionColor) return true;
311 if (m_emissionMap != other.m_emissionMap) return true;
312 if (m_tintColor != other.m_tintColor) return true;
313 if (m_shadingAmbientColor != other.m_shadingAmbientColor) return true;
314 if (m_shadingDiffuseColor != other.m_shadingDiffuseColor) return true;
315 if (m_shadingSpeclrColor != other.m_shadingSpeclrColor) return true;
316 if (m_shadingOpacity != other.m_shadingOpacity) return true;
317 if (m_diffuseColorMode != other.m_diffuseColorMode) return true;
318 if (m_reflectionMethod != other.m_reflectionMethod) return true;
319 // Visualize extensions
320 if (m_shadowsOpacity != other.m_shadowsOpacity) return true;
321 if (m_specularOverride != other.m_specularOverride) return true;
322 if (m_nslmEffect != other.m_nslmEffect) return true;
323 if (m_roughness != other.m_roughness) return true;
324 if (m_roughnessMap != other.m_roughnessMap) return true;
325 if (m_cutoutsMap != other.m_cutoutsMap) return true;
326 return false;
327 }
328
333 void ambient(OdGiMaterialColor& ambientColor) const
334 {
335 ambientColor = m_ambientColor;
336 }
337
343 void diffuse(OdGiMaterialColor& diffuseColor, OdGiMaterialMap& diffuseMap) const
344 {
345 diffuseColor = m_diffuseColor;
346 diffuseMap = m_diffuseMap;
347 }
348
355 void specular(OdGiMaterialColor& specularColor, OdGiMaterialMap& specularMap, double& glossFactor) const
356 {
357 specularColor = m_specularColor;
358 specularMap = m_specularMap;
359 glossFactor = m_glossFactor;
360 }
361
366 void reflection(OdGiMaterialMap& reflectionMap) const
367 {
368 reflectionMap = m_reflectionMap;
369 }
370
376 void opacity(double& opacity, OdGiMaterialMap& opacityMap) const
377 {
379 opacityMap = m_opacityMap;
380 }
381
386 void bump(OdGiMaterialMap& bumpMap) const
387 {
388 bumpMap = m_bumpMap;
389 }
390
396 void refraction(double& refractionIndex, OdGiMaterialMap& refractionMap) const
397 {
398 refractionIndex = m_refractionIndex;
399 refractionMap = m_refractionMap;
400 }
401
407 double translucence() const
408 {
409 return m_translucenceVal;
410 }
411
417 double selfIllumination() const
418 {
419 return m_selfIllumVal;
420 }
421
427 double reflectivity() const
428 {
429 return m_reflectivityVal;
430 }
431
441
451
458 {
459 return m_mode;
460 }
461
470 void setAmbient(const OdGiMaterialColor& ambientColor)
471 {
472 m_ambientColor = ambientColor;
473 }
474
484 void setDiffuse(const OdGiMaterialColor& diffuseColor, const OdGiMaterialMap& diffuseMap)
485 {
486 m_diffuseColor = diffuseColor;
487 m_diffuseMap = diffuseMap;
488 }
489
500 void setSpecular(const OdGiMaterialColor& specularColor, const OdGiMaterialMap& specularMap, double glossFactor)
501 {
502 m_specularColor = specularColor;
503 m_specularMap = specularMap;
504 m_glossFactor = glossFactor;
505 }
506
515 void setReflection(const OdGiMaterialMap& reflectionMap)
516 {
517 m_reflectionMap = reflectionMap;
518 }
519
526 void setOpacity(double opacity, const OdGiMaterialMap& opacityMap)
527 {
529 m_opacityMap = opacityMap;
530 }
531
537 void setBump(const OdGiMaterialMap& bumpMap)
538 {
539 m_bumpMap = bumpMap;
540 }
541
548 void setRefraction(double refractionIndex, const OdGiMaterialMap& refractionMap)
549 {
550 m_refractionIndex = refractionIndex;
551 m_refractionMap = refractionMap;
552 }
553
560 {
562 }
563
570 {
572 }
573
580 {
582 }
583
593
603
613
614 // Extended material properties
615
622 {
624 }
625
632 double colorBleedScale() const
633 {
634 return m_bleedScale;
635 }
636
643 {
645 }
646
653 double indirectBumpScale() const
654 {
655 return m_indirectBumpScale;
656 }
657
664 {
666 }
667
674 double reflectanceScale() const
675 {
676 return m_reflectScale;
677 }
678
685 {
687 }
688
695 double transmittanceScale() const
696 {
697 return m_transmitScale;
698 }
699
705 void setTwoSided(bool flag)
706 {
707 m_twoSided = flag;
708 }
709
715 bool twoSided() const
716 {
717 return m_twoSided;
718 }
719
729
740
746 void setLuminance(double value)
747 {
749 }
750
757 double luminance() const
758 {
759 return m_lumiVal;
760 }
761
770 {
772 m_normalMethod = method;
773 m_normalStrength = strength;
774 }
775
784 {
786 method = m_normalMethod;
787 strength = m_normalStrength;
788 }
789
799
810
820
831
832 // BIM extensions
833
840 void setEmission(const OdGiMaterialColor& emissionColor, const OdGiMaterialMap& emissionMap)
841 {
842 m_emissionColor = emissionColor;
843 m_emissionMap = emissionMap;
844 }
845
852 void emission(OdGiMaterialColor& emissionColor, OdGiMaterialMap& emissionMap) const
853 {
854 emissionMap = m_emissionMap;
855 emissionColor = m_emissionColor;
856 }
857
863 void setTint(const OdGiMaterialColor& tintColor)
864 {
865 m_tintColor = tintColor;
866 }
867
873 void tint(OdGiMaterialColor& tintColor) const
874 {
875 tintColor = m_tintColor;
876 }
877
883 void setShadingAmbient(const OdGiMaterialColor& ambientColor)
884 {
885 m_shadingAmbientColor = ambientColor;
886 }
887
893 void shadingAmbient(OdGiMaterialColor& ambientColor) const
894 {
895 ambientColor = m_shadingAmbientColor;
896 }
897
903 void setShadingDiffuse(const OdGiMaterialColor& diffuseColor)
904 {
905 m_shadingDiffuseColor = diffuseColor;
906 }
907
913 void shadingDiffuse(OdGiMaterialColor& diffuseColor) const
914 {
915 diffuseColor = m_shadingDiffuseColor;
916 }
917
923 void setShadingSpecular(const OdGiMaterialColor& specularColor)
924 {
925 m_shadingSpeclrColor = specularColor;
926 }
927
933 void shadingSpecular(OdGiMaterialColor& specularColor) const
934 {
935 specularColor = m_shadingSpeclrColor;
936 }
937
943 void setShadingOpacity(double opacityPercentage)
944 {
945 m_shadingOpacity = opacityPercentage;
946 }
947
953 void shadingOpacity(double &opacityPercentage) const
954 {
955 opacityPercentage = m_shadingOpacity;
956 }
957
967
977
978 // Visualize extensions
979
989 void setShadowsOpacityEffect(double shadowsOpacity, double nonShadowLightsMergeEffect)
990 {
991 m_shadowsOpacity = shadowsOpacity;
992 m_nslmEffect = nonShadowLightsMergeEffect;
993 }
994
1002 double shadowsOpacityEffect(double &nonShadowLightsMergeEffect) const
1003 {
1004 nonShadowLightsMergeEffect = m_nslmEffect;
1005 return m_shadowsOpacity;
1006 }
1007
1018 void setSpecularHighlightingOverride(double overrideVal)
1019 {
1020 m_specularOverride = overrideVal;
1021 }
1022
1032 {
1033 return m_specularOverride;
1034 }
1035
1042 void setRoughness(const OdGiMaterialMap &roughnessMap, double strength)
1043 {
1044 m_roughness = strength;
1045 m_roughnessMap = roughnessMap;
1046 }
1047
1054 void roughness(OdGiMaterialMap &roughnessMap, double &strength) const
1055 {
1056 roughnessMap = m_roughnessMap;
1057 strength = m_roughness;
1058 }
1059
1065 void setCutouts(const OdGiMaterialMap &cutoutsMap)
1066 {
1067 m_cutoutsMap = cutoutsMap;
1068 }
1069
1075 void cutouts(OdGiMaterialMap &cutoutsMap) const
1076 {
1077 cutoutsMap = m_cutoutsMap;
1078 }
1079
1089
1100};
1101
1109class ODGI_EXPORT OdGiMaterialTraitsTaker : public OdStaticRxObject<OdGiMaterialTraits>
1110{
1111protected:
1113public:
1115
1120 virtual void ambient(OdGiMaterialColor& ambientColor) const
1121 {
1122 m_data.ambient(ambientColor);
1123 }
1124
1130 virtual void diffuse(OdGiMaterialColor& diffuseColor, OdGiMaterialMap& diffuseMap) const
1131 {
1132 m_data.diffuse(diffuseColor, diffuseMap);
1133 }
1134
1141 virtual void specular(OdGiMaterialColor& specularColor, OdGiMaterialMap& specularMap, double& glossFactor) const
1142 {
1143 m_data.specular(specularColor, specularMap, glossFactor);
1144 }
1145
1150 virtual void reflection(OdGiMaterialMap& reflectionMap) const
1151 {
1152 m_data.reflection(reflectionMap);
1153 }
1154
1160 virtual void opacity(double& opacityPercentage, OdGiMaterialMap& opacityMap) const
1161 {
1162 m_data.opacity(opacityPercentage, opacityMap);
1163 }
1164
1169 virtual void bump(OdGiMaterialMap& bumpMap) const
1170 {
1171 m_data.bump(bumpMap);
1172 }
1173
1179 virtual void refraction(double& refractionIndex, OdGiMaterialMap& refractionMap) const
1180 {
1181 m_data.refraction(refractionIndex, refractionMap);
1182 }
1183
1189 virtual double translucence() const
1190 {
1191 return m_data.translucence();
1192 }
1193
1199 virtual double selfIllumination() const
1200 {
1201 return m_data.selfIllumination();
1202 }
1203
1209 virtual double reflectivity() const
1210 {
1211 return m_data.reflectivity();
1212 }
1213
1220 {
1221 return m_data.illuminationModel();
1222 }
1223
1230 {
1231 return m_data.channelFlags();
1232 }
1233
1239 virtual Mode mode() const
1240 {
1241 return m_data.mode();
1242 }
1243
1252 virtual void setAmbient(const OdGiMaterialColor& ambientColor)
1253 {
1254 m_data.setAmbient(ambientColor);
1255 }
1256
1266 virtual void setDiffuse(const OdGiMaterialColor& diffuseColor, const OdGiMaterialMap& diffuseMap)
1267 {
1268 m_data.setDiffuse(diffuseColor, diffuseMap);
1269 }
1270
1281 virtual void setSpecular(const OdGiMaterialColor& specularColor, const OdGiMaterialMap& specularMap, double glossFactor)
1282 {
1283 m_data.setSpecular(specularColor, specularMap, glossFactor);
1284 }
1285
1294 virtual void setReflection(const OdGiMaterialMap& reflectionMap)
1295 {
1296 m_data.setReflection(reflectionMap);
1297 }
1298
1305 virtual void setOpacity(double opacityPercentage, const OdGiMaterialMap& opacityMap)
1306 {
1307 m_data.setOpacity(opacityPercentage, opacityMap);
1308 }
1309
1315 virtual void setBump(const OdGiMaterialMap& bumpMap)
1316 {
1317 m_data.setBump(bumpMap);
1318 }
1319
1326 virtual void setRefraction(double refractionIndex, const OdGiMaterialMap& refractionMap)
1327 {
1328 m_data.setRefraction(refractionIndex, refractionMap);
1329 }
1330
1336 virtual void setTranslucence(double value)
1337 {
1338 m_data.setTranslucence(value);
1339 }
1340
1346 virtual void setSelfIllumination(double value)
1347 {
1348 m_data.setSelfIllumination(value);
1349 }
1350
1356 virtual void setReflectivity(double value)
1357 {
1358 m_data.setReflectivity(value);
1359 }
1360
1367 {
1368 m_data.setIlluminationModel(model);
1369 }
1370
1376 virtual void setChannelFlags(ChannelFlags flags)
1377 {
1378 m_data.setChannelFlags(flags);
1379 }
1380
1386 virtual void setMode(Mode value)
1387 {
1388 m_data.setMode(value);
1389 }
1390
1396 virtual void setColorBleedScale(double scale)
1397 {
1398 m_data.setColorBleedScale(scale);
1399 }
1400
1407 virtual double colorBleedScale() const
1408 {
1409 return m_data.colorBleedScale();
1410 }
1411
1417 virtual void setIndirectBumpScale(double scale)
1418 {
1419 m_data.setIndirectBumpScale(scale);
1420 }
1421
1428 virtual double indirectBumpScale() const
1429 {
1430 return m_data.indirectBumpScale();
1431 }
1432
1438 virtual void setReflectanceScale(double scale)
1439 {
1440 m_data.setReflectanceScale(scale);
1441 }
1442
1449 virtual double reflectanceScale() const
1450 {
1451 return m_data.reflectanceScale();
1452 }
1453
1459 virtual void setTransmittanceScale(double scale)
1460 {
1461 m_data.setTransmittanceScale(scale);
1462 }
1463
1470 virtual double transmittanceScale() const
1471 {
1472 return m_data.transmittanceScale();
1473 }
1474
1480 virtual void setTwoSided(bool flag)
1481 {
1482 m_data.setTwoSided(flag);
1483 }
1484
1490 virtual bool twoSided() const
1491 {
1492 return m_data.twoSided();
1493 }
1494
1501 {
1502 m_data.setLuminanceMode(mode);
1503 }
1504
1512 {
1513 return m_data.luminanceMode();
1514 }
1515
1521 virtual void setLuminance(double value)
1522 {
1523 m_data.setLuminance(value);
1524 }
1525
1532 virtual double luminance() const
1533 {
1534 return m_data.luminance();
1535 }
1536
1544 virtual void setNormalMap(const OdGiMaterialMap &normalMap, NormalMapMethod method, double strength)
1545 {
1546 m_data.setNormalMap(normalMap, method, strength);
1547 }
1548
1556 virtual void normalMap(OdGiMaterialMap &normalMap, NormalMapMethod &method, double &strength) const
1557 {
1558 m_data.normalMap(normalMap, method, strength);
1559 }
1560
1567 {
1568 m_data.setGlobalIllumination(mode);
1569 }
1570
1578 {
1579 return m_data.globalIllumination();
1580 }
1581
1588 {
1589 m_data.setFinalGather(mode);
1590 }
1591
1599 {
1600 return m_data.finalGather();
1601 }
1602
1609 virtual void setEmission(const OdGiMaterialColor& emissionColor, const OdGiMaterialMap& emissionMap)
1610 {
1611 m_data.setEmission(emissionColor, emissionMap);
1612 }
1613
1620 virtual void emission(OdGiMaterialColor& emissionColor, OdGiMaterialMap& emissionMap) const
1621 {
1622 m_data.emission(emissionColor, emissionMap);
1623 }
1624
1630 virtual void setTint(const OdGiMaterialColor& tintColor)
1631 {
1632 m_data.setTint(tintColor);
1633 }
1634
1640 virtual void tint(OdGiMaterialColor& tintColor) const
1641 {
1642 m_data.tint(tintColor);
1643 }
1644
1650 virtual void setShadingAmbient(const OdGiMaterialColor& ambientColor)
1651 {
1652 m_data.setShadingAmbient(ambientColor);
1653 }
1654
1660 virtual void shadingAmbient(OdGiMaterialColor& ambientColor) const
1661 {
1662 m_data.shadingAmbient(ambientColor);
1663 }
1664
1670 virtual void setShadingDiffuse(const OdGiMaterialColor& diffuseColor)
1671 {
1672 m_data.setShadingDiffuse(diffuseColor);
1673 }
1674
1680 virtual void shadingDiffuse(OdGiMaterialColor& diffuseColor) const
1681 {
1682 m_data.shadingDiffuse(diffuseColor);
1683 }
1684
1690 virtual void setShadingSpecular(const OdGiMaterialColor& specularColor)
1691 {
1692 m_data.setShadingSpecular(specularColor);
1693 }
1694
1700 virtual void shadingSpecular(OdGiMaterialColor& specularColor) const
1701 {
1702 m_data.shadingSpecular(specularColor);
1703 }
1704
1705
1711 virtual void setShadingOpacity(double opacityPercentage)
1712 {
1713 m_data.setShadingOpacity(opacityPercentage);
1714 }
1715
1721 virtual void shadingOpacity(double &opacityPercentage) const
1722 {
1723 m_data.shadingOpacity(opacityPercentage);
1724 }
1725
1732 {
1733 m_data.setDiffuseColorMode(diffuseColorMode);
1734 }
1735
1742 {
1743 return m_data.diffuseColorMode();
1744 }
1745
1752 virtual void setShadowsOpacityEffect(double effectPercentage, double nonShadowLightsMergeEffect)
1753 {
1754 m_data.setShadowsOpacityEffect(effectPercentage, nonShadowLightsMergeEffect);
1755 }
1756
1764 virtual double shadowsOpacityEffect(double &nonShadowLightsMergeEffect) const
1765 {
1766 return m_data.shadowsOpacityEffect(nonShadowLightsMergeEffect);
1767 }
1768
1779 void setSpecularHighlightingOverride(double overrideVal)
1780 {
1781 m_data.setSpecularHighlightingOverride(overrideVal);
1782 }
1783
1793 {
1794 return m_data.specularHighlightingOverride();
1795 }
1796
1803 void setRoughness(const OdGiMaterialMap &roughnessMap, double strength)
1804 {
1805 m_data.setRoughness(roughnessMap, strength);
1806 }
1807
1814 void roughness(OdGiMaterialMap &roughnessMap, double &strength) const
1815 {
1816 m_data.roughness(roughnessMap, strength);
1817 }
1818
1824 void setCutouts(const OdGiMaterialMap &cutoutsMap)
1825 {
1826 m_data.setCutouts(cutoutsMap);
1827 }
1828
1834 void cutouts(OdGiMaterialMap &cutoutsMap) const
1835 {
1836 m_data.cutouts(cutoutsMap);
1837 }
1838
1845 {
1846 m_data.setReflectionMethod(method);
1847 }
1848
1856 {
1857 return m_data.reflectionMethod();
1858 }
1859
1865
1871 const OdGiMaterialTraitsData &getData() const { return m_data; }
1872
1879};
1880
1885
1886//DOM-IGNORE-BEGIN
1887
1895class ODGI_EXPORT OdGiMaterialTraits_Stub : public OdStaticRxObject<OdGiMaterialTraits>
1896{
1897public:
1899
1904
1905 void ambient(OdGiMaterialColor& /*ambientColor*/) const { }
1906 void diffuse(OdGiMaterialColor& /*diffuseColor*/, OdGiMaterialMap& /*diffuseMap*/) const { }
1907 void specular(OdGiMaterialColor& /*specularColor*/, OdGiMaterialMap& /*specularMap*/, double& /*glossFactor*/) const { }
1908 void reflection(OdGiMaterialMap& /*reflectionMap*/) const { }
1909 void opacity(double& /*opacityPercentage*/, OdGiMaterialMap& /*opacityMap*/) const { }
1910 void bump(OdGiMaterialMap& /*bumpMap*/) const { }
1911 void refraction(double& /*refractionIndex*/, OdGiMaterialMap& /*refractionMap*/) const { }
1912 double translucence() const { return 0.0; }
1913 double selfIllumination() const { return 0.0; }
1914 double reflectivity() const { return 0.0; }
1917 Mode mode() const { return kRealistic; }
1918
1919 void setAmbient(const OdGiMaterialColor& /*ambientColor*/) { }
1920 void setDiffuse(const OdGiMaterialColor& /*diffuseColor*/, const OdGiMaterialMap& /*diffuseMap*/) { }
1921 void setSpecular(const OdGiMaterialColor& /*specularColor*/, const OdGiMaterialMap& /*specularMap*/, double /*glossFactor*/) { }
1922 void setReflection(const OdGiMaterialMap& /*reflectionMap*/) { }
1923 void setOpacity(double /*opacityPercentage*/, const OdGiMaterialMap& /*opacityMap*/) { }
1924 void setBump(const OdGiMaterialMap& /*bumpMap*/) { }
1925 void setRefraction(double /*refractionIndex*/, const OdGiMaterialMap& /*refractionMap*/) { }
1926 void setTranslucence(double /*value*/) { }
1927 void setSelfIllumination(double /*value*/) { }
1928 void setReflectivity(double /*value*/) { }
1930 void setChannelFlags(ChannelFlags /*flags*/) { }
1931 void setMode(Mode /*value*/) { }
1932
1933 void setColorBleedScale(double /*scale*/) { }
1934 double colorBleedScale() const { return 0.0; }
1935
1936 void setIndirectBumpScale(double /*scale*/) { }
1937 double indirectBumpScale() const { return 0.0; }
1938
1939 void setReflectanceScale(double /*scale*/) { }
1940 double reflectanceScale() const { return 0.0; }
1941
1942 void setTransmittanceScale(double /*scale*/) { }
1943 double transmittanceScale() const { return 0.0; }
1944
1945 void setTwoSided(bool /*flag*/) { }
1946 bool twoSided() const { return true; }
1947
1950
1951 void setLuminance(double /*value*/) { }
1952 double luminance() const { return 0.0; }
1953
1954 void setNormalMap(const OdGiMaterialMap &/*normalMap*/, NormalMapMethod /*method*/, double /*strength*/) { }
1955 void normalMap(OdGiMaterialMap &/*normalMap*/, NormalMapMethod &/*method*/, double &/*strength*/) const { }
1956
1959
1962
1963 void setEmission(const OdGiMaterialColor& /*emissionColor*/, const OdGiMaterialMap& /*emissionMap*/) { }
1964 void emission(OdGiMaterialColor& /*emissionColor*/, OdGiMaterialMap& /*emissionMap*/) const { }
1965
1966 void setTint(const OdGiMaterialColor& /*tintColor*/) { }
1967 void tint(OdGiMaterialColor& /*tintColor*/) const { }
1968
1969 void setShadingAmbient(const OdGiMaterialColor& /*ambientColor*/) { }
1970 void shadingAmbient(OdGiMaterialColor& /*ambientColor*/) const { }
1971
1972 void setShadingDiffuse(const OdGiMaterialColor& /*diffuseColor*/) { }
1973 void shadingDiffuse(OdGiMaterialColor& /*diffuseColor*/) const { }
1974
1975 void setShadingSpecular(const OdGiMaterialColor& /*specularColor*/) { }
1976 void shadingSpecular(OdGiMaterialColor& /*specularColor*/) const { }
1977
1978 void setShadingOpacity(double /*opacityPercentage*/) { }
1979 void shadingOpacity(double& /*opacityPercentage*/) const { }
1980
1981 void setDiffuseColorMode(DiffuseColorMode /*diffuseColorMode*/) { }
1983
1984 void setShadowsOpacityEffect(double /*effectPercentage*/, double /*nonShadowLightsMergeEffect*/) { }
1985 double shadowsOpacityEffect(double& /*nonShadowLightsMergeEffect*/) const { return 1.0; }
1986
1987 void setSpecularHighlightingOverride(double /*overrideVal*/) { }
1988 double specularHighlightingOverride() const { return 0.0; }
1989
1990 void setRoughness(const OdGiMaterialMap& /*roughnessMap*/, double /*strength*/) { }
1991 void roughness(OdGiMaterialMap& /*roughnessMap*/, double& /*strength*/) const { }
1992
1993 void setCutouts(const OdGiMaterialMap& /*cutoutsMap*/) { }
1994 void cutouts(OdGiMaterialMap& /*cutoutsMap*/) const { }
1995
1998};
1999
2004
2005//DOM-IGNORE-END
2006
2007#include "TD_PackPop.h"
2008
2009#endif // #ifndef _ODGIMATERIALTRAITSDATA_INCLUDED_
true
scale
#define ODGI_EXPORT
Definition GiExport.h:35
OdSmartPtr< OdGiMaterialTraitsTaker > OdGiMaterialTraitsTakerPtr
OdSmartPtr< OdGiMaterialTraits_Stub > OdGiMaterialTraits_StubPtr
void refraction(double &, OdGiMaterialMap &) const
void setChannelFlags(ChannelFlags)
void setBump(const OdGiMaterialMap &)
void specular(OdGiMaterialColor &, OdGiMaterialMap &, double &) const
void setShadingSpecular(const OdGiMaterialColor &)
void setShadowsOpacityEffect(double, double)
void shadingDiffuse(OdGiMaterialColor &) const
void cutouts(OdGiMaterialMap &) const
void emission(OdGiMaterialColor &, OdGiMaterialMap &) const
void shadingAmbient(OdGiMaterialColor &) const
void setRoughness(const OdGiMaterialMap &, double)
void setLuminanceMode(LuminanceMode)
void setSpecular(const OdGiMaterialColor &, const OdGiMaterialMap &, double)
void roughness(OdGiMaterialMap &, double &) const
void setDiffuse(const OdGiMaterialColor &, const OdGiMaterialMap &)
ODRX_USING_HEAP_OPERATORS(OdGiMaterialTraits)
void shadingOpacity(double &) const
double shadowsOpacityEffect(double &) const
void opacity(double &, OdGiMaterialMap &) const
void setOpacity(double, const OdGiMaterialMap &)
void reflection(OdGiMaterialMap &) const
void setShadingAmbient(const OdGiMaterialColor &)
IlluminationModel illuminationModel() const
void bump(OdGiMaterialMap &) const
double specularHighlightingOverride() const
ReflectionMethod reflectionMethod() const
void setCutouts(const OdGiMaterialMap &)
void setDiffuseColorMode(DiffuseColorMode)
void setRefraction(double, const OdGiMaterialMap &)
void setNormalMap(const OdGiMaterialMap &, NormalMapMethod, double)
void ambient(OdGiMaterialColor &) const
GlobalIlluminationMode globalIllumination() const
void setIlluminationModel(IlluminationModel)
LuminanceMode luminanceMode() const
DiffuseColorMode diffuseColorMode() const
void shadingSpecular(OdGiMaterialColor &) const
void normalMap(OdGiMaterialMap &, NormalMapMethod &, double &) const
void setTint(const OdGiMaterialColor &)
void diffuse(OdGiMaterialColor &, OdGiMaterialMap &) const
FinalGatherMode finalGather() const
void setShadingDiffuse(const OdGiMaterialColor &)
void setAmbient(const OdGiMaterialColor &)
void setFinalGather(FinalGatherMode)
void setEmission(const OdGiMaterialColor &, const OdGiMaterialMap &)
void setReflectionMethod(ReflectionMethod)
void setReflection(const OdGiMaterialMap &)
void tint(OdGiMaterialColor &) const
void setGlobalIllumination(GlobalIlluminationMode)
ChannelFlags channelFlags() const
@ kGlobalIlluminationCastAndReceive
Definition GiMaterial.h:157
virtual void setLuminanceMode(LuminanceMode mode)
OdGiMaterialTraitsData m_data
virtual void setFinalGather(FinalGatherMode mode)
virtual void setSelfIllumination(double value)
virtual void setRefraction(double refractionIndex, const OdGiMaterialMap &refractionMap)
virtual void setMode(Mode value)
virtual void opacity(double &opacityPercentage, OdGiMaterialMap &opacityMap) const
virtual IlluminationModel illuminationModel() const
virtual void setTransmittanceScale(double scale)
const OdGiMaterialTraitsData & getData() const
virtual void emission(OdGiMaterialColor &emissionColor, OdGiMaterialMap &emissionMap) const
virtual void setIlluminationModel(IlluminationModel model)
virtual DiffuseColorMode diffuseColorMode() const
virtual void refraction(double &refractionIndex, OdGiMaterialMap &refractionMap) const
void getData(OdGiMaterialTraitsData &data) const
virtual void specular(OdGiMaterialColor &specularColor, OdGiMaterialMap &specularMap, double &glossFactor) const
virtual void ambient(OdGiMaterialColor &ambientColor) const
virtual ChannelFlags channelFlags() const
virtual double reflectanceScale() const
virtual void setTint(const OdGiMaterialColor &tintColor)
virtual void setColorBleedScale(double scale)
virtual void shadingOpacity(double &opacityPercentage) const
virtual void shadingSpecular(OdGiMaterialColor &specularColor) const
virtual void setShadingDiffuse(const OdGiMaterialColor &diffuseColor)
virtual bool twoSided() const
virtual void setEmission(const OdGiMaterialColor &emissionColor, const OdGiMaterialMap &emissionMap)
virtual void setShadowsOpacityEffect(double effectPercentage, double nonShadowLightsMergeEffect)
virtual void setNormalMap(const OdGiMaterialMap &normalMap, NormalMapMethod method, double strength)
virtual double indirectBumpScale() const
virtual void tint(OdGiMaterialColor &tintColor) const
virtual void diffuse(OdGiMaterialColor &diffuseColor, OdGiMaterialMap &diffuseMap) const
virtual void shadingAmbient(OdGiMaterialColor &ambientColor) const
void setSpecularHighlightingOverride(double overrideVal)
virtual GlobalIlluminationMode globalIllumination() const
virtual double transmittanceScale() const
virtual void setReflection(const OdGiMaterialMap &reflectionMap)
virtual void setIndirectBumpScale(double scale)
virtual void setReflectivity(double value)
virtual void reflection(OdGiMaterialMap &reflectionMap) const
virtual FinalGatherMode finalGather() const
double specularHighlightingOverride() const
virtual double shadowsOpacityEffect(double &nonShadowLightsMergeEffect) const
virtual void setGlobalIllumination(GlobalIlluminationMode mode)
virtual void setSpecular(const OdGiMaterialColor &specularColor, const OdGiMaterialMap &specularMap, double glossFactor)
virtual void setLuminance(double value)
virtual void setDiffuse(const OdGiMaterialColor &diffuseColor, const OdGiMaterialMap &diffuseMap)
virtual void setShadingOpacity(double opacityPercentage)
void setCutouts(const OdGiMaterialMap &cutoutsMap)
void roughness(OdGiMaterialMap &roughnessMap, double &strength) const
void setReflectionMethod(ReflectionMethod method)
void setData(const OdGiMaterialTraitsData &data)
virtual double reflectivity() const
virtual void bump(OdGiMaterialMap &bumpMap) const
void setRoughness(const OdGiMaterialMap &roughnessMap, double strength)
virtual double luminance() const
virtual void setOpacity(double opacityPercentage, const OdGiMaterialMap &opacityMap)
virtual void setTwoSided(bool flag)
virtual void setShadingSpecular(const OdGiMaterialColor &specularColor)
ReflectionMethod reflectionMethod() const
virtual void setReflectanceScale(double scale)
virtual double selfIllumination() const
virtual void shadingDiffuse(OdGiMaterialColor &diffuseColor) const
virtual void setChannelFlags(ChannelFlags flags)
virtual void setBump(const OdGiMaterialMap &bumpMap)
virtual void setAmbient(const OdGiMaterialColor &ambientColor)
virtual double colorBleedScale() const
virtual void setShadingAmbient(const OdGiMaterialColor &ambientColor)
ODRX_USING_HEAP_OPERATORS(OdGiMaterialTraits)
virtual LuminanceMode luminanceMode() const
virtual double translucence() const
virtual void setDiffuseColorMode(DiffuseColorMode diffuseColorMode)
void cutouts(OdGiMaterialMap &cutoutsMap) const
virtual void setTranslucence(double value)
virtual void normalMap(OdGiMaterialMap &normalMap, NormalMapMethod &method, double &strength) const
GLint GLenum GLsizei GLsizei GLint GLsizei const void * data
Definition gles2_ext.h:110
GLsizei const GLfloat * value
Definition gles2_ext.h:302
void setShadingDiffuse(const OdGiMaterialColor &diffuseColor)
void ambient(OdGiMaterialColor &ambientColor) const
void setAmbient(const OdGiMaterialColor &ambientColor)
OdGiMaterialTraits::GlobalIlluminationMode globalIllumination() const
OdGiMaterialTraits::LuminanceMode m_lumiMode
OdGiMaterialColor m_ambientColor
OdGiMaterialTraits::ChannelFlags m_channelFlags
void opacity(double &opacity, OdGiMaterialMap &opacityMap) const
void setColorBleedScale(double scale)
void setTransmittanceScale(double scale)
void setShadingOpacity(double opacityPercentage)
void setSpecular(const OdGiMaterialColor &specularColor, const OdGiMaterialMap &specularMap, double glossFactor)
OdGiMaterialColor m_specularColor
OdGiMaterialTraits::NormalMapMethod m_normalMethod
void setRoughness(const OdGiMaterialMap &roughnessMap, double strength)
void setChannelFlags(OdGiMaterialTraits::ChannelFlags flags)
OdGiMaterialColor m_shadingSpeclrColor
OdGiMaterialColor m_tintColor
void setIndirectBumpScale(double scale)
OdGiMaterialTraits::FinalGatherMode m_fgMode
void shadingOpacity(double &opacityPercentage) const
void setTranslucence(double value)
void setFinalGather(OdGiMaterialTraits::FinalGatherMode mode)
OdGiMaterialTraits::IlluminationModel m_illumModel
void shadingSpecular(OdGiMaterialColor &specularColor) const
double shadowsOpacityEffect(double &nonShadowLightsMergeEffect) const
OdGiMaterialColor m_emissionColor
OdGiMaterialTraits::DiffuseColorMode m_diffuseColorMode
OdGiMaterialTraits::ChannelFlags channelFlags() const
OdGiMaterialTraits::Mode m_mode
void setShadingAmbient(const OdGiMaterialColor &ambientColor)
void bump(OdGiMaterialMap &bumpMap) const
void reflection(OdGiMaterialMap &reflectionMap) const
OdGiMaterialColor m_diffuseColor
void refraction(double &refractionIndex, OdGiMaterialMap &refractionMap) const
void cutouts(OdGiMaterialMap &cutoutsMap) const
OdGiMaterialTraits::IlluminationModel illuminationModel() const
void setGlobalIllumination(OdGiMaterialTraits::GlobalIlluminationMode mode)
void roughness(OdGiMaterialMap &roughnessMap, double &strength) const
void setEmission(const OdGiMaterialColor &emissionColor, const OdGiMaterialMap &emissionMap)
void setIlluminationModel(OdGiMaterialTraits::IlluminationModel model)
void specular(OdGiMaterialColor &specularColor, OdGiMaterialMap &specularMap, double &glossFactor) const
void setLuminanceMode(OdGiMaterialTraits::LuminanceMode mode)
OdGiMaterialTraits::DiffuseColorMode diffuseColorMode() const
OdGiMaterialColor m_shadingAmbientColor
void setTint(const OdGiMaterialColor &tintColor)
void tint(OdGiMaterialColor &tintColor) const
void setBump(const OdGiMaterialMap &bumpMap)
void setRefraction(double refractionIndex, const OdGiMaterialMap &refractionMap)
void setNormalMap(const OdGiMaterialMap &normalMap, OdGiMaterialTraits::NormalMapMethod method, double strength)
void setReflectivity(double value)
void setSelfIllumination(double value)
bool operator==(const OdGiMaterialTraitsData &other) const
void diffuse(OdGiMaterialColor &diffuseColor, OdGiMaterialMap &diffuseMap) const
void setOpacity(double opacity, const OdGiMaterialMap &opacityMap)
OdGiMaterialTraits::GlobalIlluminationMode m_globIllum
void setMode(OdGiMaterialTraits::Mode value)
void shadingDiffuse(OdGiMaterialColor &diffuseColor) const
void setDiffuseColorMode(OdGiMaterialTraits::DiffuseColorMode diffuseColorMode)
void shadingAmbient(OdGiMaterialColor &ambientColor) const
void setLuminance(double value)
void setShadowsOpacityEffect(double shadowsOpacity, double nonShadowLightsMergeEffect)
void setReflection(const OdGiMaterialMap &reflectionMap)
OdGiMaterialColor m_shadingDiffuseColor
OdGiMaterialTraits::Mode mode() const
void setCutouts(const OdGiMaterialMap &cutoutsMap)
OdGiMaterialTraits::ReflectionMethod reflectionMethod() const
void setReflectionMethod(OdGiMaterialTraits::ReflectionMethod method)
void setSpecularHighlightingOverride(double overrideVal)
void setShadingSpecular(const OdGiMaterialColor &specularColor)
OdGiMaterialTraits::ReflectionMethod m_reflectionMethod
OdGiMaterialTraits::LuminanceMode luminanceMode() const
OdGiMaterialTraits::FinalGatherMode finalGather() const
void setReflectanceScale(double scale)
void operator=(const OdGiMaterialTraitsData &other)
void setDiffuse(const OdGiMaterialColor &diffuseColor, const OdGiMaterialMap &diffuseMap)
double specularHighlightingOverride() const
void normalMap(OdGiMaterialMap &normalMap, OdGiMaterialTraits::NormalMapMethod &method, double &strength) const
void emission(OdGiMaterialColor &emissionColor, OdGiMaterialMap &emissionMap) const
bool operator!=(const OdGiMaterialTraitsData &other) const