<divclass="line"><aid="l00005"name="l00005"></a><spanclass="lineno"> 5</span><spanclass="comment">Redistribution and use in source and binary forms, with or without</span></div>
<divclass="line"><aid="l00006"name="l00006"></a><spanclass="lineno"> 6</span><spanclass="comment">modification, are permitted provided that the following conditions are met:</span></div>
<divclass="line"><aid="l00007"name="l00007"></a><spanclass="lineno"> 7</span><spanclass="comment"> * Redistributions of source code must retain the above copyright</span></div>
<divclass="line"><aid="l00008"name="l00008"></a><spanclass="lineno"> 8</span><spanclass="comment"> notice, this list of conditions and the following disclaimer.</span></div>
<divclass="line"><aid="l00009"name="l00009"></a><spanclass="lineno"> 9</span><spanclass="comment"> * Redistributions in binary form must reproduce the above copyright</span></div>
<divclass="line"><aid="l00010"name="l00010"></a><spanclass="lineno"> 10</span><spanclass="comment"> notice, this list of conditions and the following disclaimer in the</span></div>
<divclass="line"><aid="l00011"name="l00011"></a><spanclass="lineno"> 11</span><spanclass="comment"> documentation and/or other materials provided with the distribution.</span></div>
<divclass="line"><aid="l00012"name="l00012"></a><spanclass="lineno"> 12</span><spanclass="comment"> * Neither the name of the Universite de Sherbrooke nor the</span></div>
<divclass="line"><aid="l00013"name="l00013"></a><spanclass="lineno"> 13</span><spanclass="comment"> names of its contributors may be used to endorse or promote products</span></div>
<divclass="line"><aid="l00014"name="l00014"></a><spanclass="lineno"> 14</span><spanclass="comment"> derived from this software without specific prior written permission.</span></div>
<divclass="line"><aid="l00016"name="l00016"></a><spanclass="lineno"> 16</span><spanclass="comment">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND</span></div>
<divclass="line"><aid="l00017"name="l00017"></a><spanclass="lineno"> 17</span><spanclass="comment">ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span></div>
<divclass="line"><aid="l00018"name="l00018"></a><spanclass="lineno"> 18</span><spanclass="comment">WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span></div>
<divclass="line"><aid="l00019"name="l00019"></a><spanclass="lineno"> 19</span><spanclass="comment">DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY</span></div>
<divclass="line"><aid="l00020"name="l00020"></a><spanclass="lineno"> 20</span><spanclass="comment">DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</span></div>
<divclass="line"><aid="l00021"name="l00021"></a><spanclass="lineno"> 21</span><spanclass="comment">(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span></div>
<divclass="line"><aid="l00022"name="l00022"></a><spanclass="lineno"> 22</span><spanclass="comment">LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND</span></div>
<divclass="line"><aid="l00023"name="l00023"></a><spanclass="lineno"> 23</span><spanclass="comment">ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
<divclass="line"><aid="l00024"name="l00024"></a><spanclass="lineno"> 24</span><spanclass="comment">(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span></div>
<divclass="line"><aid="l00025"name="l00025"></a><spanclass="lineno"> 25</span><spanclass="comment">SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<divclass="ttc"id="aclassrtabmap_1_1CameraModel_html"><divclass="ttname"><ahref="classrtabmap_1_1CameraModel.html">rtabmap::CameraModel</a></div><divclass="ttdoc">Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection,...</div><divclass="ttdef"><b>Definition</b><ahref="CameraModel_8h_source.html#l00052">CameraModel.h:53</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1FeatureBA_html"><divclass="ttname"><ahref="classrtabmap_1_1FeatureBA.html">rtabmap::FeatureBA</a></div><divclass="ttdoc">A single bundle adjustment feature observation: one keypoint seen in one frame.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00050">Optimizer.h:51</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1FeatureBA_html_a7db630b2f418b05d2fbd772d1caadf48"><divclass="ttname"><ahref="classrtabmap_1_1FeatureBA.html#a7db630b2f418b05d2fbd772d1caadf48">rtabmap::FeatureBA::descriptor</a></div><divclass="ttdeci">cv::Mat descriptor</div><divclass="ttdoc">Optional descriptor for the keypoint (used when re-matching is enabled).</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00063">Optimizer.h:63</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1FeatureBA_html_a8db953b6f93249d5c28c25073cd4e095"><divclass="ttname"><ahref="classrtabmap_1_1FeatureBA.html#a8db953b6f93249d5c28c25073cd4e095">rtabmap::FeatureBA::cameraIndex</a></div><divclass="ttdeci">int cameraIndex</div><divclass="ttdoc">Index into the frame's camera model list for multi-camera rigs.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00064">Optimizer.h:64</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1FeatureBA_html_ad48600a5b6ed17e7713f1485c4317948"><divclass="ttname"><ahref="classrtabmap_1_1FeatureBA.html#ad48600a5b6ed17e7713f1485c4317948">rtabmap::FeatureBA::depth</a></div><divclass="ttdeci">float depth</div><divclass="ttdoc">Depth at kpt in meters, or 0 if unknown (monocular).</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00062">Optimizer.h:62</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Link_html"><divclass="ttname"><ahref="classrtabmap_1_1Link.html">rtabmap::Link</a></div><divclass="ttdoc">Directed constraint between two nodes in RTAB-Map's pose graph.</div><divclass="ttdef"><b>Definition</b><ahref="Link_8h_source.html#l00054">Link.h:55</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html">rtabmap::Optimizer</a></div><divclass="ttdoc">Abstract base for pose-graph and bundle-adjustment optimizers.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00087">Optimizer.h:88</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a0a942bd7902c8d2f9444b8eba6a648a3"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a0a942bd7902c8d2f9444b8eba6a648a3">rtabmap::Optimizer::parseParameters</a></div><divclass="ttdeci">virtual void parseParameters(const ParametersMap &parameters)</div><divclass="ttdoc">Reads shared knobs from parameters and applies them to this instance.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a278f42e0d250085ac6fe9ed425627acf"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a278f42e0d250085ac6fe9ed425627acf">rtabmap::Optimizer::optimizeIncremental</a></div><divclass="ttdeci">std::map< int, Transform > optimizeIncremental(int rootId, const std::map< int, Transform >&poses, const std::multimap< int, Link >&constraints, std::list< std::map< int, Transform >> *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)</div><divclass="ttdoc">Pose-graph optimization that grows the graph one node at a time.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a29ba07e1e829ae616d82756977161c9f"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a29ba07e1e829ae616d82756977161c9f">rtabmap::Optimizer::isRobust</a></div><divclass="ttdeci">bool isRobust() const</div><divclass="ttdoc">If true, use a robust kernel / switchable factors against bad loop closures.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00146">Optimizer.h:146</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a2f7cbdebed9787ffa6b0b30536dfa1a0"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a2f7cbdebed9787ffa6b0b30536dfa1a0">rtabmap::Optimizer::optimizeBA</a></div><divclass="ttdeci">std::map< int, Transform > optimizeBA(int rootId, const std::map< int, Transform >&poses, const std::multimap< int, Link >&links, const std::map< int, Signature >&signatures, std::map< int, cv::Point3f >&points3DMap, std::map< int, std::map< int, FeatureBA >>&wordReferences, bool rematchFeatures=false, const ParametersMap &registrationParameters=ParametersMap())</div><divclass="ttdoc">BA wrapper that derives camera models and correspondences from signatures.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a32f53d408ef0372c5c196ee89ff5ad79"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a32f53d408ef0372c5c196ee89ff5ad79">rtabmap::Optimizer::landmarksIgnored</a></div><divclass="ttdeci">bool landmarksIgnored() const</div><divclass="ttdoc">If true, landmark/marker observations are dropped.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00148">Optimizer.h:148</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a3bca4e3df1048f8bbad9b3b9473924a2"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a3bca4e3df1048f8bbad9b3b9473924a2">rtabmap::Optimizer::epsilon</a></div><divclass="ttdeci">double epsilon() const</div><divclass="ttdoc">Convergence threshold on cost decrease.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00145">Optimizer.h:145</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a4477c9a5b6651729944726465b5eba7f"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a4477c9a5b6651729944726465b5eba7f">rtabmap::Optimizer::getConnectedGraph</a></div><divclass="ttdeci">void getConnectedGraph(int fromId, const std::map< int, Transform >&posesIn, const std::multimap< int, Link >&linksIn, std::map< int, Transform >&posesOut, std::multimap< int, Link >&linksOut) const</div><divclass="ttdoc">Extracts the connected component reachable from fromId.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a51485674608bbf910922ecee43cc13aa"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a51485674608bbf910922ecee43cc13aa">rtabmap::Optimizer::isSlam2d</a></div><divclass="ttdeci">bool isSlam2d() const</div><divclass="ttdoc">True if optimizing in SE(2) instead of SE(3).</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00143">Optimizer.h:143</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a78b457bec2cdb7bdd320e2bfcca759df"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a78b457bec2cdb7bdd320e2bfcca759df">rtabmap::Optimizer::create</a></div><divclass="ttdeci">static Optimizer * create(const ParametersMap &parameters)</div><divclass="ttdoc">Factory: build an optimizer from a ParametersMap.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_a8bb6372ce4c67fd9b8d54f692ac34238"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#a8bb6372ce4c67fd9b8d54f692ac34238">rtabmap::Optimizer::isCovarianceIgnored</a></div><divclass="ttdeci">bool isCovarianceIgnored() const</div><divclass="ttdoc">If true, all edges share an identity information matrix.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00144">Optimizer.h:144</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_aa2be82e1f986b1beae103148be7cd520"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#aa2be82e1f986b1beae103148be7cd520">rtabmap::Optimizer::type</a></div><divclass="ttdeci">virtual Type type() const =0</div><divclass="ttdoc">Returns the concrete back-end identifier (one of Type).</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_aab99f045516162944ad68fdabacb53dc"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#aab99f045516162944ad68fdabacb53dc">rtabmap::Optimizer::optimizeBA</a></div><divclass="ttdeci">std::map< int, Transform > optimizeBA(int rootId, const std::map< int, Transform >&poses, const std::multimap< int, Link >&links, const std::map< int, Signature >&signatures, bool rematchFeatures=false, const ParametersMap &registrationParameters=ParametersMap())</div><divclass="ttdoc">BA convenience wrapper: like the overload above but ignores the refined 3D points and observation map...</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_aceb68e0f692b81c4a978e46f804515d7"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#aceb68e0f692b81c4a978e46f804515d7">rtabmap::Optimizer::gravitySigma</a></div><divclass="ttdeci">float gravitySigma() const</div><divclass="ttdoc">Std-dev (rad) of the gravity prior on roll/pitch; 0 disables it.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00149">Optimizer.h:149</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_ad6b32a9697837f03941773f6a5bbf91c"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#ad6b32a9697837f03941773f6a5bbf91c">rtabmap::Optimizer::optimizeBA</a></div><divclass="ttdeci">Transform optimizeBA(const Link &link, const CameraModel &model, std::map< int, cv::Point3f >&points3DMap, const std::map< int, std::map< int, FeatureBA >>&wordReferences, std::set< int > *outliers=0)</div><divclass="ttdoc">Refine a single two-frame link via BA.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_aeebd0d5575ab7e9f492b095c05ddb237"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#aeebd0d5575ab7e9f492b095c05ddb237">rtabmap::Optimizer::priorsIgnored</a></div><divclass="ttdeci">bool priorsIgnored() const</div><divclass="ttdoc">If true, unary priors on poses are dropped.</div><divclass="ttdef"><b>Definition</b><ahref="Optimizer_8h_source.html#l00147">Optimizer.h:147</a></div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_aeff86117cf69fdae3c25e5bc327a142d"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#aeff86117cf69fdae3c25e5bc327a142d">rtabmap::Optimizer::create</a></div><divclass="ttdeci">static Optimizer * create(Optimizer::Type type, const ParametersMap &parameters=ParametersMap())</div><divclass="ttdoc">Factory: build an optimizer of a specific type. Caller owns the result.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_af59c8340394268f9a1eb76fd5709f2c3"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#af59c8340394268f9a1eb76fd5709f2c3">rtabmap::Optimizer::optimize</a></div><divclass="ttdeci">virtual std::map< int, Transform > optimize(int rootId, const std::map< int, Transform >&poses, const std::multimap< int, Link >&constraints, cv::Mat &outputCovariance, std::list< std::map< int, Transform >> *intermediateGraphes=0, double *finalError=0, int *iterationsDone=0)</div><divclass="ttdoc">Pose-graph optimization with marginal covariance of rootId.</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Optimizer_html_afe0381a3b42926b7634027e522766eb1"><divclass="ttname"><ahref="classrtabmap_1_1Optimizer.html#afe0381a3b42926b7634027e522766eb1">rtabmap::Optimizer::isAvailable</a></div><divclass="ttdeci">static bool isAvailable(Optimizer::Type type)</div><divclass="ttdoc">Returns whether type was compiled in (its third-party dependency was found).</div></div>
<divclass="ttc"id="aclassrtabmap_1_1Transform_html"><divclass="ttname"><ahref="classrtabmap_1_1Transform.html">rtabmap::Transform</a></div><divclass="ttdoc">Represents a 3D rigid body transformation (rotation + translation).</div><divclass="ttdef"><b>Definition</b><ahref="Transform_8h_source.html#l00052">Transform.h:53</a></div></div>
<divclass="ttc"id="anamespacertabmap_html_ad08b6f1796a27dd7316c99c385e2cc55"><divclass="ttname"><ahref="namespacertabmap.html#ad08b6f1796a27dd7316c99c385e2cc55">rtabmap::ParametersMap</a></div><divclass="ttdeci">std::map< std::string, std::string > ParametersMap</div><divclass="ttdoc">Parameter keys mapped to their values, as used by every configurable class (see Parameters).</div><divclass="ttdef"><b>Definition</b><ahref="Parameters_8h_source.html#l00044">Parameters.h:44</a></div></div>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.9.8 </li>