mesh_material.h
Go to the documentation of this file.
1 
26 #ifndef TESSERACT_GEOMETRY_MESH_MATERIAL_H
27 #define TESSERACT_GEOMETRY_MESH_MATERIAL_H
28 
31 #include <Eigen/Core>
32 #include <memory>
34 
36 #include <tesseract_common/fwd.h>
38 
39 namespace tesseract_geometry
40 {
61 {
62 public:
63  // LCOV_EXCL_START
64  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
65  // LCOV_EXCL_STOP
66 
67  using Ptr = std::shared_ptr<MeshMaterial>;
68  using ConstPtr = std::shared_ptr<const MeshMaterial>;
69 
78  MeshMaterial(const Eigen::Vector4d& base_color_factor,
79  double metallic_factor,
80  double roughness_factor,
81  const Eigen::Vector4d& emissive_factor);
82 
83  MeshMaterial() = default;
84 
90  Eigen::Vector4d getBaseColorFactor() const;
91 
97  double getMetallicFactor() const;
98 
104  double getRoughnessFactor() const;
105 
114  Eigen::Vector4d getEmissiveFactor() const;
115 
116 private:
117  // Mesh material based on simplified glTF 2.0 pbrMetallicRoughness parameters
118  Eigen::Vector4d base_color_factor_;
119  double metallic_factor_ = 0;
120  double roughness_factor_ = 0.5;
121  Eigen::Vector4d emissive_factor_;
122 };
123 
138 {
139 public:
140  using Ptr = std::shared_ptr<MeshTexture>;
141  using ConstPtr = std::shared_ptr<const MeshTexture>;
142 
149  MeshTexture(std::shared_ptr<tesseract_common::Resource> texture_image,
150  std::shared_ptr<const tesseract_common::VectorVector2d> uvs);
151 
159  std::shared_ptr<tesseract_common::Resource> getTextureImage() const;
160 
166  const std::shared_ptr<const tesseract_common::VectorVector2d>& getUVs();
167 
168 private:
169  std::shared_ptr<const tesseract_common::VectorVector2d> uvs_;
170 
171  // texture_image shall be jpg or png
172  std::shared_ptr<tesseract_common::Resource> texture_image_;
173 };
174 } // namespace tesseract_geometry
175 
176 #endif
tesseract_geometry::MeshMaterial::getMetallicFactor
double getMetallicFactor() const
Get the Metallic Factor of the mesh (PBR parameter)
Definition: mesh_material.cpp:45
geometry.h
Tesseract Geometries.
tesseract_geometry::MeshMaterial::MeshMaterial
MeshMaterial()=default
tesseract_geometry::MeshTexture::getUVs
const std::shared_ptr< const tesseract_common::VectorVector2d > & getUVs()
Get the texture UV coordinates.
Definition: mesh_material.cpp:59
tesseract_geometry::MeshMaterial::metallic_factor_
double metallic_factor_
Definition: mesh_material.h:119
tesseract_geometry::MeshMaterial::getRoughnessFactor
double getRoughnessFactor() const
Get the Roughness Factor of the mesh (PBR parameter)
Definition: mesh_material.cpp:47
tesseract_geometry::MeshTexture::getTextureImage
std::shared_ptr< tesseract_common::Resource > getTextureImage() const
Get the texture image.
Definition: mesh_material.cpp:57
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_geometry::MeshTexture
Represents a texture and UV coordinates extracted from a mesh file.
Definition: mesh_material.h:137
tesseract_geometry::MeshTexture::texture_image_
std::shared_ptr< tesseract_common::Resource > texture_image_
Definition: mesh_material.h:172
tesseract_geometry::MeshMaterial::Ptr
std::shared_ptr< MeshMaterial > Ptr
Definition: mesh_material.h:67
tesseract_geometry::MeshMaterial::roughness_factor_
double roughness_factor_
Definition: mesh_material.h:120
tesseract_geometry::MeshTexture::MeshTexture
MeshTexture(std::shared_ptr< tesseract_common::Resource > texture_image, std::shared_ptr< const tesseract_common::VectorVector2d > uvs)
Construct a new MeshTexture.
Definition: mesh_material.cpp:51
tesseract_geometry::MeshTexture::uvs_
std::shared_ptr< const tesseract_common::VectorVector2d > uvs_
Definition: mesh_material.h:169
tesseract_geometry::MeshTexture::Ptr
std::shared_ptr< MeshTexture > Ptr
Definition: mesh_material.h:140
tesseract_geometry::MeshMaterial::emissive_factor_
Eigen::Vector4d emissive_factor_
Definition: mesh_material.h:121
tesseract_geometry::MeshTexture::ConstPtr
std::shared_ptr< const MeshTexture > ConstPtr
Definition: mesh_material.h:141
fwd.h
tesseract_geometry::MeshMaterial::getBaseColorFactor
Eigen::Vector4d getBaseColorFactor() const
Get the base color of the mesh.
Definition: mesh_material.cpp:43
eigen_types.h
TESSERACT_COMMON_IGNORE_WARNINGS_POP
#define TESSERACT_COMMON_IGNORE_WARNINGS_POP
tesseract_geometry::MeshMaterial::ConstPtr
std::shared_ptr< const MeshMaterial > ConstPtr
Definition: mesh_material.h:68
tesseract_geometry
Definition: fwd.h:31
tesseract_geometry::MeshMaterial::getEmissiveFactor
Eigen::Vector4d getEmissiveFactor() const
Get the emissive factor of the mesh.
Definition: mesh_material.cpp:49
tesseract_geometry::MeshMaterial::base_color_factor_
Eigen::Vector4d base_color_factor_
Definition: mesh_material.h:118
macros.h
tesseract_geometry::MeshMaterial
Represents material information extracted from a mesh file.
Definition: mesh_material.h:60


tesseract_geometry
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:46