MRPT  1.9.9
mrpt::graphslam::detail::CEdgeCounter Class Reference

Detailed Description

Generic class for tracking the total number of edges for different tpes of edges and for storing visualization-related information for each type.

Definition at line 28 of file CEdgeCounter.h.

#include <mrpt/graphslam/misc/CEdgeCounter.h>

Public Types

using iterator = std::map< std::string, int >::iterator
 
using const_iterator = std::map< std::string, int >::const_iterator
 

Public Member Functions

 CEdgeCounter ()
 Constructor class. More...
 
 ~CEdgeCounter ()
 Destructor class. More...
 
void setWindowManagerPtr (mrpt::graphslam::CWindowManager *win_manager)
 Provide the instance with a CWindowManager. More...
 
void setRemovedEdges (int removed_edges)
 State how many of the existing edges have been removed. More...
 
void setLoopClosureEdgesManually (int num_loop_closures)
 Method for manually setting the number of loop closures registered so far. More...
 
int getLoopClosureEdges () const
 Returns the edges that form loop closures in the current graph. More...
 
int getTotalNumOfEdges () const
 Return the total amount of registered edges. More...
 
void getTotalNumOfEdges (int *total_num_edges) const
 Return the total amount of registered edges. More...
 
int getNumForEdgeType (const std::string &name) const
 Return the number of edges for the specified type. More...
 
void getNumForEdgeType (const std::string &name, int *total_num)
 Return the number of edges for the specified type. More...
 
void setEdgesManually (const std::string &name, int num_of_edges)
 Set number of a specific edge type manually. More...
 
void addEdge (const std::string &name, bool is_loop_closure=false, bool is_new=false)
 Increment the number of edges for the specified type. More...
 
void addEdgeType (const std::string &name)
 Explicitly register a new edge type. More...
 
void clearAllEdges ()
 Reset the state of the CEdgeCounter instance. More...
 
void dumpToConsole () const
 Dump a report of the registered, so far, edges to the console. More...
 
void getAsString (std::string *str_out) const
 Fill the provided string with a detailed report of the registered, so far, edges. More...
 
std::string getAsString () const
 Return a detailed report of the registered, so far, edges in a string representation. More...
 
void setTextMessageParams (const std::map< std::string, double > &name_to_offset_y, const std::map< std::string, int > &name_to_text_index)
 Add the textMessage parameters to the object All the names in the given std::maps have to be already specified and added in the object via addEdge with is_new=true or addEdgeType. More...
 
void setTextMessageParams (const std::map< std::string, double > &name_to_offset_y, const std::map< std::string, int > &name_to_text_index, const double &offset_y_total_edges, const int &text_index_total_edges, const double &offset_y_loop_closures, const int &text_index_loop_closures)
 Handle the extra visualization parameters for the total number of edges and for loop closures and then passes execution to the other setTextMessageParams function. More...
 
iterator begin ()
 Instance Iterators. More...
 
const_iterator cbegin () const
 
iterator end ()
 
const_iterator cend () const
 

Private Member Functions

void initCEdgeCounter ()
 Initialization method to be called from the various Constructors. More...
 
void updateTextMessages () const
 Update the given CDisplayWindow3D with the edges registered so far. More...
 

Private Attributes

mrpt::gui::CDisplayWindow3Dm_win
 
mrpt::graphslam::CWindowManagerm_win_manager
 
std::map< std::string, int > m_name_to_edges_num
 Map edge name <=> num of edges. More...
 
int m_num_loop_closures
 
int m_unique_edges
 
std::map< std::string, double > m_name_to_offset_y
 
std::map< std::string, int > m_name_to_text_index
 
bool m_has_read_textmessage_params
 
bool m_display_total_edges
 
bool m_display_loop_closures
 
int m_offset_y_total_edges
 
int m_offset_y_loop_closures
 
int m_text_index_total_edges
 
int m_text_index_loop_closures
 

Member Typedef Documentation

◆ const_iterator

◆ iterator

Definition at line 31 of file CEdgeCounter.h.

Constructor & Destructor Documentation

◆ CEdgeCounter()

CEdgeCounter::CEdgeCounter ( )

Constructor class.

Definition at line 16 of file CEdgeCounter.cpp.

References initCEdgeCounter().

◆ ~CEdgeCounter()

CEdgeCounter::~CEdgeCounter ( )

Destructor class.

Definition at line 17 of file CEdgeCounter.cpp.

Member Function Documentation

◆ addEdge()

void CEdgeCounter::addEdge ( const std::string name,
bool  is_loop_closure = false,
bool  is_new = false 
)

Increment the number of edges for the specified type.

Exceptions
std::exceptionIf edge exists and is_new is True
See also
setEdgesManually

Definition at line 134 of file CEdgeCounter.cpp.

References mrpt::format(), m_has_read_textmessage_params, m_name_to_edges_num, m_num_loop_closures, m_win_manager, THROW_EXCEPTION, and updateTextMessages().

◆ addEdgeType()

void CEdgeCounter::addEdgeType ( const std::string name)

Explicitly register a new edge type.

Definition at line 191 of file CEdgeCounter.cpp.

References mrpt::format(), m_name_to_edges_num, and THROW_EXCEPTION.

◆ begin()

iterator mrpt::graphslam::detail::CEdgeCounter::begin ( )
inline

Instance Iterators.

Definition at line 140 of file CEdgeCounter.h.

References m_name_to_edges_num.

◆ cbegin()

const_iterator mrpt::graphslam::detail::CEdgeCounter::cbegin ( ) const
inline

Definition at line 141 of file CEdgeCounter.h.

References m_name_to_edges_num.

◆ cend()

const_iterator mrpt::graphslam::detail::CEdgeCounter::cend ( ) const
inline

Definition at line 143 of file CEdgeCounter.h.

References m_name_to_edges_num.

◆ clearAllEdges()

void CEdgeCounter::clearAllEdges ( )

◆ dumpToConsole()

void CEdgeCounter::dumpToConsole ( ) const

Dump a report of the registered, so far, edges to the console.

See also
getAsString

Definition at line 221 of file CEdgeCounter.cpp.

References getAsString().

◆ end()

iterator mrpt::graphslam::detail::CEdgeCounter::end ( )
inline

Definition at line 142 of file CEdgeCounter.h.

References m_name_to_edges_num.

◆ getAsString() [1/2]

void CEdgeCounter::getAsString ( std::string str_out) const

Fill the provided string with a detailed report of the registered, so far, edges.

Definition at line 227 of file CEdgeCounter.cpp.

References getLoopClosureEdges(), getTotalNumOfEdges(), m_name_to_edges_num, and m_unique_edges.

◆ getAsString() [2/2]

std::string CEdgeCounter::getAsString ( ) const

Return a detailed report of the registered, so far, edges in a string representation.

Definition at line 253 of file CEdgeCounter.cpp.

Referenced by dumpToConsole().

◆ getLoopClosureEdges()

int CEdgeCounter::getLoopClosureEdges ( ) const

Returns the edges that form loop closures in the current graph.

Definition at line 62 of file CEdgeCounter.cpp.

References m_num_loop_closures.

Referenced by getAsString().

◆ getNumForEdgeType() [1/2]

int CEdgeCounter::getNumForEdgeType ( const std::string name) const

Return the number of edges for the specified type.

Exceptions
std::exceptionIf edge is not found
See also
getTotalNumOfEdges

Definition at line 85 of file CEdgeCounter.cpp.

References m_name_to_edges_num, and THROW_EXCEPTION.

◆ getNumForEdgeType() [2/2]

void CEdgeCounter::getNumForEdgeType ( const std::string name,
int *  total_num 
)

Return the number of edges for the specified type.

Exceptions
std::exceptionIf edge is not found
See also
getTotalNumOfEdges

Definition at line 99 of file CEdgeCounter.cpp.

References m_name_to_edges_num, and THROW_EXCEPTION.

◆ getTotalNumOfEdges() [1/2]

int CEdgeCounter::getTotalNumOfEdges ( ) const

Return the total amount of registered edges.

See also
getNumForEdgeType, getLoopClosureEdges

Definition at line 63 of file CEdgeCounter.cpp.

References mrpt::math::sum().

Referenced by getAsString(), setRemovedEdges(), and updateTextMessages().

◆ getTotalNumOfEdges() [2/2]

void CEdgeCounter::getTotalNumOfEdges ( int *  total_num_edges) const

Return the total amount of registered edges.

See also
getNumForEdgeType, getLoopClosureEdges

Definition at line 71 of file CEdgeCounter.cpp.

References ASSERTDEB_, m_name_to_edges_num, and mrpt::math::sum().

◆ initCEdgeCounter()

void CEdgeCounter::initCEdgeCounter ( )
private

◆ setEdgesManually()

void CEdgeCounter::setEdgesManually ( const std::string name,
int  num_of_edges 
)

Set number of a specific edge type manually.

Handy for not having to call addEdge multiple times in a row.

See also
addEdge

Definition at line 113 of file CEdgeCounter.cpp.

References m_has_read_textmessage_params, m_name_to_edges_num, m_win_manager, THROW_EXCEPTION, and updateTextMessages().

◆ setLoopClosureEdgesManually()

void CEdgeCounter::setLoopClosureEdgesManually ( int  num_loop_closures)

Method for manually setting the number of loop closures registered so far.

Definition at line 57 of file CEdgeCounter.cpp.

References m_num_loop_closures.

◆ setRemovedEdges()

void CEdgeCounter::setRemovedEdges ( int  removed_edges)

State how many of the existing edges have been removed.

Method is to be called after CNetworkOfPoses::collapseDuplicatedEdges method has been executed.

Definition at line 52 of file CEdgeCounter.cpp.

References getTotalNumOfEdges(), and m_unique_edges.

◆ setTextMessageParams() [1/2]

void CEdgeCounter::setTextMessageParams ( const std::map< std::string, double > &  name_to_offset_y,
const std::map< std::string, int > &  name_to_text_index 
)

Add the textMessage parameters to the object All the names in the given std::maps have to be already specified and added in the object via addEdge with is_new=true or addEdgeType.

Exceptions
std::exceptionIf a name in the provided std::map doesn't already exist

Definition at line 263 of file CEdgeCounter.cpp.

References ASSERTDEB_EQUAL_, ASSERTDEBMSG_, m_has_read_textmessage_params, m_name_to_edges_num, m_name_to_offset_y, m_name_to_text_index, m_win_manager, and THROW_EXCEPTION.

Referenced by setTextMessageParams().

◆ setTextMessageParams() [2/2]

void CEdgeCounter::setTextMessageParams ( const std::map< std::string, double > &  name_to_offset_y,
const std::map< std::string, int > &  name_to_text_index,
const double &  offset_y_total_edges,
const int &  text_index_total_edges,
const double &  offset_y_loop_closures,
const int &  text_index_loop_closures 
)

Handle the extra visualization parameters for the total number of edges and for loop closures and then passes execution to the other setTextMessageParams function.

Definition at line 301 of file CEdgeCounter.cpp.

References m_display_loop_closures, m_display_total_edges, m_offset_y_loop_closures, m_offset_y_total_edges, m_text_index_loop_closures, m_text_index_total_edges, and setTextMessageParams().

◆ setWindowManagerPtr()

void CEdgeCounter::setWindowManagerPtr ( mrpt::graphslam::CWindowManager win_manager)

Provide the instance with a CWindowManager.

Definition at line 39 of file CEdgeCounter.cpp.

References ASSERTDEB_, m_win, m_win_manager, MRPT_END, MRPT_START, and mrpt::graphslam::CWindowManager::win.

◆ updateTextMessages()

Member Data Documentation

◆ m_display_loop_closures

bool mrpt::graphslam::detail::CEdgeCounter::m_display_loop_closures
private

◆ m_display_total_edges

bool mrpt::graphslam::detail::CEdgeCounter::m_display_total_edges
private

◆ m_has_read_textmessage_params

bool mrpt::graphslam::detail::CEdgeCounter::m_has_read_textmessage_params
private

◆ m_name_to_edges_num

std::map<std::string, int> mrpt::graphslam::detail::CEdgeCounter::m_name_to_edges_num
private

Map edge name <=> num of edges.

Tracking number of edges

Definition at line 160 of file CEdgeCounter.h.

Referenced by addEdge(), addEdgeType(), begin(), cbegin(), cend(), clearAllEdges(), end(), getAsString(), getNumForEdgeType(), getTotalNumOfEdges(), setEdgesManually(), setTextMessageParams(), and updateTextMessages().

◆ m_name_to_offset_y

std::map<std::string, double> mrpt::graphslam::detail::CEdgeCounter::m_name_to_offset_y
private

Definition at line 165 of file CEdgeCounter.h.

Referenced by clearAllEdges(), setTextMessageParams(), and updateTextMessages().

◆ m_name_to_text_index

std::map<std::string, int> mrpt::graphslam::detail::CEdgeCounter::m_name_to_text_index
private

Definition at line 166 of file CEdgeCounter.h.

Referenced by clearAllEdges(), setTextMessageParams(), and updateTextMessages().

◆ m_num_loop_closures

int mrpt::graphslam::detail::CEdgeCounter::m_num_loop_closures
private

◆ m_offset_y_loop_closures

int mrpt::graphslam::detail::CEdgeCounter::m_offset_y_loop_closures
private

Definition at line 173 of file CEdgeCounter.h.

Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().

◆ m_offset_y_total_edges

int mrpt::graphslam::detail::CEdgeCounter::m_offset_y_total_edges
private

Definition at line 173 of file CEdgeCounter.h.

Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().

◆ m_text_index_loop_closures

int mrpt::graphslam::detail::CEdgeCounter::m_text_index_loop_closures
private

Definition at line 174 of file CEdgeCounter.h.

Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().

◆ m_text_index_total_edges

int mrpt::graphslam::detail::CEdgeCounter::m_text_index_total_edges
private

Definition at line 174 of file CEdgeCounter.h.

Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().

◆ m_unique_edges

int mrpt::graphslam::detail::CEdgeCounter::m_unique_edges
private

Definition at line 162 of file CEdgeCounter.h.

Referenced by getAsString(), initCEdgeCounter(), and setRemovedEdges().

◆ m_win

mrpt::gui::CDisplayWindow3D* mrpt::graphslam::detail::CEdgeCounter::m_win
private

Definition at line 153 of file CEdgeCounter.h.

Referenced by initCEdgeCounter(), setWindowManagerPtr(), and updateTextMessages().

◆ m_win_manager

mrpt::graphslam::CWindowManager* mrpt::graphslam::detail::CEdgeCounter::m_win_manager
private



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020