Lagrange
Loading...
Searching...
No Matches
GeodesicEngine< Scalar, Index > Class Template Referenceabstract

Engine that is used to compute geodesic distances on a surface mesh. More...

#include <lagrange/geodesic/GeodesicEngine.h>

Inheritance diagram for GeodesicEngine< Scalar, Index >:
GeodesicEngineHeat< Scalar, Index >::Impl GeodesicEngineMMP< Scalar, Index >::Impl GeodesicEngineDGPC< Scalar, Index > GeodesicEngineHeat< Scalar, Index > GeodesicEngineMMP< Scalar, Index >

Public Types

using Mesh = SurfaceMesh<Scalar, Index>
 The mesh type.
 

Public Member Functions

 GeodesicEngine (Mesh &mesh)
 Base class constructor.
 
virtual ~GeodesicEngine ()=default
 Base class destructor.
 
virtual SingleSourceGeodesicResult single_source_geodesic (const SingleSourceGeodesicOptions &options)=0
 Computes geodesic distance from one source to each vertex on the mesh.
 
virtual Scalar point_to_point_geodesic (const PointToPointGeodesicOptions &options)
 Computes the geodesic distance between two points on the mesh.
 
virtual GeodesicPathResult< Scalar, Index > point_to_point_geodesic_path (const PointToPointGeodesicPathOptions &options)
 Computes the geodesic path between two points on the mesh.
 

Protected Member Functions

const Meshmesh () const
 
Meshmesh ()
 

Detailed Description

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

Engine that is used to compute geodesic distances on a surface mesh.

Template Parameters
ScalarMesh scalar type.
IndexMesh index type.

Constructor & Destructor Documentation

◆ GeodesicEngine()

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

Base class constructor.

Parameters
meshReference to the input mesh.

Member Function Documentation

◆ single_source_geodesic()

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

Computes geodesic distance from one source to each vertex on the mesh.

Parameters
[in]optionsInput options for single source geodesic computation.
Returns
The attribute id of the computed geodesic distance attribute.

Implemented in GeodesicEngineDGPC< Scalar, Index >, GeodesicEngineHeat< Scalar, Index >::Impl, GeodesicEngineHeat< Scalar, Index >, GeodesicEngineMMP< Scalar, Index >::Impl, and GeodesicEngineMMP< Scalar, Index >.

◆ point_to_point_geodesic()

template<typename Scalar, typename Index>
Scalar point_to_point_geodesic ( const PointToPointGeodesicOptions & options)
virtual

Computes the geodesic distance between two points on the mesh.

Parameters
[in]optionsInput options for point-to-point geodesic computation.
Returns
The geodesic distance between the source and target points.

◆ point_to_point_geodesic_path()

template<typename Scalar, typename Index>
GeodesicPathResult< Scalar, Index > point_to_point_geodesic_path ( const PointToPointGeodesicPathOptions & options)
virtual

Computes the geodesic path between two points on the mesh.

Parameters
[in]optionsInput options for point-to-point path computation.
Returns
A GeodesicPathResult containing the ordered path points and the facet index for each path segment.
Exceptions
lagrange::Errorif the engine does not support path extraction.
Note
Not all engines support path extraction. The default implementation throws an exception. Currently, only GeodesicEngineMMP provides exact path extraction.

Reimplemented in GeodesicEngineMMP< Scalar, Index >::Impl, and GeodesicEngineMMP< Scalar, Index >.


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