Browse Source

Trade: non-random defaults for PhongMaterialData.

pull/255/head
Vladimír Vondruš 8 years ago
parent
commit
c99fe2888d
  1. 19
      src/Magnum/Trade/PhongMaterialData.cpp
  2. 7
      src/Magnum/Trade/PhongMaterialData.h

19
src/Magnum/Trade/PhongMaterialData.cpp

@ -29,6 +29,25 @@
namespace Magnum { namespace Trade { namespace Magnum { namespace Trade {
using namespace Math::Literals;
PhongMaterialData::PhongMaterialData(const Flags flags, const Float shininess, const void* const importerState) noexcept: AbstractMaterialData{MaterialType::Phong, importerState}, _flags{flags}, _shininess{shininess} {
if(_flags & Flag::AmbientTexture)
_ambient.texture = {};
else
_ambient.color = 0x000000ff_rgbaf;
if(_flags & Flag::DiffuseTexture)
_diffuse.texture = {};
else
_diffuse.color = 0xffffffff_rgbaf;
if(_flags & Flag::SpecularTexture)
_specular.texture = {};
else
_specular.color = 0xffffffff_rgbaf;
}
PhongMaterialData::PhongMaterialData(PhongMaterialData&& other) noexcept: AbstractMaterialData{std::move(other)}, _flags{other._flags}, _shininess{other._shininess} { PhongMaterialData::PhongMaterialData(PhongMaterialData&& other) noexcept: AbstractMaterialData{std::move(other)}, _flags{other._flags}, _shininess{other._shininess} {
if(_flags & Flag::AmbientTexture) if(_flags & Flag::AmbientTexture)
_ambient.texture = other._ambient.texture; _ambient.texture = other._ambient.texture;

7
src/Magnum/Trade/PhongMaterialData.h

@ -71,9 +71,12 @@ class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData {
* @param importerState Importer-specific state * @param importerState Importer-specific state
* *
* Colors and textures should be specified using member functions based * Colors and textures should be specified using member functions based
* on what flags are set. * on what flags are set. Ambient color (if set) is by default
* @cpp 0x000000ff_rgbaf @ce, diffuse and specular color is by default
* @cpp 0xffffffff_rgbaf @ce, all texture IDs (if any) are by default
* set to @cpp 0 @ce.
*/ */
explicit PhongMaterialData(Flags flags, Float shininess, const void* importerState = nullptr) noexcept: AbstractMaterialData{MaterialType::Phong, importerState}, _flags{flags}, _shininess{shininess} {} explicit PhongMaterialData(Flags flags, Float shininess, const void* importerState = nullptr) noexcept;
/** @brief Copying is not allowed */ /** @brief Copying is not allowed */
PhongMaterialData(const PhongMaterialData&) = delete; PhongMaterialData(const PhongMaterialData&) = delete;

Loading…
Cancel
Save