Class for calculating materials for each cluster of a given mesh. More...
#include <Materializer.hpp>
| Public Member Functions | |
| MaterializerResult< BaseVecT > | generateMaterials () | 
| Generates materials.  More... | |
| Materializer (const BaseMesh< BaseVecT > &mesh, const ClusterBiMap< FaceHandle > &cluster, const FaceMap< Normal< typename BaseVecT::CoordType >> &normals, const PointsetSurface< BaseVecT > &surface) | |
| Constructor.  More... | |
| void | saveTextures () | 
| Saves the textures by calling the saveTextures()method of the texturizer.  More... | |
| void | setTexturizer (Texturizer< BaseVecT > &texturizer) | 
| Sets the texturizer.  More... | |
| Private Attributes | |
| const ClusterBiMap< FaceHandle > & | m_cluster | 
| Clusters.  More... | |
| const BaseMesh< BaseVecT > & | m_mesh | 
| Mesh.  More... | |
| const FaceMap< Normal< typename BaseVecT::CoordType > > & | m_normals | 
| Normals.  More... | |
| const PointsetSurface< BaseVecT > & | m_surface | 
| Point cloud.  More... | |
| boost::optional< Texturizer< BaseVecT > & > | m_texturizer | 
| Texturizer.  More... | |
Class for calculating materials for each cluster of a given mesh.
For each cluster of a given mesh, this class generates a material. Based on the original pointcloud, it calculates a color for each cluster. If a Texturizer is provided, it generates a texture for the material instead. In that case it will also calculate texture coordinates and keypoints.
Definition at line 131 of file Materializer.hpp.
| lvr2::Materializer< BaseVecT >::Materializer | ( | const BaseMesh< BaseVecT > & | mesh, | 
| const ClusterBiMap< FaceHandle > & | cluster, | ||
| const FaceMap< Normal< typename BaseVecT::CoordType >> & | normals, | ||
| const PointsetSurface< BaseVecT > & | surface | ||
| ) | 
Constructor.
| mesh | The mesh | 
| cluster | The cluster map | 
| normals | The normals map | 
| surface | The point cloud | 
| MaterializerResult<BaseVecT> lvr2::Materializer< BaseVecT >::generateMaterials | ( | ) | 
Generates materials.
For each cluster, check whether a texture should be generated:
If no texture should be generated, calculate the median color of the faces in the cluster. Then create a material using this color if it doesn't already exist.
If textures should be generated, calculate the contour vertices of the cluster and a bounding rectangle and let the texturizer generate a texture using the bounding rectangle. Then calculate AKAZE keypoints for the texture image and texture coordinates for each vertex in the cluster.
| void lvr2::Materializer< BaseVecT >::saveTextures | ( | ) | 
Saves the textures by calling the saveTextures() method of the texturizer. 
| void lvr2::Materializer< BaseVecT >::setTexturizer | ( | Texturizer< BaseVecT > & | texturizer | ) | 
Sets the texturizer.
| texturizer | The texturizer | 
| 
 | private | 
Clusters.
Definition at line 186 of file Materializer.hpp.
| 
 | private | 
Mesh.
Definition at line 184 of file Materializer.hpp.
| 
 | private | 
Normals.
Definition at line 188 of file Materializer.hpp.
| 
 | private | 
Point cloud.
Definition at line 190 of file Materializer.hpp.
| 
 | private | 
Definition at line 193 of file Materializer.hpp.