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: ignition::math::Color Ambient() 
const;
 
   89     public: 
void SetAmbient(
const ignition::math::Color &_color) 
const;
 
   95     public: ignition::math::Color Diffuse() 
const;
 
  101     public: 
void SetDiffuse(
const ignition::math::Color &_color) 
const;
 
  107     public: ignition::math::Color Specular() 
const;
 
  113     public: 
void SetSpecular(
const ignition::math::Color &_color) 
const;
 
  117     public: 
double Shininess() 
const;
 
  121     public: 
void SetShininess(
const double _shininess);
 
  127     public: ignition::math::Color Emissive() 
const;
 
  133     public: 
void SetEmissive(
const ignition::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;