31#ifndef VP_RB_CONVERGENCE_METRIC_H
32#define VP_RB_CONVERGENCE_METRIC_H
34#include <visp3/core/vpConfig.h>
35#include <visp3/core/vpUniRand.h>
37#include <visp3/rbt/vpPointMap.h>
38#include <visp3/rbt/vpObjectCentricRenderer.h>
40#ifdef VISP_HAVE_NLOHMANN_JSON
41#include VISP_NLOHMANN_JSON(json_fwd.hpp)
48 vpRBConvergenceMetric(
double renderThreshold,
double convergedThreshold,
unsigned int numPoints,
unsigned int seed);
67#ifdef VISP_HAVE_NLOHMANN_JSON
68 static std::shared_ptr<vpRBConvergenceMetric>
loadFromJSON(
const nlohmann::json &j);
84 vpRBConvergenceADDMetric(
double renderThreshold,
double convergedThreshold,
unsigned int numPoints,
unsigned int seed);
Implementation of a generic 2D array used as base class for matrices and vectors.
Generic class defining intrinsic camera parameters.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Single object focused renderer.
double operator()(const vpCameraParameters &, const vpHomogeneousMatrix &cTo1, const vpHomogeneousMatrix &cTo2) VP_OVERRIDE
vpRBConvergenceADDMetric(double renderThreshold, double convergedThreshold, unsigned int numPoints, unsigned int seed)
vpRBConvergenceMetric(double renderThreshold, double convergedThreshold, unsigned int numPoints, unsigned int seed)
virtual double operator()(const vpCameraParameters &cam, const vpHomogeneousMatrix &cTo1, const vpHomogeneousMatrix &cTo2)=0
bool hasConverged(const vpCameraParameters &cam, const vpHomogeneousMatrix &cTo1, const vpHomogeneousMatrix &cTo2)
double m_rerenderThreshold
double getUpdateRenderThreshold() const
virtual ~vpRBConvergenceMetric()=default
vpArray2D< int > m_indices
bool shouldUpdateRender(const vpCameraParameters &cam, const vpHomogeneousMatrix &cTo1, const vpHomogeneousMatrix &cTo2)
double m_convergedThreshold
static std::shared_ptr< vpRBConvergenceMetric > loadFromJSON(const nlohmann::json &j)
double getConvergenceThreshold() const
vpRBConvergenceReprojectionMetric(double renderThreshold, double convergedThreshold, unsigned int numPoints, unsigned int seed)
double operator()(const vpCameraParameters &cam, const vpHomogeneousMatrix &cTo1, const vpHomogeneousMatrix &cTo2) VP_OVERRIDE
Class for generating random numbers with uniform probability density.