Lagrange
Loading...
Searching...
No Matches
GeodesicEngineMMP< Scalar, Index > Class Template Reference

Computes surface geodesics using the [MMP] algorithm. More...

#include <lagrange/geodesic/GeodesicEngineMMP.h>

Inheritance diagram for GeodesicEngineMMP< Scalar, Index >:
GeodesicEngine< Scalar, Index >

Classes

struct  Impl
 

Public Types

using Super = GeodesicEngine<Scalar, Index>
 Parent class type.
 
using Mesh = typename Super::Mesh
 The mesh type.
 
- Public Types inherited from GeodesicEngine< Scalar, Index >
using Mesh = SurfaceMesh<Scalar, Index>
 The mesh type.
 

Public Member Functions

 GeodesicEngineMMP (Mesh &mesh)
 Precompute any data required for repeated geodesic distance computation.
 
 GeodesicEngineMMP (GeodesicEngineMMP &&)
 
GeodesicEngineMMPoperator= (GeodesicEngineMMP &&)
 
 GeodesicEngineMMP (const GeodesicEngineMMP &)=delete
 
GeodesicEngineMMPoperator= (const GeodesicEngineMMP &)=delete
 
SingleSourceGeodesicResult single_source_geodesic (const SingleSourceGeodesicOptions &options) override
 Compute single source geodesic distances using the MMP algorithm.
 
- Public Member Functions inherited from GeodesicEngine< Scalar, Index >
 GeodesicEngine (Mesh &mesh)
 Base class constructor.
 
virtual ~GeodesicEngine ()=default
 Base class destructor.
 
virtual Scalar point_to_point_geodesic (const PointToPointGeodesicOptions &options)
 Computes the geodesic distance between two points on the mesh.
 

Protected Attributes

lagrange::value_ptr< Implm_impl
 

Additional Inherited Members

- Protected Member Functions inherited from GeodesicEngine< Scalar, Index >
const Meshmesh () const
 
Meshmesh ()
 

Detailed Description

template<typename Scalar, typename Index>
class lagrange::geodesic::GeodesicEngineMMP< Scalar, Index >

Computes surface geodesics using the [MMP] algorithm.

This is an exact method, which offers the best accuracy overall, but can be slow for large meshes.

Template Parameters
ScalarMesh scalar type.
IndexMesh index type.

[MMP]: Mitchell, Joseph SB, David M. Mount, and Christos H. Papadimitriou. "The discrete geodesic problem." SIAM Journal on Computing 16.4 (1987): 647-668.

Constructor & Destructor Documentation

◆ GeodesicEngineMMP()

template<typename Scalar, typename Index>
GeodesicEngineMMP ( Mesh & mesh)
explicit

Precompute any data required for repeated geodesic distance computation.

Parameters
meshReference to the input mesh.

Member Function Documentation

◆ single_source_geodesic()

template<typename Scalar, typename Index>
SingleSourceGeodesicResult single_source_geodesic ( const SingleSourceGeodesicOptions & options)
overridevirtual

Compute single source geodesic distances using the MMP algorithm.

This function only computes a distance, and does not compute polar angles. It is based on the following paper:

  • Mitchell, Joseph SB, David M. Mount, and Christos H. Papadimitriou. "The discrete geodesic problem." SIAM Journal on Computing 16.4 (1987): 647-668.
Parameters
optionsThe options for the computation.
Returns
The attribute ids of the geodesic distance (id for polar angle will be invalid).

Implements GeodesicEngine< Scalar, Index >.


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