ImFusion C++ SDK 4.4.0
ImFusion::PointDistanceReg Class Reference

#include <ImFusion/Base/PointDistanceReg.h>

Registers a point set to a distance volume. More...

Inheritance diagram for ImFusion::PointDistanceReg:

Detailed Description

Registers a point set to a distance volume.

Public Member Functions

 PointDistanceReg (const TypedImage< float > *dist, vec3 ofs=vec3::Zero())
 Constructor providing the distance volume and optional offset.
 ~PointDistanceReg () override
 Destructor.
void setInitialMatrix (const mat4 *m)
 Optionally provide an initial alignment matrix.
void setReferenceMatrix (const mat4 &m)
 Set the optional reference matrix around which the relative pose will be applied.
void setAngleAxis (bool flag)
 Enable or disable angle-axis parameterization of the rotation.
void setWeightingAfterTransformation (bool after)
 Weigh the distances before or after applying the transformation.
void setDistanceOutput (double *ptr)
 Provide a pointer used for storing individual point distances.
void addPriorityBox (const vec3 &minCorner, const vec3 &maxCorner, double weight)
 Optionally defines rectangular regions with different weighting.
double evaluate (int n, const double *x, double *dx=0) override
 Returns point distance for a certain pose.
double computeDistance (const vec3 &point) const
 Returns the distance of a given point to the surface model in mm.
std::vector< vec3 > & points ()
 Read-write access to the point set.
void setPointWeights (const std::vector< double > &w)
std::vector< double > pointWeights () const
void setMatrix (const mat4 &mat)
 Set the current transformation matrix.
const mat4 & matrix () const
 Access the current transformation matrix.
mat4 matrix (int n, const double *x) const
 Return transformation matrix given relative pose parameters.
int removeOutliers (int n, const double *x, double threshold)
 Remove outliers from current points w.r.t. the input pose parameters, returns the number of such outliers.

Member Function Documentation

◆ evaluate()

double ImFusion::PointDistanceReg::evaluate ( int n,
const double * x,
double * dx = 0 )
overridevirtual

Returns point distance for a certain pose.

Implements ImFusion::CostFunction.


The documentation for this class was generated from the following file:
  • ImFusion/Base/PointDistanceReg.h
Search Tab / S to search, Esc to close