v2.0.0
Loading...
Searching...
No Matches
DISP3DLIB::GeometryInfo Class Reference

This class holds static methods for sensor-to-mesh mapping and surface constrained distance calculation on a mesh. More...

#include <geometryinfo.h>

Public Types

typedef QSharedPointer< GeometryInfoSPtr
typedef QSharedPointer< const GeometryInfoConstSPtr

Public Member Functions

 GeometryInfo ()=delete

Static Public Member Functions

static QSharedPointer< Eigen::MatrixXd > scdc (const Eigen::MatrixX3f &matVertices, const std::vector< Eigen::VectorXi > &vecNeighborVertices, Eigen::VectorXi &vecVertSubset, double dCancelDist=FLOAT_INFINITY)
 scdc Calculates surface constrained distances on a mesh.
static QSharedPointer< Eigen::SparseMatrix< float > > scdcInterpolationMat (const Eigen::MatrixX3f &matVertices, const std::vector< Eigen::VectorXi > &vecNeighborVertices, const Eigen::VectorXi &vecVertSubset, double(*interpolationFunction)(double), double dCancelDist, std::function< void(int, int)> progressCallback=nullptr)
 scdcInterpolationMat Computes geodesic distances (SCDC) and builds the sparse interpolation matrix in a single pass, without allocating a dense nVertices x nSources distance table. Produces identical results to scdc() + Interpolation::createInterpolationMat() but uses dramatically less memory (sparse representation only stores entries within cancelDist).
static Eigen::VectorXi projectSensors (const Eigen::MatrixX3f &matVertices, const Eigen::MatrixX3f &matSensorPositions)
 projectSensors Calculates the nearest neighbor vertex to each sensor.
static Eigen::VectorXi filterBadChannels (QSharedPointer< Eigen::MatrixXd > matDistanceTable, const FIFFLIB::FiffInfo &fiffInfo, qint32 iSensorType)
 filterBadChannels Filters bad channels from distance table.

Static Protected Member Functions

static double squared (double dBase)
static Eigen::VectorXi nearestNeighbor (const Eigen::MatrixX3f &matVertices, const Eigen::MatrixX3f &matSensorPositions, qint32 iBegin, qint32 iEnd)
static void iterativeDijkstra (QSharedPointer< Eigen::MatrixXd > matOutputDistMatrix, const Eigen::MatrixX3f &matVertices, const std::vector< Eigen::VectorXi > &vecNeighborVertices, const Eigen::VectorXi &vecVertSubset, qint32 iBegin, qint32 iEnd, double dCancelDistance)

Detailed Description

This class holds static methods for sensor-to-mesh mapping and surface constrained distance calculation on a mesh.

This class allows sensor-to-mesh mapping and calculation of surface constrained distances.

Definition at line 83 of file geometryinfo.h.

Member Typedef Documentation

◆ ConstSPtr

typedef QSharedPointer<const GeometryInfo> DISP3DLIB::GeometryInfo::ConstSPtr

Definition at line 88 of file geometryinfo.h.

◆ SPtr

Definition at line 87 of file geometryinfo.h.

Constructor & Destructor Documentation

◆ GeometryInfo()

DISP3DLIB::GeometryInfo::GeometryInfo ( )
delete

Member Function Documentation

◆ filterBadChannels()

VectorXi GeometryInfo::filterBadChannels ( QSharedPointer< Eigen::MatrixXd > matDistanceTable,
const FIFFLIB::FiffInfo & fiffInfo,
qint32 iSensorType )
static

filterBadChannels Filters bad channels from distance table.

Definition at line 414 of file geometryinfo.cpp.

◆ iterativeDijkstra()

void GeometryInfo::iterativeDijkstra ( QSharedPointer< Eigen::MatrixXd > matOutputDistMatrix,
const Eigen::MatrixX3f & matVertices,
const std::vector< Eigen::VectorXi > & vecNeighborVertices,
const Eigen::VectorXi & vecVertSubset,
qint32 iBegin,
qint32 iEnd,
double dCancelDistance )
staticprotected

Definition at line 357 of file geometryinfo.cpp.

◆ nearestNeighbor()

VectorXi GeometryInfo::nearestNeighbor ( const Eigen::MatrixX3f & matVertices,
const Eigen::MatrixX3f & matSensorPositions,
qint32 iBegin,
qint32 iEnd )
staticprotected

Definition at line 327 of file geometryinfo.cpp.

◆ projectSensors()

VectorXi GeometryInfo::projectSensors ( const Eigen::MatrixX3f & matVertices,
const Eigen::MatrixX3f & matSensorPositions )
static

projectSensors Calculates the nearest neighbor vertex to each sensor.

Definition at line 261 of file geometryinfo.cpp.

◆ scdc()

QSharedPointer< MatrixXd > GeometryInfo::scdc ( const Eigen::MatrixX3f & matVertices,
const std::vector< Eigen::VectorXi > & vecNeighborVertices,
Eigen::VectorXi & vecVertSubset,
double dCancelDist = FLOAT_INFINITY )
static

scdc Calculates surface constrained distances on a mesh.

Definition at line 70 of file geometryinfo.cpp.

◆ scdcInterpolationMat()

QSharedPointer< SparseMatrix< float > > GeometryInfo::scdcInterpolationMat ( const Eigen::MatrixX3f & matVertices,
const std::vector< Eigen::VectorXi > & vecNeighborVertices,
const Eigen::VectorXi & vecVertSubset,
double(* interpolationFunction )(double),
double dCancelDist,
std::function< void(int, int)> progressCallback = nullptr )
static

scdcInterpolationMat Computes geodesic distances (SCDC) and builds the sparse interpolation matrix in a single pass, without allocating a dense nVertices x nSources distance table. Produces identical results to scdc() + Interpolation::createInterpolationMat() but uses dramatically less memory (sparse representation only stores entries within cancelDist).

Parameters
[in]matVerticesVertex positions (nVertices x 3).
[in]vecNeighborVerticesAdjacency list for each vertex.
[in]vecVertSubsetSource vertex indices.
[in]interpolationFunctionWeight function (e.g. Interpolation::cubic).
[in]dCancelDistMaximum geodesic distance for interpolation.
[in]progressCallbackOptional callback reporting Dijkstra progress (current, total).
Returns
Sparse interpolation matrix (nVertices x nSources).

Definition at line 137 of file geometryinfo.cpp.

◆ squared()

double DISP3DLIB::GeometryInfo::squared ( double dBase)
inlinestaticprotected

Definition at line 160 of file geometryinfo.h.


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