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