34 namespace visualization {
37 struct MaterialRecord;
41 using TextureMaps = std::unordered_map<std::string, t::geometry::Image>;
46 std::hash<std::string>,
47 std::equal_to<std::string>,
48 Eigen::aligned_allocator<
49 std::pair<const std::string, Eigen::Vector4f>>>;
60 : material_name_(material_name) {}
68 bool IsValid()
const {
return !material_name_.empty(); }
81 return texture_maps_.at(key);
86 return scalar_properties_;
94 return scalar_properties_.at(key);
99 return vector_properties_;
107 return vector_properties_.at(key);
123 scalar_properties_[key] = value;
132 const Eigen::Vector4f &value) {
133 vector_properties_[key] = value;
142 material_name_ = material_name;
149 return texture_maps_.count(key) > 0;
156 return scalar_properties_.count(key) > 0;
163 return vector_properties_.count(key) > 0;
337 std::string material_name_;
void SetBaseClearcoat(float value)
Definition: Material.h:300
void SetAOMap(const t::geometry::Image &image)
Definition: Material.h:225
void SetAORoughnessMetalMap(const t::geometry::Image &image)
Definition: Material.h:246
void SetClearcoatMap(const t::geometry::Image &image)
Definition: Material.h:237
float GetAbsorptionDistance() const
Definition: Material.h:268
float GetBaseReflectance() const
Definition: Material.h:255
Definition: Material.h:39
std::unordered_map< std::string, float > ScalarPropertyMap
Definition: Material.h:42
void SetThickness(float value)
Definition: Material.h:307
bool IsValid() const
Definition: Material.h:68
Definition: MaterialRecord.h:41
bool HasVectorProperty(const std::string &key) const
Definition: Material.h:162
void ToMaterialRecord(MaterialRecord &record) const
Fills a legacy MaterialRecord constructed from this Material.
Definition: Material.cpp:61
void SetBaseReflectance(float value)
Definition: Material.h:297
bool HasBaseRoughness() const
Definition: Material.h:274
bool HasReflectanceMap() const
Definition: Material.h:209
const ScalarPropertyMap & GetScalarProperties() const
Returns the map of scalar properties.
Definition: Material.h:85
void SetBaseClearcoatRoughness(float value)
Definition: Material.h:303
void SetMaterialName(const std::string &material_name)
Set material name. The material name should match the name of a built.
Definition: Material.h:141
void SetAbsorptionColor(const Eigen::Vector4f &value)
Definition: Material.h:311
Eigen::Vector4f GetVectorProperty(const std::string &key) const
Definition: Material.h:106
Material(const std::string &material_name)
Create an empty but valid material for the specified material name.
Definition: Material.h:59
const t::geometry::Image & GetTextureMap(const std::string &key) const
Definition: Material.h:80
void SetBaseMetallic(float value)
Definition: Material.h:293
void SetPointSize(float value)
Definition: Material.h:330
bool HasAlbedoMap() const
Definition: Material.h:204
bool HasAnisotropy() const
Definition: Material.h:280
float GetBaseRoughness() const
Definition: Material.h:254
void SetVectorProperty(const std::string &key, const Eigen::Vector4f &value)
Definition: Material.h:131
void SetAnisotropy(float value)
Definition: Material.h:306
const t::geometry::Image & GetAlbedoMap() const
Definition: Material.h:171
Material & operator=(const Material &other)=default
bool HasAbsorptionDistance() const
Definition: Material.h:286
float GetBaseMetallic() const
Definition: Material.h:253
bool HasTransmission() const
Definition: Material.h:282
const t::geometry::Image & GetReflectanceMap() const
Definition: Material.h:186
const t::geometry::Image & GetClearcoatMap() const
Definition: Material.h:189
bool HasAORoughnessMetalMap() const
Definition: Material.h:215
void SetScalarProperty(const std::string &key, float value)
Definition: Material.h:122
const VectorPropertyMap & GetVectorProperties() const
Returns the map of vector properties.
Definition: Material.h:98
void SetAbsorptionDistance(float value)
Definition: Material.h:314
float GetAnisotropy() const
Definition: Material.h:262
The Image class stores image with customizable rows, cols, channels, dtype and device.
Definition: Image.h:48
const t::geometry::Image & GetRoughnessMap() const
Definition: Material.h:183
const t::geometry::Image & GetAnisotropyMap() const
Definition: Material.h:195
bool HasAnisotropyMap() const
Definition: Material.h:214
bool HasAbsorptionColor() const
Definition: Material.h:283
bool HasBaseClearcoat() const
Definition: Material.h:276
float GetBaseClearcoat() const
Definition: Material.h:258
void SetNormalMap(const t::geometry::Image &image)
Definition: Material.h:222
float GetTransmission() const
Definition: Material.h:264
Eigen::Vector4f GetAbsorptionColor() const
Definition: Material.h:265
bool HasThickness() const
Definition: Material.h:281
void SetAlbedoMap(const t::geometry::Image &image)
Definition: Material.h:219
bool HasScalarProperty(const std::string &key) const
Definition: Material.h:155
void SetMetallicMap(const t::geometry::Image &image)
Definition: Material.h:228
float GetLineWidth() const
Definition: Material.h:325
float GetBaseClearcoatRoughness() const
Definition: Material.h:259
void SetBaseRoughness(float value)
Definition: Material.h:294
bool HasNormalMap() const
Definition: Material.h:205
bool HasBaseReflectance() const
Definition: Material.h:275
void SetTextureMap(const std::string &key, const t::geometry::Image &image)
Definition: Material.cpp:52
void SetDefaultProperties()
Definition: Material.cpp:35
bool HasBaseMetallic() const
Definition: Material.h:273
void SetBaseColor(const Eigen::Vector4f &value)
Definition: Material.h:290
bool HasClearcoatRoughnessMap() const
Definition: Material.h:211
Definition: PinholeCameraIntrinsic.cpp:35
const std::string & GetMaterialName() const
Get the name of the material.
Definition: Material.h:71
std::unordered_map< std::string, Eigen::Vector4f, std::hash< std::string >, std::equal_to< std::string >, Eigen::aligned_allocator< std::pair< const std::string, Eigen::Vector4f > >> VectorPropertyMap
Definition: Material.h:49
const t::geometry::Image & GetAORoughnessMetalMap() const
Definition: Material.h:200
const t::geometry::Image & GetAOMap() const
Definition: Material.h:177
bool HasAOMap() const
Definition: Material.h:206
void SetClearcoatRoughnessMap(const t::geometry::Image &image)
Definition: Material.h:240
bool HasMetallicMap() const
Definition: Material.h:207
bool HasPointSize() const
Definition: Material.h:327
Eigen::Vector4f GetBaseColor() const
Definition: Material.h:250
bool HasClearcoatMap() const
Definition: Material.h:210
float GetScalarProperty(const std::string &key) const
Definition: Material.h:93
bool HasBaseColor() const
Definition: Material.h:272
void SetRoughnessMap(const t::geometry::Image &image)
Definition: Material.h:231
std::unordered_map< std::string, t::geometry::Image > TextureMaps
Definition: Material.h:41
float GetPointSize() const
Definition: Material.h:324
bool HasRoughnessMap() const
Definition: Material.h:208
const t::geometry::Image & GetMetallicMap() const
Definition: Material.h:180
const TextureMaps & GetTextureMaps() const
Returns the texture map map.
Definition: Material.h:74
void SetTransmission(float value)
Definition: Material.h:308
Material()=default
Create an empty, invalid material.
const t::geometry::Image & GetClearcoatRoughnessMap() const
Definition: Material.h:192
bool HasBaseClearcoatRoughness() const
Definition: Material.h:277
const t::geometry::Image & GetNormalMap() const
Definition: Material.h:174
float GetThickness() const
Definition: Material.h:263
void SetLineWidth(float value)
Definition: Material.h:331
bool HasTextureMap(const std::string &key) const
Definition: Material.h:148
std::shared_ptr< core::Tensor > image
Definition: FilamentRenderer.cpp:202
void SetReflectanceMap(const t::geometry::Image &image)
Definition: Material.h:234
void SetAnisotropyMap(const t::geometry::Image &image)
Definition: Material.h:243
bool HasLineWidth() const
Definition: Material.h:328