17 #ifndef SDF_MATERIAL_HH_
18 #define SDF_MATERIAL_HH_
23 #include "sdf/sdf_config.h"
29 inline namespace SDF_VERSION_NAMESPACE {
33 class MaterialPrivate;
83 public: gz::math::Color Ambient()
const;
89 public:
void SetAmbient(
const gz::math::Color &_color)
const;
95 public: gz::math::Color Diffuse()
const;
101 public:
void SetDiffuse(
const gz::math::Color &_color)
const;
107 public: gz::math::Color Specular()
const;
113 public:
void SetSpecular(
const gz::math::Color &_color)
const;
117 public:
double Shininess()
const;
121 public:
void SetShininess(
const double _shininess);
127 public: gz::math::Color Emissive()
const;
133 public:
void SetEmissive(
const gz::math::Color &_color)
const;
138 public:
bool Lighting()
const;
142 public:
void SetLighting(
const bool _lighting);
147 public:
bool DoubleSided()
const;
151 public:
void SetDoubleSided(
bool _doubleSided);
162 public: std::string ScriptUri()
const;
166 public:
void SetScriptUri(
const std::string &_uri);
173 public: std::string ScriptName()
const;
178 public:
void SetScriptName(
const std::string &_name);
186 public:
void SetShader(
const ShaderType &_type);
192 public: std::string NormalMap()
const;
196 public:
void SetNormalMap(
const std::string &_map);
200 public:
void SetPbrMaterial(
const Pbr &_pbr);
204 public:
Pbr *PbrMaterial()
const;
208 public:
const std::string &FilePath()
const;
212 public:
void SetFilePath(
const std::string &_filePath);
215 private: MaterialPrivate *dataPtr =
nullptr;