SaDVIO
Public Member Functions | Public Attributes | List of all members
isae::Mesher Class Reference

A class to handles 3D meshing via 2D triangulation on successive KFs. More...

#include <mesher.h>

Public Member Functions

 Mesher (std::string slam_mode, double ZNCC_tsh, double max_length_tsh)
 
std::vector< FeatPolygoncreateMesh2D (std::shared_ptr< ImageSensor > sensor)
 Create a 2D mesh for a given image sensor. More...
 
std::vector< cv::Vec6f > computeMesh2D (const cv::Size img_size, const std::vector< cv::Point2f > p2f_to_triangulate)
 Compute the Delaunnay triangulation of a set of openCV points in an image. More...
 
void addNewKF (std::shared_ptr< Frame > frame)
 add a new KF in the queue (for the thread) More...
 
bool getNewKf ()
 
void run ()
 The thread function. More...
 

Public Attributes

std::queue< std::shared_ptr< Frame > > _kf_queue
 The queue of keyframes to process. More...
 
std::shared_ptr< Frame_curr_kf
 The current keyframe being processed. More...
 
std::shared_ptr< Mesh3D_mesh_3d
 The 3D mesh object. More...
 
std::string _slam_mode
 The SLAM mode (e.g., "nofov", "bimono", etc.) More...
 
double _avg_mesh_t
 Average time taken to process a mesh update for profiling. More...
 
int _n_kf
 Number of keyframes processed for profiling. More...
 
std::mutex _mesher_mtx
 

Detailed Description

A class to handles 3D meshing via 2D triangulation on successive KFs.

It works as a thread that receives new KFs and computes the 2D mesh for each image sensor then update the 3D Mesh accordingly

Constructor & Destructor Documentation

◆ Mesher()

isae::Mesher::Mesher ( std::string  slam_mode,
double  ZNCC_tsh,
double  max_length_tsh 
)

Member Function Documentation

◆ addNewKF()

void isae::Mesher::addNewKF ( std::shared_ptr< Frame frame)

add a new KF in the queue (for the thread)

◆ computeMesh2D()

std::vector< cv::Vec6f > isae::Mesher::computeMesh2D ( const cv::Size  img_size,
const std::vector< cv::Point2f >  p2f_to_triangulate 
)

Compute the Delaunnay triangulation of a set of openCV points in an image.

◆ createMesh2D()

std::vector< FeatPolygon > isae::Mesher::createMesh2D ( std::shared_ptr< ImageSensor sensor)

Create a 2D mesh for a given image sensor.

◆ getNewKf()

bool isae::Mesher::getNewKf ( )

◆ run()

void isae::Mesher::run ( )

The thread function.

Member Data Documentation

◆ _avg_mesh_t

double isae::Mesher::_avg_mesh_t

Average time taken to process a mesh update for profiling.

◆ _curr_kf

std::shared_ptr<Frame> isae::Mesher::_curr_kf

The current keyframe being processed.

◆ _kf_queue

std::queue<std::shared_ptr<Frame> > isae::Mesher::_kf_queue

The queue of keyframes to process.

◆ _mesh_3d

std::shared_ptr<Mesh3D> isae::Mesher::_mesh_3d

The 3D mesh object.

◆ _mesher_mtx

std::mutex isae::Mesher::_mesher_mtx
mutable

◆ _n_kf

int isae::Mesher::_n_kf

Number of keyframes processed for profiling.

◆ _slam_mode

std::string isae::Mesher::_slam_mode

The SLAM mode (e.g., "nofov", "bimono", etc.)


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