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>>>;
58 : material_name_(material_name) {}
66 bool IsValid()
const {
return !material_name_.empty(); }
79 return texture_maps_.at(key);
84 return scalar_properties_;
92 return scalar_properties_.at(key);
97 return vector_properties_;
105 return vector_properties_.at(key);
121 scalar_properties_[key] = value;
130 const Eigen::Vector4f &value) {
131 vector_properties_[key] = value;
140 material_name_ = material_name;
147 return texture_maps_.count(key) > 0;
154 return scalar_properties_.count(key) > 0;
161 return vector_properties_.count(key) > 0;
335 std::string material_name_;
void SetBaseClearcoat(float value)
Definition: Material.h:298
void SetAOMap(const t::geometry::Image &image)
Definition: Material.h:223
void SetAORoughnessMetalMap(const t::geometry::Image &image)
Definition: Material.h:244
void SetClearcoatMap(const t::geometry::Image &image)
Definition: Material.h:235
float GetAbsorptionDistance() const
Definition: Material.h:266
float GetBaseReflectance() const
Definition: Material.h:253
Definition: Material.h:39
std::unordered_map< std::string, float > ScalarPropertyMap
Definition: Material.h:42
void SetThickness(float value)
Definition: Material.h:305
bool IsValid() const
Definition: Material.h:66
Definition: MaterialRecord.h:41
bool HasVectorProperty(const std::string &key) const
Definition: Material.h:160
void ToMaterialRecord(MaterialRecord &record) const
Fills a legacy MaterialRecord constructed from this Material.
Definition: Material.cpp:61
void SetBaseReflectance(float value)
Definition: Material.h:295
bool HasBaseRoughness() const
Definition: Material.h:272
bool HasReflectanceMap() const
Definition: Material.h:207
const ScalarPropertyMap & GetScalarProperties() const
Returns the map of scalar properties.
Definition: Material.h:83
void SetBaseClearcoatRoughness(float value)
Definition: Material.h:301
void SetMaterialName(const std::string &material_name)
Set material name. The material name should match the name of a built.
Definition: Material.h:139
void SetAbsorptionColor(const Eigen::Vector4f &value)
Definition: Material.h:309
Eigen::Vector4f GetVectorProperty(const std::string &key) const
Definition: Material.h:104
Material(const std::string &material_name)
Create an empty but valid material for the specified material name.
Definition: Material.h:57
const t::geometry::Image & GetTextureMap(const std::string &key) const
Definition: Material.h:78
void SetBaseMetallic(float value)
Definition: Material.h:291
void SetPointSize(float value)
Definition: Material.h:328
bool HasAlbedoMap() const
Definition: Material.h:202
bool HasAnisotropy() const
Definition: Material.h:278
float GetBaseRoughness() const
Definition: Material.h:252
void SetVectorProperty(const std::string &key, const Eigen::Vector4f &value)
Definition: Material.h:129
void SetAnisotropy(float value)
Definition: Material.h:304
const t::geometry::Image & GetAlbedoMap() const
Definition: Material.h:169
bool HasAbsorptionDistance() const
Definition: Material.h:284
float GetBaseMetallic() const
Definition: Material.h:251
bool HasTransmission() const
Definition: Material.h:280
const t::geometry::Image & GetReflectanceMap() const
Definition: Material.h:184
const t::geometry::Image & GetClearcoatMap() const
Definition: Material.h:187
bool HasAORoughnessMetalMap() const
Definition: Material.h:213
void SetScalarProperty(const std::string &key, float value)
Definition: Material.h:120
const VectorPropertyMap & GetVectorProperties() const
Returns the map of vector properties.
Definition: Material.h:96
void SetAbsorptionDistance(float value)
Definition: Material.h:312
float GetAnisotropy() const
Definition: Material.h:260
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:181
const t::geometry::Image & GetAnisotropyMap() const
Definition: Material.h:193
bool HasAnisotropyMap() const
Definition: Material.h:212
bool HasAbsorptionColor() const
Definition: Material.h:281
bool HasBaseClearcoat() const
Definition: Material.h:274
float GetBaseClearcoat() const
Definition: Material.h:256
void SetNormalMap(const t::geometry::Image &image)
Definition: Material.h:220
float GetTransmission() const
Definition: Material.h:262
Eigen::Vector4f GetAbsorptionColor() const
Definition: Material.h:263
bool HasThickness() const
Definition: Material.h:279
void SetAlbedoMap(const t::geometry::Image &image)
Definition: Material.h:217
bool HasScalarProperty(const std::string &key) const
Definition: Material.h:153
void SetMetallicMap(const t::geometry::Image &image)
Definition: Material.h:226
float GetLineWidth() const
Definition: Material.h:323
float GetBaseClearcoatRoughness() const
Definition: Material.h:257
void SetBaseRoughness(float value)
Definition: Material.h:292
bool HasNormalMap() const
Definition: Material.h:203
bool HasBaseReflectance() const
Definition: Material.h:273
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:271
void SetBaseColor(const Eigen::Vector4f &value)
Definition: Material.h:288
bool HasClearcoatRoughnessMap() const
Definition: Material.h:209
Definition: PinholeCameraIntrinsic.cpp:35
const std::string & GetMaterialName() const
Get the name of the material.
Definition: Material.h:69
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:198
const t::geometry::Image & GetAOMap() const
Definition: Material.h:175
bool HasAOMap() const
Definition: Material.h:204
void SetClearcoatRoughnessMap(const t::geometry::Image &image)
Definition: Material.h:238
bool HasMetallicMap() const
Definition: Material.h:205
bool HasPointSize() const
Definition: Material.h:325
Eigen::Vector4f GetBaseColor() const
Definition: Material.h:248
bool HasClearcoatMap() const
Definition: Material.h:208
float GetScalarProperty(const std::string &key) const
Definition: Material.h:91
bool HasBaseColor() const
Definition: Material.h:270
void SetRoughnessMap(const t::geometry::Image &image)
Definition: Material.h:229
std::unordered_map< std::string, t::geometry::Image > TextureMaps
Definition: Material.h:41
float GetPointSize() const
Definition: Material.h:322
bool HasRoughnessMap() const
Definition: Material.h:206
const t::geometry::Image & GetMetallicMap() const
Definition: Material.h:178
const TextureMaps & GetTextureMaps() const
Returns the texture map map.
Definition: Material.h:72
void SetTransmission(float value)
Definition: Material.h:306
Material()=default
Create an empty, invalid material.
const t::geometry::Image & GetClearcoatRoughnessMap() const
Definition: Material.h:190
bool HasBaseClearcoatRoughness() const
Definition: Material.h:275
const t::geometry::Image & GetNormalMap() const
Definition: Material.h:172
float GetThickness() const
Definition: Material.h:261
void SetLineWidth(float value)
Definition: Material.h:329
bool HasTextureMap(const std::string &key) const
Definition: Material.h:146
std::shared_ptr< core::Tensor > image
Definition: FilamentRenderer.cpp:228
void SetReflectanceMap(const t::geometry::Image &image)
Definition: Material.h:232
void SetAnisotropyMap(const t::geometry::Image &image)
Definition: Material.h:241
bool HasLineWidth() const
Definition: Material.h:326