Files
rtabmap/api/latest/classrtabmap_1_1Link.html
T

864 lines
53 KiB
HTML

<!-- HTML header for doxygen 1.9.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>RTAB-Map: rtabmap::Link Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="custom.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript">window.RTABMAP_DOC_ROOT="";</script>
<script type="text/javascript" src="../versions.js"></script>
<script type="text/javascript" src="version-switcher.js"></script>
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">DoxygenAwesomeDarkModeToggle.init();</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">RTAB-Map<span id="projectnumber">&#160;0.23.13</span>
</div>
<div id="projectbrief">Real-Time Appearance-Based Mapping</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classrtabmap_1_1Link.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classrtabmap_1_1Link-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">rtabmap::Link Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Directed constraint between two nodes in RTAB-Map's pose graph.
<a href="classrtabmap_1_1Link.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Link_8h_source.html">Link.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a925bb7ca93eb95a3a873b0a9e8d5e91e" id="r_a925bb7ca93eb95a3a873b0a9e8d5e91e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a> { <br />
&#160;&#160;<a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea8f60efd83d5fad3493573bef3d4a8adf">kNeighbor</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eae963042a31afec63e8c0683696ac6791">kGlobalClosure</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea9195217dc75001841fce507de43fb0db">kLocalSpaceClosure</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eae0b352e9cbb32d357ce59f09159c09fb">kLocalTimeClosure</a>
, <br />
&#160;&#160;<a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea878009c73fbfa2736f438b748afbc1f6">kUserClosure</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eaf74a4b0552da7509b16f8c4b8baf85c7">kVirtualClosure</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea8fbb6dbe2d16e19ad8fecb6bac65e9db">kNeighborMerged</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea56caa6c8eeab867bb16f763f3ddbd9b1">kPosePrior</a>
, <br />
&#160;&#160;<a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea22912bbbcacce5ee39e61da7ec4640b9">kLandmark</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea37d186f2447908a27d531be74a2f6983">kGravity</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eaa071317c0618d61e3b2cde25e1095c00">kEnd</a>
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ead52adb0176a83a02833e89111f66497e">kSelfRefLink</a> = 97
, <br />
&#160;&#160;<a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eacc2cbab0ea322149df37addb91cb75ac">kAllWithLandmarks</a> = 98
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eae8ffae7407e28cf7a125f76bea2864a5">kAllWithoutLandmarks</a> = 99
, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea8a720d632258ba1b468af0319ae8e7d4">kUndef</a> = 99
<br />
}</td></tr>
<tr class="memdesc:a925bb7ca93eb95a3a873b0a9e8d5e91e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classrtabmap_1_1Link.html" title="Directed constraint between two nodes in RTAB-Map&#39;s pose graph.">Link</a> category and filter sentinels. <a href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">More...</a><br /></td></tr>
<tr class="separator:a925bb7ca93eb95a3a873b0a9e8d5e91e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2dce9c7a3ef04085d51f702002107c7b" id="r_a2dce9c7a3ef04085d51f702002107c7b"><td class="memItemLeft" align="right" valign="top"><a id="a2dce9c7a3ef04085d51f702002107c7b" name="a2dce9c7a3ef04085d51f702002107c7b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>Link</b> ()</td></tr>
<tr class="memdesc:a2dce9c7a3ef04085d51f702002107c7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor; creates an invalid link (<a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea8a720d632258ba1b468af0319ae8e7d4">kUndef</a>). <br /></td></tr>
<tr class="separator:a2dce9c7a3ef04085d51f702002107c7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f624aa84862d7abafae5cfc7175f885" id="r_a8f624aa84862d7abafae5cfc7175f885"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a8f624aa84862d7abafae5cfc7175f885">Link</a> (int <a class="el" href="classrtabmap_1_1Link.html#a185194e8e766ca979e4de7e179f0e534">from</a>, int <a class="el" href="classrtabmap_1_1Link.html#a8d534b311c37d789276dd58bd7dc89e4">to</a>, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a> <a class="el" href="classrtabmap_1_1Link.html#a17ea666cb54c4f7cce1c80bc2e1950c3">type</a>, const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &amp;<a class="el" href="classrtabmap_1_1Link.html#a49186880bde84ca3dd43c2d95449fbfb">transform</a>, const cv::Mat &amp;infMatrix=cv::Mat::eye(6, 6, CV_64FC1), const cv::Mat &amp;userData=cv::Mat())</td></tr>
<tr class="memdesc:a8f624aa84862d7abafae5cfc7175f885"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a link between two nodes. <br /></td></tr>
<tr class="separator:a8f624aa84862d7abafae5cfc7175f885"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53974a2cea4315106cf12065ace8bb96" id="r_a53974a2cea4315106cf12065ace8bb96"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a53974a2cea4315106cf12065ace8bb96">isValid</a> () const</td></tr>
<tr class="separator:a53974a2cea4315106cf12065ace8bb96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a185194e8e766ca979e4de7e179f0e534" id="r_a185194e8e766ca979e4de7e179f0e534"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a185194e8e766ca979e4de7e179f0e534">from</a> () const</td></tr>
<tr class="separator:a185194e8e766ca979e4de7e179f0e534"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d534b311c37d789276dd58bd7dc89e4" id="r_a8d534b311c37d789276dd58bd7dc89e4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a8d534b311c37d789276dd58bd7dc89e4">to</a> () const</td></tr>
<tr class="separator:a8d534b311c37d789276dd58bd7dc89e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49186880bde84ca3dd43c2d95449fbfb" id="r_a49186880bde84ca3dd43c2d95449fbfb"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a49186880bde84ca3dd43c2d95449fbfb">transform</a> () const</td></tr>
<tr class="separator:a49186880bde84ca3dd43c2d95449fbfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17ea666cb54c4f7cce1c80bc2e1950c3" id="r_a17ea666cb54c4f7cce1c80bc2e1950c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a17ea666cb54c4f7cce1c80bc2e1950c3">type</a> () const</td></tr>
<tr class="separator:a17ea666cb54c4f7cce1c80bc2e1950c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c3d7604ad86aafd6fb954059d8365cd" id="r_a5c3d7604ad86aafd6fb954059d8365cd"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a5c3d7604ad86aafd6fb954059d8365cd">typeName</a> () const</td></tr>
<tr class="separator:a5c3d7604ad86aafd6fb954059d8365cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d41ddd8c11605f5ac72e6295449c42b" id="r_a9d41ddd8c11605f5ac72e6295449c42b"><td class="memItemLeft" align="right" valign="top">const cv::Mat &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a9d41ddd8c11605f5ac72e6295449c42b">infMatrix</a> () const</td></tr>
<tr class="separator:a9d41ddd8c11605f5ac72e6295449c42b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00cecebc9adf3ee5afb66d6ad63871e4" id="r_a00cecebc9adf3ee5afb66d6ad63871e4"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a00cecebc9adf3ee5afb66d6ad63871e4">rotVariance</a> (bool minimum=true) const</td></tr>
<tr class="memdesc:a00cecebc9adf3ee5afb66d6ad63871e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotation variance derived from the information matrix diagonal (roll, pitch, yaw). <br /></td></tr>
<tr class="separator:a00cecebc9adf3ee5afb66d6ad63871e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c4344c01b4f32a8b4a957b979fea84e" id="r_a3c4344c01b4f32a8b4a957b979fea84e"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a3c4344c01b4f32a8b4a957b979fea84e">transVariance</a> (bool minimum=true) const</td></tr>
<tr class="memdesc:a3c4344c01b4f32a8b4a957b979fea84e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translation variance derived from the information matrix diagonal (x, y, z). <br /></td></tr>
<tr class="separator:a3c4344c01b4f32a8b4a957b979fea84e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06e21ed796bfd34560fbfe4d6076127b" id="r_a06e21ed796bfd34560fbfe4d6076127b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a06e21ed796bfd34560fbfe4d6076127b">setFrom</a> (int <a class="el" href="classrtabmap_1_1Link.html#a185194e8e766ca979e4de7e179f0e534">from</a>)</td></tr>
<tr class="separator:a06e21ed796bfd34560fbfe4d6076127b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ded748a1817aafa7c4dede0af361832" id="r_a2ded748a1817aafa7c4dede0af361832"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a2ded748a1817aafa7c4dede0af361832">setTo</a> (int <a class="el" href="classrtabmap_1_1Link.html#a8d534b311c37d789276dd58bd7dc89e4">to</a>)</td></tr>
<tr class="separator:a2ded748a1817aafa7c4dede0af361832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac9001d782f5f91d658e3878a5f92731" id="r_aac9001d782f5f91d658e3878a5f92731"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#aac9001d782f5f91d658e3878a5f92731">setTransform</a> (const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &amp;<a class="el" href="classrtabmap_1_1Link.html#a49186880bde84ca3dd43c2d95449fbfb">transform</a>)</td></tr>
<tr class="separator:aac9001d782f5f91d658e3878a5f92731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd8957f0e5a46e1655ef8e2397991e66" id="r_afd8957f0e5a46e1655ef8e2397991e66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#afd8957f0e5a46e1655ef8e2397991e66">setType</a> (<a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a> <a class="el" href="classrtabmap_1_1Link.html#a17ea666cb54c4f7cce1c80bc2e1950c3">type</a>)</td></tr>
<tr class="separator:afd8957f0e5a46e1655ef8e2397991e66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a82104ae4195beff134811a3a19d939" id="r_a3a82104ae4195beff134811a3a19d939"><td class="memItemLeft" align="right" valign="top"><a id="a3a82104ae4195beff134811a3a19d939" name="a3a82104ae4195beff134811a3a19d939"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInfMatrix</b> (const cv::Mat &amp;infMatrix)</td></tr>
<tr class="memdesc:a3a82104ae4195beff134811a3a19d939"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the 6x6 information matrix (<code>CV_64FC1</code>); diagonal entries must be positive and finite. <br /></td></tr>
<tr class="separator:a3a82104ae4195beff134811a3a19d939"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fce4ae495f2a4f5e0f7ac10551983ac" id="r_a1fce4ae495f2a4f5e0f7ac10551983ac"><td class="memItemLeft" align="right" valign="top">const cv::Mat &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a1fce4ae495f2a4f5e0f7ac10551983ac">userDataRaw</a> () const</td></tr>
<tr class="separator:a1fce4ae495f2a4f5e0f7ac10551983ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdec9d745b1b4679a87b944cd5b48213" id="r_abdec9d745b1b4679a87b944cd5b48213"><td class="memItemLeft" align="right" valign="top">const cv::Mat &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#abdec9d745b1b4679a87b944cd5b48213">userDataCompressed</a> () const</td></tr>
<tr class="separator:abdec9d745b1b4679a87b944cd5b48213"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb075101cafb535fc4a9b74f7afae521" id="r_adb075101cafb535fc4a9b74f7afae521"><td class="memItemLeft" align="right" valign="top"><a id="adb075101cafb535fc4a9b74f7afae521" name="adb075101cafb535fc4a9b74f7afae521"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>uncompressUserData</b> ()</td></tr>
<tr class="memdesc:adb075101cafb535fc4a9b74f7afae521"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompresses user data into <a class="el" href="classrtabmap_1_1Link.html#a1fce4ae495f2a4f5e0f7ac10551983ac">userDataRaw()</a> if compressed data is stored. <br /></td></tr>
<tr class="separator:adb075101cafb535fc4a9b74f7afae521"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac425a90800494da64512011315c47e62" id="r_ac425a90800494da64512011315c47e62"><td class="memItemLeft" align="right" valign="top">cv::Mat&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#ac425a90800494da64512011315c47e62">uncompressUserDataConst</a> () const</td></tr>
<tr class="separator:ac425a90800494da64512011315c47e62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a953a029f601d7ca3efbb12ca22da4542" id="r_a953a029f601d7ca3efbb12ca22da4542"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1Link.html">Link</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a953a029f601d7ca3efbb12ca22da4542">merge</a> (const <a class="el" href="classrtabmap_1_1Link.html">Link</a> &amp;link, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a> outputType) const</td></tr>
<tr class="memdesc:a953a029f601d7ca3efbb12ca22da4542"><td class="mdescLeft">&#160;</td><td class="mdescRight">Chains this link (from → to) with <code>link</code> (to → link.to). <br /></td></tr>
<tr class="separator:a953a029f601d7ca3efbb12ca22da4542"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d5dcb7392f6ac89ca8b4de202ca07d3" id="r_a0d5dcb7392f6ac89ca8b4de202ca07d3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrtabmap_1_1Link.html">Link</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a0d5dcb7392f6ac89ca8b4de202ca07d3">inverse</a> () const</td></tr>
<tr class="separator:a0d5dcb7392f6ac89ca8b4de202ca07d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a1fb9569f6435b5a1c800a935b08f0159" id="r_a1fb9569f6435b5a1c800a935b08f0159"><td class="memItemLeft" align="right" valign="top">static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classrtabmap_1_1Link.html#a1fb9569f6435b5a1c800a935b08f0159">typeName</a> (<a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a> <a class="el" href="classrtabmap_1_1Link.html#a17ea666cb54c4f7cce1c80bc2e1950c3">type</a>)</td></tr>
<tr class="separator:a1fb9569f6435b5a1c800a935b08f0159"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Directed constraint between two nodes in RTAB-Map's pose graph. </p>
<p>A link connects signature <a class="el" href="classrtabmap_1_1Link.html#a185194e8e766ca979e4de7e179f0e534">from()</a> to signature <a class="el" href="classrtabmap_1_1Link.html#a8d534b311c37d789276dd58bd7dc89e4">to()</a> with a relative <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> and an information matrix (inverse covariance) used by graph optimization. Links are stored on <a class="el" href="classrtabmap_1_1Signature.html">Signature</a> objects and persisted in the database; they define odometry chains, loop closures, landmarks, and priors.</p>
<p>The transform is expressed from the <code>from</code> node frame to the <code>to</code> node frame (i.e. pose of <code>to</code> relative to <code>from</code>), unless <a class="el" href="classrtabmap_1_1Link.html#a17ea666cb54c4f7cce1c80bc2e1950c3">type()</a> indicates a special semantics (e.g. <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea56caa6c8eeab867bb16f763f3ddbd9b1">kPosePrior</a>, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea22912bbbcacce5ee39e61da7ec4640b9">kLandmark</a>).</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classrtabmap_1_1Signature.html" title="Represents a node in RTAB-Map&#39;s pose graph.">Signature</a> </dd>
<dd>
<a class="el" href="classrtabmap_1_1Memory.html#a4140effa4830fbe679a51e975f0021a1" title="Adds a graph link between two signatures.">Memory::addLink()</a> </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00054">54</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a925bb7ca93eb95a3a873b0a9e8d5e91e" name="a925bb7ca93eb95a3a873b0a9e8d5e91e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a925bb7ca93eb95a3a873b0a9e8d5e91e">&#9670;&#160;</a></span>Type</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">rtabmap::Link::Type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="classrtabmap_1_1Link.html" title="Directed constraint between two nodes in RTAB-Map&#39;s pose graph.">Link</a> category and filter sentinels. </p>
<p>Values <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ead52adb0176a83a02833e89111f66497e">kSelfRefLink</a>, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eacc2cbab0ea322149df37addb91cb75ac">kAllWithLandmarks</a>, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91eae8ffae7407e28cf7a125f76bea2864a5">kAllWithoutLandmarks</a> and <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea8a720d632258ba1b468af0319ae8e7d4">kUndef</a> are also used as query filters when retrieving links from memory or the database (they are not stored as link types on signatures). </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea8f60efd83d5fad3493573bef3d4a8adf" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea8f60efd83d5fad3493573bef3d4a8adf"></a>kNeighbor&#160;</td><td class="fielddoc"><p>Sequential odometry link between consecutive nodes. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91eae963042a31afec63e8c0683696ac6791" name="a925bb7ca93eb95a3a873b0a9e8d5e91eae963042a31afec63e8c0683696ac6791"></a>kGlobalClosure&#160;</td><td class="fielddoc"><p>Global loop closure added by global loop closure detection (i.e., using bags-of-words to find loop closures with other nodes in WM without using current estimated pose). </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea9195217dc75001841fce507de43fb0db" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea9195217dc75001841fce507de43fb0db"></a>kLocalSpaceClosure&#160;</td><td class="fielddoc"><p>Local loop closure added by proximity detection by space (i.e. using current estimated pose to find loop closures with nearby nodes in WM). </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91eae0b352e9cbb32d357ce59f09159c09fb" name="a925bb7ca93eb95a3a873b0a9e8d5e91eae0b352e9cbb32d357ce59f09159c09fb"></a>kLocalTimeClosure&#160;</td><td class="fielddoc"><p>Local loop closure added by proximity detection by time (i.e. between nodes in STM). </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea878009c73fbfa2736f438b748afbc1f6" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea878009c73fbfa2736f438b748afbc1f6"></a>kUserClosure&#160;</td><td class="fielddoc"><p>User-defined loop closure constraint. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91eaf74a4b0552da7509b16f8c4b8baf85c7" name="a925bb7ca93eb95a3a873b0a9e8d5e91eaf74a4b0552da7509b16f8c4b8baf85c7"></a>kVirtualClosure&#160;</td><td class="fielddoc"><p>Virtual link added to keep the path linked to local map. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea8fbb6dbe2d16e19ad8fecb6bac65e9db" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea8fbb6dbe2d16e19ad8fecb6bac65e9db"></a>kNeighborMerged&#160;</td><td class="fielddoc"><p>Merged neighbor link after graph reduction. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea56caa6c8eeab867bb16f763f3ddbd9b1" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea56caa6c8eeab867bb16f763f3ddbd9b1"></a>kPosePrior&#160;</td><td class="fielddoc"><p>Absolute pose prior in the world frame (<code>from</code> == <code>to</code>). </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea22912bbbcacce5ee39e61da7ec4640b9" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea22912bbbcacce5ee39e61da7ec4640b9"></a>kLandmark&#160;</td><td class="fielddoc"><p>Observation of a landmark: <code>from</code> is the observer node, <code>to</code> is a negative landmark id. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea37d186f2447908a27d531be74a2f6983" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea37d186f2447908a27d531be74a2f6983"></a>kGravity&#160;</td><td class="fielddoc"><p>Gravity direction constraint on the base frame (<code>from</code> == <code>to</code>). </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91eaa071317c0618d61e3b2cde25e1095c00" name="a925bb7ca93eb95a3a873b0a9e8d5e91eaa071317c0618d61e3b2cde25e1095c00"></a>kEnd&#160;</td><td class="fielddoc"><p>Sentinel: number of link types that can be stored. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ead52adb0176a83a02833e89111f66497e" name="a925bb7ca93eb95a3a873b0a9e8d5e91ead52adb0176a83a02833e89111f66497e"></a>kSelfRefLink&#160;</td><td class="fielddoc"><p>Filter: links where <code>from</code> == <code>to</code> (e.g. <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea56caa6c8eeab867bb16f763f3ddbd9b1">kPosePrior</a>, <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea37d186f2447908a27d531be74a2f6983">kGravity</a>). </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91eacc2cbab0ea322149df37addb91cb75ac" name="a925bb7ca93eb95a3a873b0a9e8d5e91eacc2cbab0ea322149df37addb91cb75ac"></a>kAllWithLandmarks&#160;</td><td class="fielddoc"><p>Filter: all link types including <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea22912bbbcacce5ee39e61da7ec4640b9">kLandmark</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91eae8ffae7407e28cf7a125f76bea2864a5" name="a925bb7ca93eb95a3a873b0a9e8d5e91eae8ffae7407e28cf7a125f76bea2864a5"></a>kAllWithoutLandmarks&#160;</td><td class="fielddoc"><p>Filter: all link types except <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea22912bbbcacce5ee39e61da7ec4640b9">kLandmark</a>. </p>
</td></tr>
<tr><td class="fieldname"><a id="a925bb7ca93eb95a3a873b0a9e8d5e91ea8a720d632258ba1b468af0319ae8e7d4" name="a925bb7ca93eb95a3a873b0a9e8d5e91ea8a720d632258ba1b468af0319ae8e7d4"></a>kUndef&#160;</td><td class="fielddoc"><p>Undefined type or invalid link. </p>
</td></tr>
</table>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00064">64</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a8f624aa84862d7abafae5cfc7175f885" name="a8f624aa84862d7abafae5cfc7175f885"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f624aa84862d7abafae5cfc7175f885">&#9670;&#160;</a></span>Link()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">rtabmap::Link::Link </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>to</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a>&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &amp;&#160;</td>
<td class="paramname"><em>transform</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const cv::Mat &amp;&#160;</td>
<td class="paramname"><em>infMatrix</em> = <code>cv::Mat::eye(6,&#160;6,&#160;CV_64FC1)</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const cv::Mat &amp;&#160;</td>
<td class="paramname"><em>userData</em> = <code>cv::Mat()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a link between two nodes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">from</td><td>Source signature id. </td></tr>
<tr><td class="paramname">to</td><td>Target signature id (negative for landmarks when <code>type</code> is <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea22912bbbcacce5ee39e61da7ec4640b9">kLandmark</a>). </td></tr>
<tr><td class="paramname">type</td><td><a class="el" href="classrtabmap_1_1Link.html" title="Directed constraint between two nodes in RTAB-Map&#39;s pose graph.">Link</a> category. </td></tr>
<tr><td class="paramname">transform</td><td>Relative transform from <code>from</code> to <code>to</code>. </td></tr>
<tr><td class="paramname">infMatrix</td><td>6x6 information matrix (inverse covariance) </td></tr>
<tr><td class="paramname">userData</td><td>Optional payload; compressed automatically if not already <code>CV_8UC1</code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a1fb9569f6435b5a1c800a935b08f0159" name="a1fb9569f6435b5a1c800a935b08f0159"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fb9569f6435b5a1c800a935b08f0159">&#9670;&#160;</a></span>typeName() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static std::string rtabmap::Link::typeName </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a>&#160;</td>
<td class="paramname"><em>type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Human-readable name for <code>type</code> (e.g. "Neighbor", "GlobalClosure"). </dd></dl>
</div>
</div>
<a id="a53974a2cea4315106cf12065ace8bb96" name="a53974a2cea4315106cf12065ace8bb96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53974a2cea4315106cf12065ace8bb96">&#9670;&#160;</a></span>isValid()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool rtabmap::Link::isValid </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>True if ids, transform, and type are valid for use in the graph. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00104">104</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a185194e8e766ca979e4de7e179f0e534" name="a185194e8e766ca979e4de7e179f0e534"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a185194e8e766ca979e4de7e179f0e534">&#9670;&#160;</a></span>from()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int rtabmap::Link::from </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Source signature id. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00107">107</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a8d534b311c37d789276dd58bd7dc89e4" name="a8d534b311c37d789276dd58bd7dc89e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d534b311c37d789276dd58bd7dc89e4">&#9670;&#160;</a></span>to()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int rtabmap::Link::to </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Target signature id (negative for a landmark). </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00109">109</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a49186880bde84ca3dd43c2d95449fbfb" name="a49186880bde84ca3dd43c2d95449fbfb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49186880bde84ca3dd43c2d95449fbfb">&#9670;&#160;</a></span>transform()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &amp; rtabmap::Link::transform </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Relative transform, from the <a class="el" href="classrtabmap_1_1Link.html#a185194e8e766ca979e4de7e179f0e534">from()</a> frame to the <a class="el" href="classrtabmap_1_1Link.html#a8d534b311c37d789276dd58bd7dc89e4">to()</a> frame. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00111">111</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a17ea666cb54c4f7cce1c80bc2e1950c3" name="a17ea666cb54c4f7cce1c80bc2e1950c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17ea666cb54c4f7cce1c80bc2e1950c3">&#9670;&#160;</a></span>type()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a> rtabmap::Link::type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classrtabmap_1_1Link.html" title="Directed constraint between two nodes in RTAB-Map&#39;s pose graph.">Link</a> category (see <a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a>). </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00113">113</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a5c3d7604ad86aafd6fb954059d8365cd" name="a5c3d7604ad86aafd6fb954059d8365cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c3d7604ad86aafd6fb954059d8365cd">&#9670;&#160;</a></span>typeName() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string rtabmap::Link::typeName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00114">114</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a9d41ddd8c11605f5ac72e6295449c42b" name="a9d41ddd8c11605f5ac72e6295449c42b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d41ddd8c11605f5ac72e6295449c42b">&#9670;&#160;</a></span>infMatrix()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const cv::Mat &amp; rtabmap::Link::infMatrix </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00115">115</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a00cecebc9adf3ee5afb66d6ad63871e4" name="a00cecebc9adf3ee5afb66d6ad63871e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00cecebc9adf3ee5afb66d6ad63871e4">&#9670;&#160;</a></span>rotVariance()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double rtabmap::Link::rotVariance </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>minimum</em> = <code>true</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Rotation variance derived from the information matrix diagonal (roll, pitch, yaw). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">minimum</td><td>If true, returns the largest diagonal entry (most uncertain axis); if false, returns the smallest non-zero entry. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a3c4344c01b4f32a8b4a957b979fea84e" name="a3c4344c01b4f32a8b4a957b979fea84e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c4344c01b4f32a8b4a957b979fea84e">&#9670;&#160;</a></span>transVariance()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double rtabmap::Link::transVariance </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>minimum</em> = <code>true</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Translation variance derived from the information matrix diagonal (x, y, z). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">minimum</td><td>If true, returns the largest diagonal entry; if false, the smallest non-zero entry. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a06e21ed796bfd34560fbfe4d6076127b" name="a06e21ed796bfd34560fbfe4d6076127b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a06e21ed796bfd34560fbfe4d6076127b">&#9670;&#160;</a></span>setFrom()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void rtabmap::Link::setFrom </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>from</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00129">129</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a2ded748a1817aafa7c4dede0af361832" name="a2ded748a1817aafa7c4dede0af361832"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ded748a1817aafa7c4dede0af361832">&#9670;&#160;</a></span>setTo()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void rtabmap::Link::setTo </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>to</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00130">130</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="aac9001d782f5f91d658e3878a5f92731" name="aac9001d782f5f91d658e3878a5f92731"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac9001d782f5f91d658e3878a5f92731">&#9670;&#160;</a></span>setTransform()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void rtabmap::Link::setTransform </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Transform.html">Transform</a> &amp;&#160;</td>
<td class="paramname"><em>transform</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00131">131</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="afd8957f0e5a46e1655ef8e2397991e66" name="afd8957f0e5a46e1655ef8e2397991e66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd8957f0e5a46e1655ef8e2397991e66">&#9670;&#160;</a></span>setType()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void rtabmap::Link::setType </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a>&#160;</td>
<td class="paramname"><em>type</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00132">132</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="a1fce4ae495f2a4f5e0f7ac10551983ac" name="a1fce4ae495f2a4f5e0f7ac10551983ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fce4ae495f2a4f5e0f7ac10551983ac">&#9670;&#160;</a></span>userDataRaw()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const cv::Mat &amp; rtabmap::Link::userDataRaw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Uncompressed user data, empty unless it was set raw or <a class="el" href="classrtabmap_1_1Link.html#adb075101cafb535fc4a9b74f7afae521">uncompressUserData()</a> was called. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00137">137</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="abdec9d745b1b4679a87b944cd5b48213" name="abdec9d745b1b4679a87b944cd5b48213"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdec9d745b1b4679a87b944cd5b48213">&#9670;&#160;</a></span>userDataCompressed()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const cv::Mat &amp; rtabmap::Link::userDataCompressed </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>User data as stored/persisted, in compressed form. </dd></dl>
<p class="definition">Definition at line <a class="el" href="Link_8h_source.html#l00139">139</a> of file <a class="el" href="Link_8h_source.html">Link.h</a>.</p>
</div>
</div>
<a id="ac425a90800494da64512011315c47e62" name="ac425a90800494da64512011315c47e62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac425a90800494da64512011315c47e62">&#9670;&#160;</a></span>uncompressUserDataConst()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">cv::Mat rtabmap::Link::uncompressUserDataConst </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Uncompressed user data without modifying internal storage. </dd></dl>
</div>
</div>
<a id="a953a029f601d7ca3efbb12ca22da4542" name="a953a029f601d7ca3efbb12ca22da4542"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a953a029f601d7ca3efbb12ca22da4542">&#9670;&#160;</a></span>merge()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classrtabmap_1_1Link.html">Link</a> rtabmap::Link::merge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classrtabmap_1_1Link.html">Link</a> &amp;&#160;</td>
<td class="paramname"><em>link</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91e">Type</a>&#160;</td>
<td class="paramname"><em>outputType</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Chains this link (from → to) with <code>link</code> (to → link.to). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">link</td><td>Second link; must satisfy <code>this-&gt;<a class="el" href="classrtabmap_1_1Link.html#a8d534b311c37d789276dd58bd7dc89e4">to()</a></code> == link.from(). </td></tr>
<tr><td class="paramname">outputType</td><td>Type of the merged link. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Single link from <a class="el" href="classrtabmap_1_1Link.html#a185194e8e766ca979e4de7e179f0e534">from()</a> to <code>link.to()</code> with transform (T_{ac} = T_{ab} T_{bc}) (or null if either input transform is null). Information matrix handling depends on <code>outputType:</code> <ul>
<li><a class="el" href="classrtabmap_1_1Link.html#a925bb7ca93eb95a3a873b0a9e8d5e91ea8fbb6dbe2d16e19ad8fecb6bac65e9db">kNeighborMerged</a>: (\Omega_{ac} = (\Omega_{ab}^{-1} + \Omega_{bc}^{-1})^{-1}) (covariances add when both legs are diagonal and independent).</li>
<li>Other types: keeps the full information matrix of <code>link</code> unless (\Omega_{ab}(0,0) &lt; \Omega_{bc}(0,0)) (i.e. the smaller x information entry). </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a0d5dcb7392f6ac89ca8b4de202ca07d3" name="a0d5dcb7392f6ac89ca8b4de202ca07d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d5dcb7392f6ac89ca8b4de202ca07d3">&#9670;&#160;</a></span>inverse()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classrtabmap_1_1Link.html">Link</a> rtabmap::Link::inverse </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classrtabmap_1_1Link.html" title="Directed constraint between two nodes in RTAB-Map&#39;s pose graph.">Link</a> with swapped endpoints and inverted transform. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>corelib/include/rtabmap/core/<a class="el" href="Link_8h_source.html">Link.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespacertabmap.html">rtabmap</a></li><li class="navelem"><a class="el" href="classrtabmap_1_1Link.html">Link</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>
</html>