0033661: Data Exchange, Step Import - Tessellated GDTs are not imported
[occt.git] / src / Graphic3d / Graphic3d_MaterialAspect.cxx
CommitLineData
b311480e 1// Copyright (c) 1991-1999 Matra Datavision
973c2be1 2// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 3//
973c2be1 4// This file is part of Open CASCADE Technology software library.
b311480e 5//
d5f74e42 6// This library is free software; you can redistribute it and/or modify it under
7// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 8// by the Free Software Foundation, with special exception defined in the file
9// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10// distribution for complete text of the license and disclaimer of any warranty.
b311480e 11//
973c2be1 12// Alternatively, this file may be used under the terms of Open CASCADE
13// commercial license or contractual agreement.
7fd59977 14
42cf5bc1 15#include <Graphic3d_MaterialAspect.hxx>
4e1bc39a 16
42cf5bc1 17#include <Graphic3d_MaterialDefinitionError.hxx>
42cf5bc1 18#include <Standard_OutOfRange.hxx>
7fd59977 19
4e1bc39a 20namespace
44c7c33e 21{
4e1bc39a 22 //! Raw material for defining list of standard materials
23 struct RawMaterial
24 {
25 const char* StringName;
26 Graphic3d_BSDF BSDF;
67312b79 27 Graphic3d_PBRMaterial PBRMaterial;
61168418 28 Quantity_Color Colors[Graphic3d_TypeOfReflection_NB];
4e1bc39a 29 Standard_ShortReal TransparencyCoef;
30 Standard_ShortReal RefractionIndex;
31 Standard_ShortReal Shininess;
61168418 32 Standard_ShortReal AmbientCoef; //!< coefficient for Graphic3d_MaterialAspect::SetColor()
33 Standard_ShortReal DiffuseCoef; //!< coefficient for Graphic3d_MaterialAspect::SetColor()
4e1bc39a 34 Graphic3d_TypeOfMaterial MaterialType;
35 Graphic3d_NameOfMaterial MaterialName;
7fd59977 36
4e1bc39a 37 RawMaterial (Graphic3d_NameOfMaterial theName, const char* theStringName);
38
39 };
40
41 //! Name list of standard materials (defined within enumeration).
42 static const RawMaterial THE_MATERIALS[] =
43 {
a966542b 44 RawMaterial (Graphic3d_NameOfMaterial_Brass, "Brass"),
45 RawMaterial (Graphic3d_NameOfMaterial_Bronze, "Bronze"),
46 RawMaterial (Graphic3d_NameOfMaterial_Copper, "Copper"),
47 RawMaterial (Graphic3d_NameOfMaterial_Gold, "Gold"),
48 RawMaterial (Graphic3d_NameOfMaterial_Pewter, "Pewter"),
49 RawMaterial (Graphic3d_NameOfMaterial_Plastered, "Plastered"),
50 RawMaterial (Graphic3d_NameOfMaterial_Plastified, "Plastified"),
51 RawMaterial (Graphic3d_NameOfMaterial_Silver, "Silver"),
52 RawMaterial (Graphic3d_NameOfMaterial_Steel, "Steel"),
53 RawMaterial (Graphic3d_NameOfMaterial_Stone, "Stone"),
54 RawMaterial (Graphic3d_NameOfMaterial_ShinyPlastified, "Shiny_plastified"),
55 RawMaterial (Graphic3d_NameOfMaterial_Satin, "Satined"),
56 RawMaterial (Graphic3d_NameOfMaterial_Metalized, "Metalized"),
57 RawMaterial (Graphic3d_NameOfMaterial_Ionized, "Ionized"),
58 RawMaterial (Graphic3d_NameOfMaterial_Chrome, "Chrome"),
59 RawMaterial (Graphic3d_NameOfMaterial_Aluminum, "Aluminium"),
60 RawMaterial (Graphic3d_NameOfMaterial_Obsidian, "Obsidian"),
61 RawMaterial (Graphic3d_NameOfMaterial_Neon, "Neon"),
62 RawMaterial (Graphic3d_NameOfMaterial_Jade, "Jade"),
63 RawMaterial (Graphic3d_NameOfMaterial_Charcoal, "Charcoal"),
64 RawMaterial (Graphic3d_NameOfMaterial_Water, "Water"),
65 RawMaterial (Graphic3d_NameOfMaterial_Glass, "Glass"),
66 RawMaterial (Graphic3d_NameOfMaterial_Diamond, "Diamond"),
67 RawMaterial (Graphic3d_NameOfMaterial_Transparent, "Transparent"),
68 RawMaterial (Graphic3d_NameOfMaterial_DEFAULT, "Default"),
69 RawMaterial (Graphic3d_NameOfMaterial_UserDefined, "UserDefined")
4e1bc39a 70 };
7fd59977 71}
72
44c7c33e 73// =======================================================================
4e1bc39a 74// function : RawMaterial
44c7c33e 75// purpose :
76// =======================================================================
4e1bc39a 77RawMaterial::RawMaterial (Graphic3d_NameOfMaterial theName, const char* theStringName)
78: StringName (theStringName),
79 BSDF (Graphic3d_BSDF::CreateDiffuse (Graphic3d_Vec3 (0.0f))),
80 TransparencyCoef(0.0f),
81 RefractionIndex (1.0f),
82 Shininess (0.039f),
61168418 83 AmbientCoef (0.25f),
84 DiffuseCoef (1.0f),
4e1bc39a 85 MaterialType (Graphic3d_MATERIAL_ASPECT),
86 MaterialName (theName)
44c7c33e 87{
44c7c33e 88 switch (theName)
89 {
a966542b 90 case Graphic3d_NameOfMaterial_Plastified:
61168418 91 MaterialType = Graphic3d_MATERIAL_ASPECT;
4e1bc39a 92
61168418 93 Shininess = 0.0078125f;
ba00aab7 94 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.25f));
61168418 95 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.24f));
ba00aab7 96 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.004896f));
61168418 97 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
98
99 BSDF.Kd = Graphic3d_Vec3 (0.2f);
05aa616d 100 BSDF.Ks = Graphic3d_Vec4 (0.00784314f, 0.00784314f, 0.00784314f, 0.25f);
4e1bc39a 101 BSDF.Normalize();
67312b79 102
44c7c33e 103 break;
a966542b 104 case Graphic3d_NameOfMaterial_ShinyPlastified:
61168418 105 MaterialType = Graphic3d_MATERIAL_ASPECT;
4e1bc39a 106
61168418 107 Shininess = 1.00f;
ba00aab7 108 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.22f));
61168418 109 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.50f));
110 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (1.0f));
111 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
112
113 BSDF.Kd = Graphic3d_Vec3 (0.2f);
05aa616d 114 BSDF.Ks = Graphic3d_Vec4 (0.145f, 0.145f, 0.145f, 0.17f);
4e1bc39a 115 BSDF.Normalize();
44c7c33e 116 break;
a966542b 117 case Graphic3d_NameOfMaterial_Satin:
61168418 118 MaterialType = Graphic3d_MATERIAL_ASPECT;
119
120 Shininess = 0.09375f;
ba00aab7 121 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.165f));
61168418 122 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.40f));
ba00aab7 123 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.162647f));
61168418 124 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
189f85a3 125
4e1bc39a 126 BSDF.Kd = Graphic3d_Vec3 (0.2f);
05aa616d 127 BSDF.Ks = Graphic3d_Vec4 (0.6f);
67312b79 128
44c7c33e 129 break;
a966542b 130 case Graphic3d_NameOfMaterial_Ionized:
61168418 131 MaterialType = Graphic3d_MATERIAL_ASPECT;
132
133 Shininess = 0.05f;
134 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.0f));
135 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (1.0f));
ba00aab7 136 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.342392f));
61168418 137 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (1.0f));
4e1bc39a 138
139 BSDF.Kd = Graphic3d_Vec3 (0.0f);
05aa616d 140 BSDF.Ks = Graphic3d_Vec4 (0.5f, 0.5f, 0.5f, 0.f);
141 BSDF.Le = static_cast<Graphic3d_Vec3> (Colors[Graphic3d_TOR_DIFFUSE]);
142 BSDF.FresnelBase = Graphic3d_Fresnel::CreateDielectric (1.5f);
44c7c33e 143 break;
a966542b 144 case Graphic3d_NameOfMaterial_Metalized:
61168418 145 MaterialType = Graphic3d_MATERIAL_ASPECT;
146
147 Shininess = 0.13f;
148 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.0f));
149 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.47f));
ba00aab7 150 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.170645f));
61168418 151 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
152
153 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
154 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (0.2f)), 0.045f);
44c7c33e 155 break;
a966542b 156 case Graphic3d_NameOfMaterial_Brass:
4e1bc39a 157 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 158
4e1bc39a 159 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 160 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (0.58f, 0.42f, 0.20f)), 0.045f);
189f85a3 161
61168418 162 Shininess = 0.65f;
ba00aab7 163 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.088428f, 0.041081f, 0.002090f));
164 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.570482f, 0.283555f, 0.012335f));
4e1bc39a 165 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.992f, 0.941f, 0.808f));
61168418 166 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 167 break;
a966542b 168 case Graphic3d_NameOfMaterial_Bronze:
4e1bc39a 169 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 170
4e1bc39a 171 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 172 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (0.65f, 0.35f, 0.15f)), 0.045f);
189f85a3 173
61168418 174 Shininess = 0.65f;
ba00aab7 175 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.037301f, 0.014931f, 0.004305f));
176 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.468185f, 0.153344f, 0.027491f));
4e1bc39a 177 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.590f, 0.408f, 0.250f));
61168418 178 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 179 break;
a966542b 180 case Graphic3d_NameOfMaterial_Copper:
4e1bc39a 181 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 182
4e1bc39a 183 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 184 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (0.955008f, 0.637427f, 0.538163f)), 0.045f);
189f85a3 185
61168418 186 Shininess = 0.65f;
ba00aab7 187 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.030370f, 0.006451f, 0.001780f));
188 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.323236f, 0.059254f, 0.007584f));
4e1bc39a 189 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.950f, 0.640f, 0.540f));
61168418 190 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 191 break;
a966542b 192 case Graphic3d_NameOfMaterial_Gold:
4e1bc39a 193 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 194
4e1bc39a 195 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 196 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (1.000000f, 0.765557f, 0.336057f)), 0.045f);
189f85a3 197
61168418 198 Shininess = 0.80f;
ba00aab7 199 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.073239f, 0.043234f, 0.009264f));
200 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.525643f, 0.295700f, 0.010023f));
4e1bc39a 201 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (1.000f, 0.710f, 0.290f));
61168418 202 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 203 break;
a966542b 204 case Graphic3d_NameOfMaterial_Pewter:
4e1bc39a 205 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 206
4e1bc39a 207 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 208 Graphic3d_Fresnel::CreateConductor (1.8800f, 3.4900f), 0.045f);
189f85a3 209
61168418 210 Shininess = 0.50f;
ba00aab7 211 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.010979f, 0.004795f, 0.012335f));
212 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.152583f, 0.188174f, 0.253972f));
4e1bc39a 213 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.333f, 0.333f, 0.522f));
61168418 214 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 215 break;
a966542b 216 case Graphic3d_NameOfMaterial_Plastered:
61168418 217 MaterialType = Graphic3d_MATERIAL_ASPECT;
44c7c33e 218
61168418 219 Shininess = 0.01f;
ba00aab7 220 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.13f));
61168418 221 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.75f));
ba00aab7 222 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.003936f));
61168418 223 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
189f85a3 224
4e1bc39a 225 BSDF.Kd = Graphic3d_Vec3 (0.482353f, 0.482353f, 0.482353f);
67312b79 226
44c7c33e 227 break;
a966542b 228 case Graphic3d_NameOfMaterial_Silver:
4e1bc39a 229 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 230
4e1bc39a 231 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 232 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (0.971519f, 0.959915f, 0.915324f)), 0.045f);
189f85a3 233
61168418 234 Shininess = 0.75f;
ba00aab7 235 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.061465f, 0.061465f, 0.050876f));
236 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.354692f, 0.354692f, 0.354692f));
4e1bc39a 237 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.950f, 0.930f, 0.880f));
61168418 238 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 239 break;
a966542b 240 case Graphic3d_NameOfMaterial_Steel:
4e1bc39a 241 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 242
4e1bc39a 243 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 244 Graphic3d_Fresnel::CreateConductor (Graphic3d_Vec3 (2.90f, 2.80f, 2.53f), Graphic3d_Vec3 (3.08f, 2.90f, 2.74f)), 0.045f);
189f85a3 245
61168418 246 Shininess = 0.90f;
ba00aab7 247 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.019607f, 0.019607f, 0.027212f));
248 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.214041f, 0.223414f, 0.233022f));
4e1bc39a 249 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.560f, 0.570f, 0.580f));
61168418 250 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 251 break;
a966542b 252 case Graphic3d_NameOfMaterial_Stone:
4e1bc39a 253 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 254
61168418 255 // special case for SetColor()
256 AmbientCoef = 0.19f * 0.25f;
257 DiffuseCoef = 0.75f;
44c7c33e 258
61168418 259 Shininess = 0.17f;
ba00aab7 260 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.030074f, 0.020069f, 0.013011f));
261 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.522522f, 0.318547f, 0.183064f));
61168418 262 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.98f, 1.0f, 0.60f) * 0.08f);
263 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
189f85a3 264
4e1bc39a 265 BSDF.Kd = Graphic3d_Vec3 (0.243137f, 0.243137f, 0.243137f);
05aa616d 266 BSDF.Ks = Graphic3d_Vec4 (0.00392157f, 0.00392157f, 0.00392157f, 0.5f);
67312b79 267
44c7c33e 268 break;
a966542b 269 case Graphic3d_NameOfMaterial_Chrome:
4e1bc39a 270 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 271
4e1bc39a 272 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 273 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (0.549585f, 0.556114f, 0.554256f)), 0.045f);
189f85a3 274
61168418 275 Shininess = 0.90f;
ba00aab7 276 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.033105f, 0.033105f, 0.041436f));
277 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.263273f, 0.263273f, 0.263273f));
4e1bc39a 278 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.975f, 0.975f, 0.975f));
61168418 279 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 280 break;
a966542b 281 case Graphic3d_NameOfMaterial_Aluminum:
4e1bc39a 282 MaterialType = Graphic3d_MATERIAL_PHYSIC;
44c7c33e 283
4e1bc39a 284 BSDF = Graphic3d_BSDF::CreateMetallic (Graphic3d_Vec3 (0.985f, 0.985f, 0.985f),
6e728f3b 285 Graphic3d_Fresnel::CreateSchlick (Graphic3d_Vec3 (0.913183f, 0.921494f, 0.924524f)), 0.045f);
189f85a3 286
61168418 287 Shininess = 0.75f;
ba00aab7 288 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.073239f, 0.073239f, 0.073239f));
289 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.318547f, 0.318547f, 0.318547f));
4e1bc39a 290 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.910f, 0.920f, 0.920f));
61168418 291 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 292 break;
a966542b 293 case Graphic3d_NameOfMaterial_Neon:
4e1bc39a 294 MaterialType = Graphic3d_MATERIAL_PHYSIC;
295
61168418 296 Shininess = 0.05f;
297 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.0f));
298 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.0f));
299 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.62f));
ba00aab7 300 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f, 0.787412f, 0.142892f));
4e1bc39a 301
302 BSDF.Kd = Graphic3d_Vec3 (0.0f);
05aa616d 303 BSDF.Ks = Graphic3d_Vec4 (0.5f, 0.5f, 0.5f, 0.f);
4e1bc39a 304 BSDF.Le = Graphic3d_Vec3 (0.0f, 1.0f, 0.46f);
05aa616d 305 BSDF.FresnelBase = Graphic3d_Fresnel::CreateDielectric (1.5f);
44c7c33e 306 break;
a966542b 307 case Graphic3d_NameOfMaterial_Obsidian:
4e1bc39a 308 MaterialType = Graphic3d_MATERIAL_PHYSIC;
309
61168418 310 Shininess = 0.3f;
ba00aab7 311 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.004305f, 0.003936f, 0.005532f));
312 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.028053f, 0.024515f, 0.041436f));
4e1bc39a 313 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.333f, 0.329f, 0.346f));
61168418 314 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
4e1bc39a 315
316 BSDF.Kd = Graphic3d_Vec3 (0.023f, 0.f, 0.023f);
05aa616d 317 BSDF.Ks = Graphic3d_Vec4 (0.0156863f, 0.0156863f, 0.0156863f, 0.1f);
44c7c33e 318 break;
a966542b 319 case Graphic3d_NameOfMaterial_Jade:
4e1bc39a 320 MaterialType = Graphic3d_MATERIAL_PHYSIC;
321
61168418 322 Shininess = 0.10f;
ba00aab7 323 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.016338f, 0.040729f, 0.021493f));
324 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.252950f, 0.767769f, 0.354692f));
4e1bc39a 325 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.316f, 0.316f, 0.316f));
61168418 326 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
4e1bc39a 327
05aa616d 328 BSDF.FresnelBase = Graphic3d_Fresnel::CreateDielectric (1.5f);
4e1bc39a 329 BSDF.Kd = Graphic3d_Vec3 (0.208658f, 0.415686f, 0.218401f);
05aa616d 330 BSDF.Ks = Graphic3d_Vec4 (0.611765f, 0.611765f, 0.611765f, 0.06f);
44c7c33e 331 break;
a966542b 332 case Graphic3d_NameOfMaterial_Charcoal:
4e1bc39a 333 MaterialType = Graphic3d_MATERIAL_PHYSIC;
334
61168418 335 Shininess = 0.01f;
ba00aab7 336 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.003936f));
337 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.019607f));
61168418 338 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.0f));
339 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
4e1bc39a 340
341 BSDF.Kd = Graphic3d_Vec3 (0.02f, 0.02f, 0.02f);
05aa616d 342 BSDF.Ks = Graphic3d_Vec4 (0.1f, 0.1f, 0.1f, 0.3f);
44c7c33e 343 break;
a966542b 344 case Graphic3d_NameOfMaterial_Water:
4e1bc39a 345 MaterialType = Graphic3d_MATERIAL_PHYSIC;
346
4e1bc39a 347 RefractionIndex = 1.33f;
348 BSDF = Graphic3d_BSDF::CreateGlass (Graphic3d_Vec3 (1.f),
349 Graphic3d_Vec3 (0.7f, 0.75f, 0.85f),
350 0.05f,
351 RefractionIndex);
352 TransparencyCoef = 0.80f;
353
61168418 354 Shininess = 0.90f;
ba00aab7 355 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.170645f, 0.170645f, 0.191627f));
356 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.003936f, 0.003936f, 0.006571f));
4e1bc39a 357 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.380f, 0.380f, 0.380f));
61168418 358 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 359 break;
a966542b 360 case Graphic3d_NameOfMaterial_Glass:
4e1bc39a 361 MaterialType = Graphic3d_MATERIAL_PHYSIC;
362
4e1bc39a 363 RefractionIndex = 1.62f;
364 BSDF = Graphic3d_BSDF::CreateGlass (Graphic3d_Vec3 (1.f),
365 Graphic3d_Vec3 (0.75f, 0.95f, 0.9f),
366 0.05f,
367 RefractionIndex);
368 TransparencyCoef = 0.80f;
369
61168418 370 Shininess = 0.50f;
ba00aab7 371 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.263273f, 0.290143f, 0.290143f));
372 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.003936f, 0.006571f, 0.006571f));
4e1bc39a 373 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.920f, 0.920f, 0.920f));
61168418 374 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 375 break;
a966542b 376 case Graphic3d_NameOfMaterial_Diamond:
4e1bc39a 377 MaterialType = Graphic3d_MATERIAL_PHYSIC;
378
4e1bc39a 379 RefractionIndex = 2.42f;
380 BSDF = Graphic3d_BSDF::CreateGlass (Graphic3d_Vec3 (1.f),
381 Graphic3d_Vec3 (0.95f, 0.95f, 0.95f),
382 0.05f,
383 RefractionIndex);
384 TransparencyCoef = 0.80f;
385
61168418 386 Shininess = 0.90f;
ba00aab7 387 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.263273f));
388 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.010023f));
61168418 389 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.970f));
390 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 391 break;
6e728f3b 392
a966542b 393 case Graphic3d_NameOfMaterial_Transparent:
4e1bc39a 394 MaterialType = Graphic3d_MATERIAL_PHYSIC;
395
4e1bc39a 396 RefractionIndex = 1.0f;
6e728f3b 397
4e1bc39a 398 BSDF.Kd = Graphic3d_Vec3 (0.1f);
399 BSDF.Kt = Graphic3d_Vec3 (0.9f);
05aa616d 400 BSDF.FresnelBase = Graphic3d_Fresnel::CreateConstant (0.0f);
4e1bc39a 401 TransparencyCoef = 0.80f;
402
61168418 403 Shininess = 0.90f;
ba00aab7 404 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.263273f));
405 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.010023f));
61168418 406 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.970f));
407 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
4e1bc39a 408 break;
a966542b 409 case Graphic3d_NameOfMaterial_UserDefined:
2108d9a2 410 MaterialType = Graphic3d_MATERIAL_PHYSIC;
61168418 411 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.1f));
ba00aab7 412 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.6f));
61168418 413 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.2f));
414 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 415 break;
a966542b 416 case Graphic3d_NameOfMaterial_DEFAULT:
61168418 417 MaterialType = Graphic3d_MATERIAL_ASPECT;
418
ba00aab7 419 Colors[Graphic3d_TOR_AMBIENT] = Quantity_Color (Graphic3d_Vec3 (0.15f));
61168418 420 Colors[Graphic3d_TOR_DIFFUSE] = Quantity_Color (Graphic3d_Vec3 (0.65f));
421 Colors[Graphic3d_TOR_SPECULAR] = Quantity_Color (Graphic3d_Vec3 (0.0f));
422 Colors[Graphic3d_TOR_EMISSION] = Quantity_Color (Graphic3d_Vec3 (0.0f));
44c7c33e 423 break;
424 }
67312b79 425 PBRMaterial.SetBSDF (BSDF);
44c7c33e 426}
7fd59977 427
4e1bc39a 428// =======================================================================
429// function : Graphic3d_MaterialAspect
430// purpose :
431// =======================================================================
432Graphic3d_MaterialAspect::Graphic3d_MaterialAspect()
a966542b 433: myRequestedMaterialName (Graphic3d_NameOfMaterial_DEFAULT)
4e1bc39a 434{
a966542b 435 init (Graphic3d_NameOfMaterial_DEFAULT);
4e1bc39a 436}
437
438// =======================================================================
439// function : Graphic3d_MaterialAspect
440// purpose :
441// =======================================================================
442Graphic3d_MaterialAspect::Graphic3d_MaterialAspect (const Graphic3d_NameOfMaterial theName)
443: myRequestedMaterialName (theName)
444{
445 init (theName);
446}
447
448// =======================================================================
449// function : init
450// purpose :
451// =======================================================================
452void Graphic3d_MaterialAspect::init (const Graphic3d_NameOfMaterial theName)
453{
454 const RawMaterial& aMat = THE_MATERIALS[theName];
67312b79 455 myBSDF = aMat.BSDF;
456 myPBRMaterial = aMat.PBRMaterial;
457 myStringName = aMat.StringName;
4e1bc39a 458 myColors[Graphic3d_TOR_AMBIENT] = aMat.Colors[Graphic3d_TOR_AMBIENT];
459 myColors[Graphic3d_TOR_DIFFUSE] = aMat.Colors[Graphic3d_TOR_DIFFUSE];
460 myColors[Graphic3d_TOR_SPECULAR] = aMat.Colors[Graphic3d_TOR_SPECULAR];
461 myColors[Graphic3d_TOR_EMISSION] = aMat.Colors[Graphic3d_TOR_EMISSION];
4e1bc39a 462 myTransparencyCoef = aMat.TransparencyCoef;
463 myRefractionIndex = aMat.RefractionIndex;
464 myShininess = aMat.Shininess;
4e1bc39a 465 myMaterialType = aMat.MaterialType;
466 myMaterialName = theName;
467 myRequestedMaterialName = theName;
4e1bc39a 468}
469
44c7c33e 470// =======================================================================
471// function : IncreaseShine
472// purpose :
473// =======================================================================
4e1bc39a 474void Graphic3d_MaterialAspect::IncreaseShine (const Standard_ShortReal theDelta)
44c7c33e 475{
4e1bc39a 476 const Standard_ShortReal anOldShine = myShininess;
477 myShininess = myShininess + myShininess * theDelta / 100.0f;
478 if (myShininess > 1.0f || myShininess < 0.0f)
44c7c33e 479 {
480 myShininess = anOldShine;
481 }
482}
7fd59977 483
44c7c33e 484// =======================================================================
485// function : SetMaterialType
486// purpose :
487// =======================================================================
488void Graphic3d_MaterialAspect::SetMaterialType (const Graphic3d_TypeOfMaterial theType)
489{
490 myMaterialType = theType;
491 if (theType != myMaterialType)
492 {
4e1bc39a 493 setUserMaterial();
44c7c33e 494 }
7fd59977 495}
496
44c7c33e 497// =======================================================================
61168418 498// function : SetColor
44c7c33e 499// purpose :
500// =======================================================================
61168418 501void Graphic3d_MaterialAspect::SetColor (const Quantity_Color& theColor)
44c7c33e 502{
61168418 503 if (myMaterialType == Graphic3d_MATERIAL_ASPECT)
44c7c33e 504 {
61168418 505 return;
44c7c33e 506 }
7fd59977 507
67312b79 508 myPBRMaterial.SetColor (theColor);
509
61168418 510 const RawMaterial& aSrcMat = THE_MATERIALS[myRequestedMaterialName];
511 const Quantity_Color anAmbient((Graphic3d_Vec3 )theColor * aSrcMat.AmbientCoef);
512 const Quantity_Color aDiffuse ((Graphic3d_Vec3 )theColor * aSrcMat.DiffuseCoef);
a966542b 513 if (myMaterialName != Graphic3d_NameOfMaterial_UserDefined
61168418 514 && (!myColors[Graphic3d_TOR_AMBIENT].IsEqual (anAmbient)
515 || !myColors[Graphic3d_TOR_DIFFUSE].IsEqual (aDiffuse)))
44c7c33e 516 {
4e1bc39a 517 setUserMaterial();
44c7c33e 518 }
61168418 519 myColors[Graphic3d_TOR_AMBIENT] = anAmbient;
520 myColors[Graphic3d_TOR_DIFFUSE] = aDiffuse;
44c7c33e 521}
7fd59977 522
44c7c33e 523// =======================================================================
524// function : SetAmbientColor
525// purpose :
526// =======================================================================
527void Graphic3d_MaterialAspect::SetAmbientColor (const Quantity_Color& theColor)
528{
61168418 529 if (myMaterialType == Graphic3d_MATERIAL_PHYSIC
a966542b 530 && myMaterialName != Graphic3d_NameOfMaterial_UserDefined
61168418 531 && !myColors[Graphic3d_TOR_AMBIENT].IsEqual (theColor))
44c7c33e 532 {
4e1bc39a 533 setUserMaterial();
44c7c33e 534 }
61168418 535 myColors[Graphic3d_TOR_AMBIENT] = theColor;
7fd59977 536}
537
44c7c33e 538// =======================================================================
539// function : SetDiffuseColor
540// purpose :
541// =======================================================================
542void Graphic3d_MaterialAspect::SetDiffuseColor (const Quantity_Color& theColor)
543{
61168418 544 if (myMaterialType == Graphic3d_MATERIAL_PHYSIC
a966542b 545 && myMaterialName != Graphic3d_NameOfMaterial_UserDefined
61168418 546 && !myColors[Graphic3d_TOR_DIFFUSE].IsEqual (theColor))
44c7c33e 547 {
4e1bc39a 548 setUserMaterial();
44c7c33e 549 }
61168418 550 myColors[Graphic3d_TOR_DIFFUSE] = theColor;
44c7c33e 551}
7fd59977 552
44c7c33e 553// =======================================================================
554// function : SetSpecularColor
555// purpose :
556// =======================================================================
557void Graphic3d_MaterialAspect::SetSpecularColor (const Quantity_Color& theColor)
558{
61168418 559 if (myMaterialType == Graphic3d_MATERIAL_PHYSIC
a966542b 560 && myMaterialName != Graphic3d_NameOfMaterial_UserDefined
61168418 561 && !myColors[Graphic3d_TOR_SPECULAR].IsEqual (theColor))
44c7c33e 562 {
4e1bc39a 563 setUserMaterial();
44c7c33e 564 }
61168418 565 myColors[Graphic3d_TOR_SPECULAR] = theColor;
44c7c33e 566}
7fd59977 567
44c7c33e 568// =======================================================================
569// function : SetEmissiveColor
570// purpose :
571// =======================================================================
572void Graphic3d_MaterialAspect::SetEmissiveColor (const Quantity_Color& theColor)
573{
61168418 574 if (myMaterialType == Graphic3d_MATERIAL_PHYSIC
a966542b 575 && myMaterialName != Graphic3d_NameOfMaterial_UserDefined
61168418 576 && !myColors[Graphic3d_TOR_EMISSION].IsEqual (theColor))
44c7c33e 577 {
4e1bc39a 578 setUserMaterial();
44c7c33e 579 }
61168418 580 myColors[Graphic3d_TOR_EMISSION] = theColor;
44c7c33e 581}
7fd59977 582
44c7c33e 583// =======================================================================
584// function : SetTransparency
585// purpose :
586// =======================================================================
4e1bc39a 587void Graphic3d_MaterialAspect::SetTransparency (const Standard_ShortReal theValue)
44c7c33e 588{
4e1bc39a 589 if (theValue < 0.0f
590 || theValue > 1.0f)
44c7c33e 591 {
9775fa61 592 throw Graphic3d_MaterialDefinitionError("Bad value for SetTransparency < 0. or > 1.0");
44c7c33e 593 }
7fd59977 594
4e1bc39a 595 myTransparencyCoef = theValue;
67312b79 596 myPBRMaterial.SetAlpha (1.0f - theValue);
7fd59977 597}
598
44c7c33e 599// =======================================================================
600// function : SetRefractionIndex
601// purpose :
602// =======================================================================
4e1bc39a 603void Graphic3d_MaterialAspect::SetRefractionIndex (const Standard_ShortReal theValue)
44c7c33e 604{
4e1bc39a 605 if (theValue < 1.0f)
44c7c33e 606 {
9775fa61 607 throw Graphic3d_MaterialDefinitionError("Bad value for refraction index < 1.0");
44c7c33e 608 }
7fd59977 609
4e1bc39a 610 myRefractionIndex = theValue;
44c7c33e 611}
7fd59977 612
44c7c33e 613// =======================================================================
614// function : SetShininess
615// purpose :
616// =======================================================================
4e1bc39a 617void Graphic3d_MaterialAspect::SetShininess (const Standard_ShortReal theValue)
44c7c33e 618{
4e1bc39a 619 if (theValue < 0.0f
620 || theValue > 1.0f)
44c7c33e 621 {
9775fa61 622 throw Graphic3d_MaterialDefinitionError("Bad value for Shininess < 0. or > 1.0");
44c7c33e 623 }
7fd59977 624
61168418 625 if (myShininess != theValue)
626 {
627 myShininess = theValue;
628 setUserMaterial();
629 }
7fd59977 630}
631
44c7c33e 632// =======================================================================
633// function : MaterialName
634// purpose :
635// =======================================================================
636Standard_CString Graphic3d_MaterialAspect::MaterialName (const Standard_Integer theRank)
637{
638 if (theRank < 1 || theRank > NumberOfMaterials())
639 {
9775fa61 640 throw Standard_OutOfRange("BAD index of material");
44c7c33e 641 }
4e1bc39a 642 const RawMaterial& aMat = THE_MATERIALS[theRank - 1];
643 return aMat.StringName;
7fd59977 644}
645
44c7c33e 646// =======================================================================
647// function : MaterialFromName
648// purpose :
649// =======================================================================
61168418 650Standard_Boolean Graphic3d_MaterialAspect::MaterialFromName (const Standard_CString theName,
651 Graphic3d_NameOfMaterial& theMat)
ad3217cd 652{
653 TCollection_AsciiString aName (theName);
654 aName.LowerCase();
655 aName.Capitalize();
656 const Standard_Integer aNbMaterials = Graphic3d_MaterialAspect::NumberOfMaterials();
61168418 657 for (Standard_Integer aMatIter = 0; aMatIter <= aNbMaterials; ++aMatIter)
ad3217cd 658 {
4e1bc39a 659 const RawMaterial& aMat = THE_MATERIALS[aMatIter];
660 if (aName == aMat.StringName)
ad3217cd 661 {
61168418 662 theMat = Graphic3d_NameOfMaterial(aMatIter);
663 return Standard_True;
ad3217cd 664 }
665 }
666
667 // parse aliases
668 if (aName == "Plastic") // Plastified
669 {
a966542b 670 theMat = Graphic3d_NameOfMaterial_Plastified;
61168418 671 return Standard_True;
ad3217cd 672 }
673 else if (aName == "Shiny_plastic") // Shiny_plastified
674 {
a966542b 675 theMat = Graphic3d_NameOfMaterial_ShinyPlastified;
61168418 676 return Standard_True;
ad3217cd 677 }
678 else if (aName == "Plaster") // Plastered
679 {
a966542b 680 theMat = Graphic3d_NameOfMaterial_Plastered;
61168418 681 return Standard_True;
ad3217cd 682 }
683 else if (aName == "Satin") // Satined
684 {
a966542b 685 theMat = Graphic3d_NameOfMaterial_Satin;
61168418 686 return Standard_True;
ad3217cd 687 }
688 else if (aName == "Neon_gnc") // Ionized
689 {
a966542b 690 theMat = Graphic3d_NameOfMaterial_Ionized;
61168418 691 return Standard_True;
ad3217cd 692 }
693 else if (aName == "Neon_phc") // Neon
694 {
a966542b 695 theMat = Graphic3d_NameOfMaterial_Neon;
61168418 696 return Standard_True;
ad3217cd 697 }
61168418 698 return Standard_False;
ad3217cd 699}
700
44c7c33e 701// =======================================================================
702// function : MaterialType
703// purpose :
704// =======================================================================
705Graphic3d_TypeOfMaterial Graphic3d_MaterialAspect::MaterialType (const Standard_Integer theRank)
706{
707 if (theRank < 1 || theRank > NumberOfMaterials())
708 {
9775fa61 709 throw Standard_OutOfRange("BAD index of material");
44c7c33e 710 }
4e1bc39a 711 const RawMaterial& aMat = THE_MATERIALS[theRank - 1];
712 return aMat.MaterialType;
7fd59977 713}
bc73b006 714
715//=======================================================================
716//function : DumpJson
717//purpose :
718//=======================================================================
719void Graphic3d_MaterialAspect::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
720{
721 OCCT_DUMP_CLASS_BEGIN (theOStream, Graphic3d_MaterialAspect)
722
723 OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myBSDF)
724 OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myPBRMaterial)
725 OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myStringName)
726
727 OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myColors[Graphic3d_TOR_AMBIENT])
728 OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myColors[Graphic3d_TOR_DIFFUSE])
729 OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myColors[Graphic3d_TOR_SPECULAR])
730 OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, &myColors[Graphic3d_TOR_EMISSION])
731
732 OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myTransparencyCoef)
733 OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myRefractionIndex)
734 OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myShininess)
735
736 OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myMaterialType)
737 OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myMaterialName)
738 OCCT_DUMP_FIELD_VALUE_NUMERICAL (theOStream, myRequestedMaterialName)
739}