Super4PCS Library  V1.1.2(719f5c0)
GlobalRegistration::Match4PCSBase Class Referenceabstract
+ Inheritance diagram for GlobalRegistration::Match4PCSBase:
+ Collaboration diagram for GlobalRegistration::Match4PCSBase:

Classes

struct  DummyTransformVisitor
 

Public Types

using PairsVector = std::vector< std::pair< int, int > >
 
using Scalar = typename Point3D::Scalar
 
using VectorType = typename Point3D::VectorType
 
using MatrixType = Eigen::Matrix< Scalar, 4, 4 >
 
using LogLevel = Utils::LogLevel
 
using DefaultSampler = Sampling::UniformDistSampler
 

Public Member Functions

virtual EIGEN_MAKE_ALIGNED_OPERATOR_NEW ~Match4PCSBase ()
 
const std::vector< Point3D > & getFirstSampled () const
 Read access to the sampled clouds used for the registration. More...
 
const std::vector< Point3D > & getSecondSampled () const
 Read access to the sampled clouds used for the registration. More...
 
template<typename Sampler = DefaultSampler, typename Visitor = DummyTransformVisitor>
Scalar ComputeTransformation (const std::vector< Point3D > &P, std::vector< Point3D > *Q, Eigen::Ref< MatrixType > transformation, const Sampler &sampler=Sampler(), const Visitor &v=Visitor())
 Computes an approximation of the best LCP (directional) from Q to P and the rigid transformation that realizes it. The input sets may or may not contain normal information for any point. More...
 

Static Public Attributes

static constexpr int kNumberOfDiameterTrials = 1000
 
static constexpr Scalar kLargeNumber = 1e9
 
static constexpr Scalar distance_factor = 2.0
 

Member Typedef Documentation

◆ DefaultSampler

◆ LogLevel

◆ MatrixType

◆ PairsVector

using GlobalRegistration::Match4PCSBase::PairsVector = std::vector< std::pair<int, int> >

◆ Scalar

◆ VectorType

Constructor & Destructor Documentation

◆ ~Match4PCSBase()

GlobalRegistration::Match4PCSBase::~Match4PCSBase ( )
virtual
+ Here is the call graph for this function:

Member Function Documentation

◆ ComputeTransformation()

template<typename Sampler , typename Visitor >
Match4PCSBase::Scalar GlobalRegistration::Match4PCSBase::ComputeTransformation ( const std::vector< Point3D > &  P,
std::vector< Point3D > *  Q,
Eigen::Ref< MatrixType transformation,
const Sampler &  sampler = Sampler(),
const Visitor &  v = Visitor() 
)

Computes an approximation of the best LCP (directional) from Q to P and the rigid transformation that realizes it. The input sets may or may not contain normal information for any point.

Parameters
[in]PThe first input set.
[in]QThe second input set. as a fraction of the size of P ([0..1]).
[out]transformationRigid transformation matrix (4x4) that brings Q to the (approximate) optimal LCP. Initial value is considered as a guess
Returns
the computed LCP measure. The method updates the coordinates of the second set, Q, applying the found transformation.
+ Here is the call graph for this function:

◆ getFirstSampled()

const std::vector<Point3D>& GlobalRegistration::Match4PCSBase::getFirstSampled ( ) const
inline

Read access to the sampled clouds used for the registration.

◆ getSecondSampled()

const std::vector<Point3D>& GlobalRegistration::Match4PCSBase::getSecondSampled ( ) const
inline

Read access to the sampled clouds used for the registration.

+ Here is the call graph for this function:

Member Data Documentation

◆ distance_factor

constexpr Scalar GlobalRegistration::Match4PCSBase::distance_factor = 2.0
static

◆ kLargeNumber

constexpr Scalar GlobalRegistration::Match4PCSBase::kLargeNumber = 1e9
static

◆ kNumberOfDiameterTrials

constexpr int GlobalRegistration::Match4PCSBase::kNumberOfDiameterTrials = 1000
static