Volume Cartographer 2.28.0
Public Types | Static Public Attributes | Private Attributes | List of all members
volcart::texturing::AngleBasedFlattening Class Reference

Parameterize a mesh using ABF++. More...

#include <vc/texturing/AngleBasedFlattening.hpp>

Inheritance diagram for volcart::texturing::AngleBasedFlattening:
[legend]
Collaboration diagram for volcart::texturing::AngleBasedFlattening:
[legend]

Public Types

enum class  Solver { SparseLU = 0 , ConjugateGradient = 1 }
 
using Pointer = std::shared_ptr< AngleBasedFlattening >
 
- Public Types inherited from volcart::texturing::FlatteningAlgorithm
using Pointer = std::shared_ptr< FlatteningAlgorithm >
 

Public Member Functions

void setUseABF (bool a)
 Whether to perform Angle-based flattening computation. More...
 
auto useABF () const -> bool
 Whether Angle-based flattening is performed.
 
void setABFMaxIterations (std::size_t i)
 The max number of ABF minimization iterations.
 
auto abfMaxIterations () const -> std::size_t
 The max number of ABF minimization iterations. More...
 
void setSolver (Solver solver)
 The numerical solver method. More...
 
auto solver () const -> Solver
 The numerical solver method. More...
 
auto compute () -> ITKMesh::Pointer override
 Compute the parameterization. More...
 
- Public Member Functions inherited from volcart::texturing::FlatteningAlgorithm
virtual ~FlatteningAlgorithm ()=default
 
void setMesh (const ITKMesh::Pointer &m)
 Set the input Mesh. More...
 
ITKMesh::Pointer getMesh ()
 Get the parameterized mesh. More...
 
UVMap::Pointer getUVMap ()
 Get the parameterized mesh as a UVMap

 

Static Public Attributes

static constexpr std::size_t DEFAULT_ITERATIONS {10}
 

Private Attributes

bool useABF_ {true}
 
Solver solver_ {Solver::SparseLU}
 
std::size_t maxABFIterations_ {DEFAULT_ITERATIONS}
 
 AngleBasedFlattening ()=default
 Default constructor.
 
 AngleBasedFlattening (const ITKMesh::Pointer &m)
 Construct and set the input mesh.
 
 ~AngleBasedFlattening () override=default
 
template<typename... Args>
static auto New (Args... args) -> Pointer
 

Additional Inherited Members

- Protected Member Functions inherited from volcart::texturing::FlatteningAlgorithm
 FlatteningAlgorithm ()=default
 
 FlatteningAlgorithm (const ITKMesh::Pointer &m)
 
- Protected Attributes inherited from volcart::texturing::FlatteningAlgorithm
ITKMesh::Pointer mesh_
 
ITKMesh::Pointer output_
 

Detailed Description

Parameterize a mesh using ABF++.

First, uses ABF++ to calculate the optimal, interior angles of the flattened mesh. Then uses an Angle-based formulation of Least Squares Conformal Maps to convert this angle-optimized parameterization into a full mesh parameterization.

Implementation provided by the OpenABF library.

Definition at line 29 of file AngleBasedFlattening.hpp.

Member Typedef Documentation

◆ Pointer

Pointer

Definition at line 39 of file AngleBasedFlattening.hpp.

Member Enumeration Documentation

◆ Solver

Solver implementation

Definition at line 33 of file AngleBasedFlattening.hpp.

Constructor & Destructor Documentation

◆ ~AngleBasedFlattening()

volcart::texturing::AngleBasedFlattening::~AngleBasedFlattening ( )
overridedefault

Default destructor

Member Function Documentation

◆ abfMaxIterations()

auto volcart::texturing::AngleBasedFlattening::abfMaxIterations ( ) const -> std::size_t

The max number of ABF minimization iterations.

◆ compute()

auto volcart::texturing::AngleBasedFlattening::compute ( ) -> ITKMesh::Pointer
overridevirtual

Compute the parameterization.

Implements volcart::texturing::FlatteningAlgorithm.

◆ New()

template<typename... Args>
static auto volcart::texturing::AngleBasedFlattening::New ( Args...  args) -> Pointer
inlinestatic

Make a new shared instance

Definition at line 50 of file AngleBasedFlattening.hpp.

◆ setSolver()

void volcart::texturing::AngleBasedFlattening::setSolver ( Solver  solver)

The numerical solver method.

Note
When compiled with OpenMP support, certain Eigen solvers (e.g. ConjugateGradient) are multithreaded. The number of threads used is controlled globally through the OpenMP and/or Eigen interfaces. See Eigen and multi-threading for more information.

◆ setUseABF()

void volcart::texturing::AngleBasedFlattening::setUseABF ( bool  a)

Whether to perform Angle-based flattening computation.

If false, the mesh is flattened using only the Angle-based LSCM algorithm.

◆ solver()

auto volcart::texturing::AngleBasedFlattening::solver ( ) const -> Solver

The numerical solver method.

Note
When compiled with OpenMP support, certain Eigen solvers (e.g. ConjugateGradient) are multithreaded. The number of threads used is controlled globally through the OpenMP and/or Eigen interfaces. See Eigen and multi-threading for more information.

Member Data Documentation

◆ DEFAULT_ITERATIONS

constexpr std::size_t volcart::texturing::AngleBasedFlattening::DEFAULT_ITERATIONS {10}
staticconstexpr

Default maximum number of ABF iterations

Definition at line 36 of file AngleBasedFlattening.hpp.

◆ maxABFIterations_

std::size_t volcart::texturing::AngleBasedFlattening::maxABFIterations_ {DEFAULT_ITERATIONS}
private

Maximum number of ABF minimization iterations

Definition at line 107 of file AngleBasedFlattening.hpp.

◆ solver_

Solver volcart::texturing::AngleBasedFlattening::solver_ {Solver::SparseLU}
private

Solver method

Definition at line 105 of file AngleBasedFlattening.hpp.

◆ useABF_

bool volcart::texturing::AngleBasedFlattening::useABF_ {true}
private

Whether to use ABF minimization

Definition at line 103 of file AngleBasedFlattening.hpp.


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