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 32 of file CEdgeCounter.h.
#include <mrpt/graphslam/misc/CEdgeCounter.h>
Public Types | |
typedef std::map< std::string, int >::iterator | iterator |
typedef std::map< std::string, int >::const_iterator | 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 | begin () const |
iterator | end () |
const_iterator | end () 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::CDisplayWindow3D * | m_win |
mrpt::graphslam::CWindowManager * | m_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 |
typedef std::map<std::string, int>::const_iterator mrpt::graphslam::detail::CEdgeCounter::const_iterator |
Definition at line 35 of file CEdgeCounter.h.
typedef std::map<std::string, int>::iterator mrpt::graphslam::detail::CEdgeCounter::iterator |
Definition at line 34 of file CEdgeCounter.h.
CEdgeCounter::CEdgeCounter | ( | ) |
CEdgeCounter::~CEdgeCounter | ( | ) |
Destructor class.
Definition at line 22 of file CEdgeCounter.cpp.
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.
std::exception | If edge exists and is_new is True |
Definition at line 127 of file CEdgeCounter.cpp.
References mrpt::mrpt::format(), m_has_read_textmessage_params, m_name_to_edges_num, m_num_loop_closures, m_win_manager, THROW_EXCEPTION, and updateTextMessages().
void CEdgeCounter::addEdgeType | ( | const std::string & | name | ) |
Explicitly register a new edge type.
Definition at line 169 of file CEdgeCounter.cpp.
References mrpt::mrpt::format(), m_name_to_edges_num, and THROW_EXCEPTION.
|
inline |
Instance Iterators.
Definition at line 143 of file CEdgeCounter.h.
|
inline |
Definition at line 146 of file CEdgeCounter.h.
void CEdgeCounter::clearAllEdges | ( | ) |
Reset the state of the CEdgeCounter instance.
Definition at line 182 of file CEdgeCounter.cpp.
References m_display_loop_closures, m_display_total_edges, m_has_read_textmessage_params, m_name_to_edges_num, m_name_to_offset_y, m_name_to_text_index, and m_num_loop_closures.
Referenced by initCEdgeCounter().
void CEdgeCounter::dumpToConsole | ( | ) | const |
Dump a report of the registered, so far, edges to the console.
Definition at line 194 of file CEdgeCounter.cpp.
References getAsString().
|
inline |
Definition at line 149 of file CEdgeCounter.h.
|
inline |
Definition at line 152 of file CEdgeCounter.h.
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 199 of file CEdgeCounter.cpp.
References getLoopClosureEdges(), getTotalNumOfEdges(), m_name_to_edges_num, and m_unique_edges.
std::string CEdgeCounter::getAsString | ( | ) | const |
Return a detailed report of the registered, so far, edges in a string representation.
Definition at line 220 of file CEdgeCounter.cpp.
Referenced by dumpToConsole().
int CEdgeCounter::getLoopClosureEdges | ( | ) | const |
Returns the edges that form loop closures in the current graph.
Definition at line 66 of file CEdgeCounter.cpp.
References m_num_loop_closures.
Referenced by getAsString().
int CEdgeCounter::getNumForEdgeType | ( | const std::string & | name | ) | const |
Return the number of edges for the specified type.
std::exception | If edge is not found |
Definition at line 88 of file CEdgeCounter.cpp.
References m_name_to_edges_num, and THROW_EXCEPTION.
void CEdgeCounter::getNumForEdgeType | ( | const std::string & | name, |
int * | total_num | ||
) |
Return the number of edges for the specified type.
std::exception | If edge is not found |
Definition at line 99 of file CEdgeCounter.cpp.
References m_name_to_edges_num, and THROW_EXCEPTION.
int CEdgeCounter::getTotalNumOfEdges | ( | ) | const |
Return the total amount of registered edges.
Definition at line 70 of file CEdgeCounter.cpp.
References mrpt::math::sum().
Referenced by getAsString(), setRemovedEdges(), and updateTextMessages().
void CEdgeCounter::getTotalNumOfEdges | ( | int * | total_num_edges | ) | const |
Return the total amount of registered edges.
Definition at line 77 of file CEdgeCounter.cpp.
References ASSERT_, m_name_to_edges_num, and mrpt::math::sum().
|
private |
Initialization method to be called from the various Constructors.
Definition at line 24 of file CEdgeCounter.cpp.
References clearAllEdges(), m_display_loop_closures, m_display_total_edges, m_has_read_textmessage_params, m_offset_y_loop_closures, m_offset_y_total_edges, m_text_index_loop_closures, m_text_index_total_edges, m_unique_edges, m_win, and m_win_manager.
Referenced by CEdgeCounter().
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.
Definition at line 111 of file CEdgeCounter.cpp.
References m_has_read_textmessage_params, m_name_to_edges_num, m_win_manager, THROW_EXCEPTION, and updateTextMessages().
void CEdgeCounter::setLoopClosureEdgesManually | ( | int | num_loop_closures | ) |
Method for manually setting the number of loop closures registered so far.
Definition at line 62 of file CEdgeCounter.cpp.
References m_num_loop_closures.
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 58 of file CEdgeCounter.cpp.
References getTotalNumOfEdges(), and m_unique_edges.
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.
std::exception | If a name in the provided std::map doesn't already exist |
Definition at line 229 of file CEdgeCounter.cpp.
References ASSERT_EQUAL_, ASSERTMSG_, 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().
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 262 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().
void CEdgeCounter::setWindowManagerPtr | ( | mrpt::graphslam::CWindowManager * | win_manager | ) |
Provide the instance with a CWindowManager.
Definition at line 46 of file CEdgeCounter.cpp.
References ASSERT_, m_win, m_win_manager, MRPT_END, MRPT_START, and mrpt::graphslam::CWindowManager::win.
|
private |
Update the given CDisplayWindow3D with the edges registered so far.
Definition at line 285 of file CEdgeCounter.cpp.
References mrpt::graphslam::CWindowManager::addTextMessage(), ASSERT_, ASSERT_EQUAL_, mrpt::gui::CDisplayWindow3D::forceRepaint(), getTotalNumOfEdges(), m_display_loop_closures, m_display_total_edges, m_has_read_textmessage_params, m_name_to_edges_num, m_name_to_offset_y, m_name_to_text_index, m_num_loop_closures, m_offset_y_loop_closures, m_offset_y_total_edges, m_text_index_loop_closures, m_text_index_total_edges, m_win, and m_win_manager.
Referenced by addEdge(), and setEdgesManually().
|
private |
Definition at line 184 of file CEdgeCounter.h.
Referenced by clearAllEdges(), initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 184 of file CEdgeCounter.h.
Referenced by clearAllEdges(), initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 181 of file CEdgeCounter.h.
Referenced by addEdge(), clearAllEdges(), initCEdgeCounter(), setEdgesManually(), setTextMessageParams(), and updateTextMessages().
|
private |
Map edge name <=> num of edges.
Tracking number of edges
Definition at line 173 of file CEdgeCounter.h.
Referenced by addEdge(), addEdgeType(), clearAllEdges(), getAsString(), getNumForEdgeType(), getTotalNumOfEdges(), setEdgesManually(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 178 of file CEdgeCounter.h.
Referenced by clearAllEdges(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 179 of file CEdgeCounter.h.
Referenced by clearAllEdges(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 173 of file CEdgeCounter.h.
Referenced by addEdge(), clearAllEdges(), getLoopClosureEdges(), setLoopClosureEdgesManually(), and updateTextMessages().
|
private |
Definition at line 185 of file CEdgeCounter.h.
Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 185 of file CEdgeCounter.h.
Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 186 of file CEdgeCounter.h.
Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 186 of file CEdgeCounter.h.
Referenced by initCEdgeCounter(), setTextMessageParams(), and updateTextMessages().
|
private |
Definition at line 175 of file CEdgeCounter.h.
Referenced by getAsString(), initCEdgeCounter(), and setRemovedEdges().
|
private |
Definition at line 166 of file CEdgeCounter.h.
Referenced by initCEdgeCounter(), setWindowManagerPtr(), and updateTextMessages().
|
private |
Definition at line 167 of file CEdgeCounter.h.
Referenced by addEdge(), initCEdgeCounter(), setEdgesManually(), setTextMessageParams(), setWindowManagerPtr(), and updateTextMessages().
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |