#define SERIALIZATION_FRIEND(type)
#define SERIALIZATION_ACCESS(type)
void _updateValue(T &member, const T &newValue, const bool triggerCallback=true)
The class that represents the material object. This class is derived from PropertyObject and provides...
PLATFORM_API void setChameleonMode(const MaterialChameleonMode value)
Sets the chameleon mode of the material.
TextureDescriptors _textureDescriptors
MaterialClippingMode _clippingMode
PLATFORM_API void setRefractionIndex(const double value)
Sets the refraction index of the material.
virtual PLATFORM_API void commit()=0
Called after material change.
PLATFORM_API MaterialClippingMode getClippingMode() const
Returns the clipping mode of the material.
MaterialShadingMode _shadingMode
PLATFORM_API void setNodeId(const int32_t value)
Sets the cast user data of the material.
PLATFORM_API const Vector3d & getDiffuseColor() const
Returns the color of the diffuse component of the material.
PLATFORM_API double getCastUserData() const
Returns the cast user data of the material.
PLATFORM_API double getEmission() const
Returns the emission of the material.
PLATFORM_API double getSpecularExponent() const
Returns the specular exponent of the material.
PLATFORM_API double getReflectionIndex() const
Returns the reflection index of the material.
PLATFORM_API void removeTexture(const TextureType type)
Removes the texture of the material for the specified texture type.
PLATFORM_API void setOpacity(const double value)
Sets the opacity of the material.
PLATFORM_API bool hasTexture(const TextureType type) const
Checks if the material has a texture for the specified texture type.
bool _loadTexture(const std::string &fileName, const TextureType type)
Loads the texture for the specified texture type.
PLATFORM_API void setEmission(double value)
Sets the emission of the material.
PLATFORM_API MaterialChameleonMode getChameleonMode() const
Returns the chameleon mode of the material.
PLATFORM_API void setCastUserData(const bool value)
Sets the cast user data of the material.
PLATFORM_API const Vector3d & getSpecularColor() const
Returns the color of the specular component of the material.
MaterialChameleonMode _chameleonMode
PLATFORM_API double getOpacity() const
Returns the opacity of the material.
PLATFORM_API void setClippingMode(const MaterialClippingMode value)
Sets the clipping mode of the material.
PLATFORM_API void setGlossiness(const double value)
Sets the glossiness of the material.
PLATFORM_API int32_t getNodeId() const
Returns the cast user data of the material.
PLATFORM_API void setTexture(const std::string &fileName, const TextureType type)
Sets the texture of the material for the specified texture type.
PLATFORM_API Texture2DPtr getTexture(const TextureType type) const
Returns the texture of the material for the specified texture type.
PLATFORM_API void setUserParameter(const double value)
Sets the user parameter of the material.
PLATFORM_API const TextureDescriptors & getTextureDescriptors() const
Returns the texture descriptors of the material.
PLATFORM_API void setReflectionIndex(const double value)
Sets the reflection index of the material.
PLATFORM_API void clearTextures()
Clears all textures from the material object.
PLATFORM_API double getRefractionIndex() const
Returns the refraction index of the material.
PLATFORM_API void setSpecularExponent(const double value)
Sets the specular exponent of the material.
PLATFORM_API void setName(const std::string &value)
Sets the name of the material.
PLATFORM_API void setShadingMode(const MaterialShadingMode value)
Sets the shading mode of the material.
PLATFORM_API void setSpecularColor(const Vector3d &value)
Sets the color of the specular component of the material.
PLATFORM_API MaterialShadingMode getShadingMode() const
Returns the shading mode of the material.
PLATFORM_API Material(const PropertyMap &properties={})
Constructs a Material object.
PLATFORM_API const std::string & getName() const
Returns the name of the material.
PLATFORM_API double getUserParameter() const
Returns the user parameter of the material.
PLATFORM_API double getGlossiness() const
Returns the glossiness of the material.
PLATFORM_API void setDiffuseColor(const Vector3d &value)
Sets the color of the diffuse component of the material.
std::map< std::string, Texture2DPtr > TexturesMap
std::map< TextureType, Texture2DPtr > TextureDescriptors
std::shared_ptr< Texture2D > Texture2DPtr
glm::vec< 3, double > Vector3d