Volume Cartographer 2.27.0
Public Attributes | List of all members
volcart::texturing::LStretchMetrics Struct Reference

L stretch error metric output struct. More...

#include <vc/texturing/FlatteningError.hpp>

Public Attributes

double l2 {0}
 Global L2 error. More...
 
double lInf {0}
 Global LInf error. More...
 
std::vector< double > faceL2
 Per-face L2 error. More...
 
std::vector< double > faceLInf
 Per-face LInf error. More...
 

Detailed Description

L stretch error metric output struct.

Holds global and per-face L2 and LInf flattening error metrics by Sander et al. [sander2001texture]. Per-face L2 represents the RMS stretch across all directions of a 3D triangle when mapping a unit length vector from the 2D domain. Per-face LInf represents the maximum stretch when mapping the same. The global L2 metric summarizes the L2 stretch across all triangles and provides an at-a-glance indicator of overall flattening error. The global LInf metric is the maximum LInf value across all faces and represents the worst case stretch across the entire surface. From Sheffer, Praun, and Rose [sheffer2007mesh] :

‍The name for the stretch metric comes from applications that map signals with regular sampling in the domain to 3D surfaces; these applications want to minimize the stretch of the signal over the surface, or the space between the locations of mapped samples.

Note
The L2 and LInf stretch metrics represent the stretch from the 2D domain to the 3D domain. Thus, an LInf value of 0.5 indicates a flattening where a 3D unit vector is half the length of its corresponding 2D unit vector. This is the inverse of how stretch is generally considered in most of Volume Cartographer, where we are interested in the stretch introduced relative to the 3D domain. This function returns the L stretch metrics as defined in the original paper, but VC applications should report the inverted values indicating stretch from 3D-to-2D. These values can be calculated using InvertLStretchMetrics.

Definition at line 74 of file FlatteningError.hpp.

Member Data Documentation

◆ faceL2

std::vector<double> volcart::texturing::LStretchMetrics::faceL2

Per-face L2 error.

Definition at line 80 of file FlatteningError.hpp.

◆ faceLInf

std::vector<double> volcart::texturing::LStretchMetrics::faceLInf

Per-face LInf error.

Definition at line 82 of file FlatteningError.hpp.

◆ l2

double volcart::texturing::LStretchMetrics::l2 {0}

Global L2 error.

Definition at line 76 of file FlatteningError.hpp.

◆ lInf

double volcart::texturing::LStretchMetrics::lInf {0}

Global LInf error.

Definition at line 78 of file FlatteningError.hpp.


The documentation for this struct was generated from the following file: