17 #ifndef __H__OBJ_PARSER_MTL_MATERIAL__H__
18 #define __H__OBJ_PARSER_MTL_MATERIAL__H__
20 #include "OBJTextureDescriptor.hpp"
31 enum class OBJMaterialPropertyType
68 OBJMaterialPropertyType type;
70 union {
float r, x; };
71 union {
float g, y; };
72 union {
float b, z; };
97 enum class OBJReflectionMapType
107 enum class OBJReflectionMapCubeSide
133 void setName(std::string
const& name);
134 std::string
const& getName()
const;
138 void setAmbientReflectivityRGB(
OBJVector3 const& rgb);
139 void setAmbientReflectivityXYZ(
OBJVector3 const& xyz);
146 void setDiffuseReflectivityRGB(
OBJVector3 const& rgb);
147 void setDiffuseReflectivityXYZ(
OBJVector3 const& xyz);
154 void setSpecularReflectivityRGB(
OBJVector3 const& rgb);
155 void setSpecularReflectivityXYZ(
OBJVector3 const& xyz);
162 void setEmissiveReflectivityRGB(
OBJVector3 const& rgb);
163 void setEmissiveReflectivityXYZ(
OBJVector3 const& xyz);
170 void setTransmissionFilterRGB(
OBJVector3 const& rgb);
171 void setTransmissionFilterXYZ(
OBJVector3 const& xyz);
183 void setTransparency(
float transparency);
184 float getTransparency()
const;
188 void setIlluminationModel(uint32_t model);
189 uint32_t getIlluminationModel()
const;
193 void setSharpness(uint32_t sharpness);
194 uint32_t getSharpness()
const;
198 void setSpecularExponent(
float exponent);
199 float getSpecularExponent()
const;
203 void setOpticalDensity(
float density);
204 float getOpticalDensity()
const;
253 void setAntiAliasing(
bool aa);
254 bool getAntiAliasing()
const;
258 OBJReflectionMapType getReflectionMapType()
const;
263 void setReflectionMapCubeSide(OBJReflectionMapCubeSide side,
OBJTextureDescriptor const* descriptor);
305 bool m_TextureAntiAliasing;
310 OBJReflectionMapType m_ReflectionMapType;
313 std::array<OBJTextureDescriptor, 8> m_ReflectionMapCube;
bool halo
True if dissolve depends on surface orientation relative to viewer.
Definition: OBJMaterial.hpp:86
uint32_t m_IlluminationModel
Value between 0 and 10 corresponding to an illumination model. See MTL specification for model detail...
Definition: OBJMaterial.hpp:285
Definition: OBJTextureDescriptor.hpp:46
float factor
The amount the material dissolves. 0.0: fully dissolved, transparent; 1.0: opaque.
Definition: OBJMaterial.hpp:87
Definition: OBJMaterial.hpp:42
uint32_t m_Sharpness
Sharpness of reflections. Higher values result in sharper reflections. Typical range of (0 - 1000); D...
Definition: OBJMaterial.hpp:286
Definition: OBJMaterial.hpp:122
float m_Transparency
Optional value set by certain writers. Typically is the inverse of the 'dissolve' value...
Definition: OBJMaterial.hpp:288
float m_SpecularExponent
Focus of the specular highlight. Higher values result in tighter highlights. Typical range (0...
Definition: OBJMaterial.hpp:289
Definition: OBJMaterial.hpp:82
Simple three-component vector struct.
Definition: OBJStructs.hpp:41
Definition: OBJMaterial.hpp:61
float m_OpticalDensity
AKA index of refraction. Range (0.001 - 10.0). 1.0 indicates light does not bend as it passes through...
Definition: OBJMaterial.hpp:290