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