2026-08-02 01:36:11 +00:00
<!-- 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: corelib/include/rtabmap/core/impl/util3d.hpp Source File</ 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 >
2026-08-02 07:56:38 +00:00
< 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 >
2026-08-02 01:36:11 +00:00
< 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" />
2026-08-02 17:35:14 +00:00
< link href = "doxygen-awesome.css" rel = "stylesheet" type = "text/css" />
< link href = "custom.css" rel = "stylesheet" type = "text/css" />
2026-08-02 01:36:11 +00:00
< 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 >
2026-08-02 17:35:14 +00:00
< script type = "text/javascript" src = "doxygen-awesome-darkmode-toggle.js" ></ script >
< script type = "text/javascript" > DoxygenAwesomeDarkModeToggle . init ();</ script >
2026-08-02 01:36:11 +00:00
</ 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" >   0.23.10</ span >
</ div >
2026-08-02 07:56:38 +00:00
< div id = "projectbrief" > Real-Time Appearance-Based Mapping</ div >
2026-08-02 01:36:11 +00:00
</ td >
</ tr >
</ tbody >
</ table >
</ div >
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&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&dn=expat.txt MIT */
$ ( function () {
initMenu ( '' , true , false , 'search.php' , 'Search' );
$ ( document ). ready ( function () { init_search (); });
});
/* @license-end */
</ script >
< div id = "main-nav" ></ div >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$ ( document ). ready ( function () { init_codefold ( 0 ); });
/* @license-end */
</ script >
2026-08-02 07:56:38 +00:00
</ 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&dn=expat.txt MIT */
$ ( document ). ready ( function (){ initNavTree ( 'util3d_8hpp_source.html' , '' ); initResizable (); });
/* @license-end */
</ script >
< div id = "doc-content" >
2026-08-02 01:36:11 +00:00
<!-- 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 = "headertitle" >< div class = "title" > util3d.hpp</ div ></ div >
</ div > <!--header-->
< div class = "contents" >
< div class = "fragment" >< div class = "line" >< a id = "l00001" name = "l00001" ></ a >< span class = "lineno" > 1</ span >< span class = "comment" > /*</ span ></ div >
< div class = "line" >< a id = "l00002" name = "l00002" ></ a >< span class = "lineno" > 2</ span >< span class = "comment" > Copyright (c) 2010-2016, Mathieu Labbe - IntRoLab - Universite de Sherbrooke</ span ></ div >
< div class = "line" >< a id = "l00003" name = "l00003" ></ a >< span class = "lineno" > 3</ span >< span class = "comment" > All rights reserved.</ span ></ div >
< div class = "line" >< a id = "l00004" name = "l00004" ></ a >< span class = "lineno" > 4</ span >< span class = "comment" ></ span > </ div >
< div class = "line" >< a id = "l00005" name = "l00005" ></ a >< span class = "lineno" > 5</ span >< span class = "comment" > Redistribution and use in source and binary forms, with or without</ span ></ div >
< div class = "line" >< a id = "l00006" name = "l00006" ></ a >< span class = "lineno" > 6</ span >< span class = "comment" > modification, are permitted provided that the following conditions are met:</ span ></ div >
< div class = "line" >< a id = "l00007" name = "l00007" ></ a >< span class = "lineno" > 7</ span >< span class = "comment" > * Redistributions of source code must retain the above copyright</ span ></ div >
< div class = "line" >< a id = "l00008" name = "l00008" ></ a >< span class = "lineno" > 8</ span >< span class = "comment" > notice, this list of conditions and the following disclaimer.</ span ></ div >
< div class = "line" >< a id = "l00009" name = "l00009" ></ a >< span class = "lineno" > 9</ span >< span class = "comment" > * Redistributions in binary form must reproduce the above copyright</ span ></ div >
< div class = "line" >< a id = "l00010" name = "l00010" ></ a >< span class = "lineno" > 10</ span >< span class = "comment" > notice, this list of conditions and the following disclaimer in the</ span ></ div >
< div class = "line" >< a id = "l00011" name = "l00011" ></ a >< span class = "lineno" > 11</ span >< span class = "comment" > documentation and/or other materials provided with the distribution.</ span ></ div >
< div class = "line" >< a id = "l00012" name = "l00012" ></ a >< span class = "lineno" > 12</ span >< span class = "comment" > * Neither the name of the Universite de Sherbrooke nor the</ span ></ div >
< div class = "line" >< a id = "l00013" name = "l00013" ></ a >< span class = "lineno" > 13</ span >< span class = "comment" > names of its contributors may be used to endorse or promote products</ span ></ div >
< div class = "line" >< a id = "l00014" name = "l00014" ></ a >< span class = "lineno" > 14</ span >< span class = "comment" > derived from this software without specific prior written permission.</ span ></ div >
< div class = "line" >< a id = "l00015" name = "l00015" ></ a >< span class = "lineno" > 15</ span >< span class = "comment" ></ span > </ div >
< div class = "line" >< a id = "l00016" name = "l00016" ></ a >< span class = "lineno" > 16</ span >< span class = "comment" > THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS IS" AND</ span ></ div >
< div class = "line" >< a id = "l00017" name = "l00017" ></ a >< span class = "lineno" > 17</ span >< span class = "comment" > ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</ span ></ div >
< div class = "line" >< a id = "l00018" name = "l00018" ></ a >< span class = "lineno" > 18</ span >< span class = "comment" > WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</ span ></ div >
< div class = "line" >< a id = "l00019" name = "l00019" ></ a >< span class = "lineno" > 19</ span >< span class = "comment" > DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY</ span ></ div >
< div class = "line" >< a id = "l00020" name = "l00020" ></ a >< span class = "lineno" > 20</ span >< span class = "comment" > DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</ span ></ div >
< div class = "line" >< a id = "l00021" name = "l00021" ></ a >< span class = "lineno" > 21</ span >< span class = "comment" > (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</ span ></ div >
< div class = "line" >< a id = "l00022" name = "l00022" ></ a >< span class = "lineno" > 22</ span >< span class = "comment" > LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND</ span ></ div >
< div class = "line" >< a id = "l00023" name = "l00023" ></ a >< span class = "lineno" > 23</ span >< span class = "comment" > ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</ span ></ div >
< div class = "line" >< a id = "l00024" name = "l00024" ></ a >< span class = "lineno" > 24</ span >< span class = "comment" > (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</ span ></ div >
< div class = "line" >< a id = "l00025" name = "l00025" ></ a >< span class = "lineno" > 25</ span >< span class = "comment" > SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</ span ></ div >
< div class = "line" >< a id = "l00026" name = "l00026" ></ a >< span class = "lineno" > 26</ span >< span class = "comment" > */</ span ></ div >
< div class = "line" >< a id = "l00027" name = "l00027" ></ a >< span class = "lineno" > 27</ span > </ div >
< div class = "line" >< a id = "l00028" name = "l00028" ></ a >< span class = "lineno" > 28</ span >< span class = "preprocessor" > #ifndef UTIL3D_HPP_</ span ></ div >
< div class = "line" >< a id = "l00029" name = "l00029" ></ a >< span class = "lineno" > 29</ span >< span class = "preprocessor" > #define UTIL3D_HPP_</ span ></ div >
< div class = "line" >< a id = "l00030" name = "l00030" ></ a >< span class = "lineno" > 30</ span > </ div >
< div class = "line" >< a id = "l00031" name = "l00031" ></ a >< span class = "lineno" > 31</ span >< span class = "preprocessor" > #include < rtabmap/core/util3d_transforms.h> </ span ></ div >
< div class = "line" >< a id = "l00032" name = "l00032" ></ a >< span class = "lineno" > 32</ span > </ div >
< div class = "line" >< a id = "l00033" name = "l00033" ></ a >< span class = "lineno" > 33</ span >< span class = "keyword" > namespace </ span >< a class = "code hl_namespace" href = "namespacertabmap.html" > rtabmap</ a > {</ div >
2026-08-02 07:56:38 +00:00
< div class = "foldopen" id = "foldopen00034" data-start = "{" data-end = "}" >
< div class = "line" >< a id = "l00034" name = "l00034" ></ a >< span class = "lineno" >< a class = "line" href = "namespacertabmap_1_1util3d.html" > 34</ a ></ span >< span class = "keyword" > namespace </ span > util3d{</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00035" name = "l00035" ></ a >< span class = "lineno" > 35</ span > </ div >
< div class = "line" >< a id = "l00036" name = "l00036" ></ a >< span class = "lineno" > 36</ span >< span class = "keyword" > template</ span > < < span class = "keyword" > typename</ span > Po< span class = "keywordtype" > int</ span > Cloud2T> </ div >
< div class = "foldopen" id = "foldopen00037" data-start = "{" data-end = "}" >
< div class = "line" >< a id = "l00037" name = "l00037" ></ a >< span class = "lineno" >< a class = "line" href = "group__LaserScanFromPointCloud.html#ga078f5eae0077169e636ec76e03973edc" > 37</ a ></ span >< a class = "code hl_class" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > < a class = "code hl_function" href = "group__LaserScanFromPointCloud.html#ga078f5eae0077169e636ec76e03973edc" > laserScanFromPointCloud</ a > (< span class = "keyword" > const</ span > PointCloud2T & cloud, < span class = "keywordtype" > bool</ span > filterNaNs, < span class = "keywordtype" > bool</ span > is2D, < span class = "keyword" > const</ span > < a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform)</ div >
< div class = "line" >< a id = "l00038" name = "l00038" ></ a >< span class = "lineno" > 38</ span > {</ div >
< div class = "line" >< a id = "l00039" name = "l00039" ></ a >< span class = "lineno" > 39</ span > < span class = "keywordflow" > if</ span > (cloud.data.empty())</ div >
< div class = "line" >< a id = "l00040" name = "l00040" ></ a >< span class = "lineno" > 40</ span > {</ div >
< div class = "line" >< a id = "l00041" name = "l00041" ></ a >< span class = "lineno" > 41</ span > < span class = "keywordflow" > return</ span > < a class = "code hl_class" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > ();</ div >
< div class = "line" >< a id = "l00042" name = "l00042" ></ a >< span class = "lineno" > 42</ span > }</ div >
< div class = "line" >< a id = "l00043" name = "l00043" ></ a >< span class = "lineno" > 43</ span > < span class = "comment" > //determine the output type</ span ></ div >
< div class = "line" >< a id = "l00044" name = "l00044" ></ a >< span class = "lineno" > 44</ span > < span class = "keywordtype" > int</ span > fieldStates[10] = {0}; < span class = "comment" > // x,y,z,normal_x,normal_y,normal_z,rgb,intensity,time,ring</ span ></ div >
< div class = "line" >< a id = "l00045" name = "l00045" ></ a >< span class = "lineno" > 45</ span >< span class = "preprocessor" > #if PCL_VERSION_COMPARE(> =, 1, 10, 0)</ span ></ div >
< div class = "line" >< a id = "l00046" name = "l00046" ></ a >< span class = "lineno" > 46</ span > std::uint32_t fieldOffsets[10] = {0};</ div >
< div class = "line" >< a id = "l00047" name = "l00047" ></ a >< span class = "lineno" > 47</ span >< span class = "preprocessor" > #else</ span ></ div >
< div class = "line" >< a id = "l00048" name = "l00048" ></ a >< span class = "lineno" > 48</ span > pcl::uint32_t fieldOffsets[10] = {0};</ div >
< div class = "line" >< a id = "l00049" name = "l00049" ></ a >< span class = "lineno" > 49</ span >< span class = "preprocessor" > #endif</ span ></ div >
< div class = "line" >< a id = "l00050" name = "l00050" ></ a >< span class = "lineno" > 50</ span > < span class = "keywordflow" > for</ span > (< span class = "keywordtype" > unsigned</ span > < span class = "keywordtype" > int</ span > i=0; i< cloud.fields.size(); ++i)</ div >
< div class = "line" >< a id = "l00051" name = "l00051" ></ a >< span class = "lineno" > 51</ span > {</ div >
< div class = "line" >< a id = "l00052" name = "l00052" ></ a >< span class = "lineno" > 52</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " x" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00053" name = "l00053" ></ a >< span class = "lineno" > 53</ span > {</ div >
< div class = "line" >< a id = "l00054" name = "l00054" ></ a >< span class = "lineno" > 54</ span > fieldStates[0] = 1;</ div >
< div class = "line" >< a id = "l00055" name = "l00055" ></ a >< span class = "lineno" > 55</ span > fieldOffsets[0] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00056" name = "l00056" ></ a >< span class = "lineno" > 56</ span > }</ div >
< div class = "line" >< a id = "l00057" name = "l00057" ></ a >< span class = "lineno" > 57</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " y" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00058" name = "l00058" ></ a >< span class = "lineno" > 58</ span > {</ div >
< div class = "line" >< a id = "l00059" name = "l00059" ></ a >< span class = "lineno" > 59</ span > fieldStates[1] = 1;</ div >
< div class = "line" >< a id = "l00060" name = "l00060" ></ a >< span class = "lineno" > 60</ span > fieldOffsets[1] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00061" name = "l00061" ></ a >< span class = "lineno" > 61</ span > }</ div >
< div class = "line" >< a id = "l00062" name = "l00062" ></ a >< span class = "lineno" > 62</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " z" </ span > ) == 0 && !is2D)</ div >
< div class = "line" >< a id = "l00063" name = "l00063" ></ a >< span class = "lineno" > 63</ span > {</ div >
< div class = "line" >< a id = "l00064" name = "l00064" ></ a >< span class = "lineno" > 64</ span > fieldStates[2] = 1;</ div >
< div class = "line" >< a id = "l00065" name = "l00065" ></ a >< span class = "lineno" > 65</ span > fieldOffsets[2] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00066" name = "l00066" ></ a >< span class = "lineno" > 66</ span > }</ div >
< div class = "line" >< a id = "l00067" name = "l00067" ></ a >< span class = "lineno" > 67</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " normal_x" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00068" name = "l00068" ></ a >< span class = "lineno" > 68</ span > {</ div >
< div class = "line" >< a id = "l00069" name = "l00069" ></ a >< span class = "lineno" > 69</ span > fieldStates[3] = 1;</ div >
< div class = "line" >< a id = "l00070" name = "l00070" ></ a >< span class = "lineno" > 70</ span > fieldOffsets[3] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00071" name = "l00071" ></ a >< span class = "lineno" > 71</ span > }</ div >
< div class = "line" >< a id = "l00072" name = "l00072" ></ a >< span class = "lineno" > 72</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " normal_y" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00073" name = "l00073" ></ a >< span class = "lineno" > 73</ span > {</ div >
< div class = "line" >< a id = "l00074" name = "l00074" ></ a >< span class = "lineno" > 74</ span > fieldStates[4] = 1;</ div >
< div class = "line" >< a id = "l00075" name = "l00075" ></ a >< span class = "lineno" > 75</ span > fieldOffsets[4] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00076" name = "l00076" ></ a >< span class = "lineno" > 76</ span > }</ div >
< div class = "line" >< a id = "l00077" name = "l00077" ></ a >< span class = "lineno" > 77</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " normal_z" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00078" name = "l00078" ></ a >< span class = "lineno" > 78</ span > {</ div >
< div class = "line" >< a id = "l00079" name = "l00079" ></ a >< span class = "lineno" > 79</ span > fieldStates[5] = 1;</ div >
< div class = "line" >< a id = "l00080" name = "l00080" ></ a >< span class = "lineno" > 80</ span > fieldOffsets[5] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00081" name = "l00081" ></ a >< span class = "lineno" > 81</ span > }</ div >
< div class = "line" >< a id = "l00082" name = "l00082" ></ a >< span class = "lineno" > 82</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " rgb" </ span > ) == 0 || cloud.fields[i].name.compare(< span class = "stringliteral" > " rgba" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00083" name = "l00083" ></ a >< span class = "lineno" > 83</ span > {</ div >
< div class = "line" >< a id = "l00084" name = "l00084" ></ a >< span class = "lineno" > 84</ span > fieldStates[6] = 1;</ div >
< div class = "line" >< a id = "l00085" name = "l00085" ></ a >< span class = "lineno" > 85</ span > fieldOffsets[6] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00086" name = "l00086" ></ a >< span class = "lineno" > 86</ span > }</ div >
< div class = "line" >< a id = "l00087" name = "l00087" ></ a >< span class = "lineno" > 87</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " intensity" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00088" name = "l00088" ></ a >< span class = "lineno" > 88</ span > {</ div >
< div class = "line" >< a id = "l00089" name = "l00089" ></ a >< span class = "lineno" > 89</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].datatype != pcl::PCLPointField::FLOAT32)</ div >
< div class = "line" >< a id = "l00090" name = "l00090" ></ a >< span class = "lineno" > 90</ span > {</ div >
< div class = "line" >< a id = "l00091" name = "l00091" ></ a >< span class = "lineno" > 91</ span > < span class = "keyword" > static</ span > < span class = "keywordtype" > bool</ span > warningShown = < span class = "keyword" > false</ span > ;</ div >
< div class = "line" >< a id = "l00092" name = "l00092" ></ a >< span class = "lineno" > 92</ span > < span class = "keywordflow" > if</ span > (!warningShown)</ div >
< div class = "line" >< a id = "l00093" name = "l00093" ></ a >< span class = "lineno" > 93</ span > {</ div >
< div class = "line" >< a id = "l00094" name = "l00094" ></ a >< span class = "lineno" > 94</ span > < a class = "code hl_define" href = "ULogger_8h.html#ab5a739ad9340455e46eaa570f8223d9a" > UWARN</ a > (< span class = "stringliteral" > " The input scan cloud has an \" intensity\" field " </ span ></ div >
< div class = "line" >< a id = "l00095" name = "l00095" ></ a >< span class = "lineno" > 95</ span > < span class = "stringliteral" > " but the datatype (%d) is not supported. Intensity will be ignored. " </ span ></ div >
< div class = "line" >< a id = "l00096" name = "l00096" ></ a >< span class = "lineno" > 96</ span > < span class = "stringliteral" > " This message is only shown once." </ span > , cloud.fields[i].datatype);</ div >
< div class = "line" >< a id = "l00097" name = "l00097" ></ a >< span class = "lineno" > 97</ span > warningShown = < span class = "keyword" > true</ span > ;</ div >
< div class = "line" >< a id = "l00098" name = "l00098" ></ a >< span class = "lineno" > 98</ span > }</ div >
< div class = "line" >< a id = "l00099" name = "l00099" ></ a >< span class = "lineno" > 99</ span > < span class = "keywordflow" > continue</ span > ;</ div >
< div class = "line" >< a id = "l00100" name = "l00100" ></ a >< span class = "lineno" > 100</ span > }</ div >
< div class = "line" >< a id = "l00101" name = "l00101" ></ a >< span class = "lineno" > 101</ span > </ div >
< div class = "line" >< a id = "l00102" name = "l00102" ></ a >< span class = "lineno" > 102</ span > fieldStates[7] = 1;</ div >
< div class = "line" >< a id = "l00103" name = "l00103" ></ a >< span class = "lineno" > 103</ span > fieldOffsets[7] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00104" name = "l00104" ></ a >< span class = "lineno" > 104</ span > }</ div >
< div class = "line" >< a id = "l00105" name = "l00105" ></ a >< span class = "lineno" > 105</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " time" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00106" name = "l00106" ></ a >< span class = "lineno" > 106</ span > {</ div >
< div class = "line" >< a id = "l00107" name = "l00107" ></ a >< span class = "lineno" > 107</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].datatype != pcl::PCLPointField::FLOAT32)</ div >
< div class = "line" >< a id = "l00108" name = "l00108" ></ a >< span class = "lineno" > 108</ span > {</ div >
< div class = "line" >< a id = "l00109" name = "l00109" ></ a >< span class = "lineno" > 109</ span > < span class = "keyword" > static</ span > < span class = "keywordtype" > bool</ span > warningShown = < span class = "keyword" > false</ span > ;</ div >
< div class = "line" >< a id = "l00110" name = "l00110" ></ a >< span class = "lineno" > 110</ span > < span class = "keywordflow" > if</ span > (!warningShown)</ div >
< div class = "line" >< a id = "l00111" name = "l00111" ></ a >< span class = "lineno" > 111</ span > {</ div >
< div class = "line" >< a id = "l00112" name = "l00112" ></ a >< span class = "lineno" > 112</ span > < a class = "code hl_define" href = "ULogger_8h.html#ab5a739ad9340455e46eaa570f8223d9a" > UWARN</ a > (< span class = "stringliteral" > " The input scan cloud has an \" time\" field " </ span ></ div >
< div class = "line" >< a id = "l00113" name = "l00113" ></ a >< span class = "lineno" > 113</ span > < span class = "stringliteral" > " but the datatype (%d) is not supported. Time will be ignored. " </ span ></ div >
< div class = "line" >< a id = "l00114" name = "l00114" ></ a >< span class = "lineno" > 114</ span > < span class = "stringliteral" > " This message is only shown once." </ span > , cloud.fields[i].datatype);</ div >
< div class = "line" >< a id = "l00115" name = "l00115" ></ a >< span class = "lineno" > 115</ span > warningShown = < span class = "keyword" > true</ span > ;</ div >
< div class = "line" >< a id = "l00116" name = "l00116" ></ a >< span class = "lineno" > 116</ span > }</ div >
< div class = "line" >< a id = "l00117" name = "l00117" ></ a >< span class = "lineno" > 117</ span > < span class = "keywordflow" > continue</ span > ;</ div >
< div class = "line" >< a id = "l00118" name = "l00118" ></ a >< span class = "lineno" > 118</ span > }</ div >
< div class = "line" >< a id = "l00119" name = "l00119" ></ a >< span class = "lineno" > 119</ span > </ div >
< div class = "line" >< a id = "l00120" name = "l00120" ></ a >< span class = "lineno" > 120</ span > fieldStates[8] = 1;</ div >
< div class = "line" >< a id = "l00121" name = "l00121" ></ a >< span class = "lineno" > 121</ span > fieldOffsets[8] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00122" name = "l00122" ></ a >< span class = "lineno" > 122</ span > }</ div >
< div class = "line" >< a id = "l00123" name = "l00123" ></ a >< span class = "lineno" > 123</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].name.compare(< span class = "stringliteral" > " ring" </ span > ) == 0)</ div >
< div class = "line" >< a id = "l00124" name = "l00124" ></ a >< span class = "lineno" > 124</ span > {</ div >
< div class = "line" >< a id = "l00125" name = "l00125" ></ a >< span class = "lineno" > 125</ span > < span class = "keywordflow" > if</ span > (cloud.fields[i].datatype != pcl::PCLPointField::UINT16)</ div >
< div class = "line" >< a id = "l00126" name = "l00126" ></ a >< span class = "lineno" > 126</ span > {</ div >
< div class = "line" >< a id = "l00127" name = "l00127" ></ a >< span class = "lineno" > 127</ span > < span class = "keyword" > static</ span > < span class = "keywordtype" > bool</ span > warningShown = < span class = "keyword" > false</ span > ;</ div >
< div class = "line" >< a id = "l00128" name = "l00128" ></ a >< span class = "lineno" > 128</ span > < span class = "keywordflow" > if</ span > (!warningShown)</ div >
< div class = "line" >< a id = "l00129" name = "l00129" ></ a >< span class = "lineno" > 129</ span > {</ div >
< div class = "line" >< a id = "l00130" name = "l00130" ></ a >< span class = "lineno" > 130</ span > < a class = "code hl_define" href = "ULogger_8h.html#ab5a739ad9340455e46eaa570f8223d9a" > UWARN</ a > (< span class = "stringliteral" > " The input scan cloud has an \" ring\" field " </ span ></ div >
< div class = "line" >< a id = "l00131" name = "l00131" ></ a >< span class = "lineno" > 131</ span > < span class = "stringliteral" > " but the datatype (%d) is not supported. Ring will be ignored. " </ span ></ div >
< div class = "line" >< a id = "l00132" name = "l00132" ></ a >< span class = "lineno" > 132</ span > < span class = "stringliteral" > " This message is only shown once." </ span > , cloud.fields[i].datatype);</ div >
< div class = "line" >< a id = "l00133" name = "l00133" ></ a >< span class = "lineno" > 133</ span > warningShown = < span class = "keyword" > true</ span > ;</ div >
< div class = "line" >< a id = "l00134" name = "l00134" ></ a >< span class = "lineno" > 134</ span > }</ div >
< div class = "line" >< a id = "l00135" name = "l00135" ></ a >< span class = "lineno" > 135</ span > < span class = "keywordflow" > continue</ span > ;</ div >
< div class = "line" >< a id = "l00136" name = "l00136" ></ a >< span class = "lineno" > 136</ span > }</ div >
< div class = "line" >< a id = "l00137" name = "l00137" ></ a >< span class = "lineno" > 137</ span > </ div >
< div class = "line" >< a id = "l00138" name = "l00138" ></ a >< span class = "lineno" > 138</ span > fieldStates[9] = 1;</ div >
< div class = "line" >< a id = "l00139" name = "l00139" ></ a >< span class = "lineno" > 139</ span > fieldOffsets[9] = cloud.fields[i].offset;</ div >
< div class = "line" >< a id = "l00140" name = "l00140" ></ a >< span class = "lineno" > 140</ span > }</ div >
< div class = "line" >< a id = "l00141" name = "l00141" ></ a >< span class = "lineno" > 141</ span > < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a id = "l00142" name = "l00142" ></ a >< span class = "lineno" > 142</ span > {</ div >
< div class = "line" >< a id = "l00143" name = "l00143" ></ a >< span class = "lineno" > 143</ span > < a class = "code hl_define" href = "ULogger_8h.html#a9104cb408bf9019db2a2c4476835db4a" > UDEBUG</ a > (< span class = "stringliteral" > " Ignoring \" %s\" field" </ span > , cloud.fields[i].name.c_str());</ div >
< div class = "line" >< a id = "l00144" name = "l00144" ></ a >< span class = "lineno" > 144</ span > }</ div >
< div class = "line" >< a id = "l00145" name = "l00145" ></ a >< span class = "lineno" > 145</ span > }</ div >
< div class = "line" >< a id = "l00146" name = "l00146" ></ a >< span class = "lineno" > 146</ span > < span class = "keywordflow" > if</ span > (fieldStates[0]==0 || fieldStates[1]==0)</ div >
< div class = "line" >< a id = "l00147" name = "l00147" ></ a >< span class = "lineno" > 147</ span > {</ div >
< div class = "line" >< a id = "l00148" name = "l00148" ></ a >< span class = "lineno" > 148</ span > < span class = "comment" > //should have at least x and y set</ span ></ div >
< div class = "line" >< a id = "l00149" name = "l00149" ></ a >< span class = "lineno" > 149</ span > < a class = "code hl_define" href = "ULogger_8h.html#a1249ddbc4c9cc43be53048c08dda129b" > UERROR</ a > (< span class = "stringliteral" > " Cloud has not corresponding fields to laser scan!" </ span > );</ div >
< div class = "line" >< a id = "l00150" name = "l00150" ></ a >< span class = "lineno" > 150</ span > < span class = "keywordflow" > return</ span > < a class = "code hl_class" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > ();</ div >
< div class = "line" >< a id = "l00151" name = "l00151" ></ a >< span class = "lineno" > 151</ span > }</ div >
< div class = "line" >< a id = "l00152" name = "l00152" ></ a >< span class = "lineno" > 152</ span > </ div >
< div class = "line" >< a id = "l00153" name = "l00153" ></ a >< span class = "lineno" > 153</ span > < span class = "keywordtype" > bool</ span > hasNormals = fieldStates[3] || fieldStates[4] || fieldStates[5];</ div >
< div class = "line" >< a id = "l00154" name = "l00154" ></ a >< span class = "lineno" > 154</ span > < span class = "keywordtype" > bool</ span > hasIntensity = fieldStates[7];</ div >
< div class = "line" >< a id = "l00155" name = "l00155" ></ a >< span class = "lineno" > 155</ span > < span class = "keywordtype" > bool</ span > hasRGB = !hasIntensity&& fieldStates[6];</ div >
< div class = "line" >< a id = "l00156" name = "l00156" ></ a >< span class = "lineno" > 156</ span > < span class = "keywordtype" > bool</ span > hasTime = hasIntensity&& fieldStates[8];</ div >
< div class = "line" >< a id = "l00157" name = "l00157" ></ a >< span class = "lineno" > 157</ span > < span class = "keywordtype" > bool</ span > hasRing = hasIntensity&& fieldStates[9];</ div >
< div class = "line" >< a id = "l00158" name = "l00158" ></ a >< span class = "lineno" > 158</ span > < span class = "keywordtype" > bool</ span > is3D = fieldStates[0] && fieldStates[1] && fieldStates[2];</ div >
< div class = "line" >< a id = "l00159" name = "l00159" ></ a >< span class = "lineno" > 159</ span > </ div >
< div class = "line" >< a id = "l00160" name = "l00160" ></ a >< span class = "lineno" > 160</ span > < a class = "code hl_enumeration" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007" > LaserScan::Format</ a > format;</ div >
< div class = "line" >< a id = "l00161" name = "l00161" ></ a >< span class = "lineno" > 161</ span > < span class = "keywordtype" > int</ span > outputNormalOffset = 0;</ div >
< div class = "line" >< a id = "l00162" name = "l00162" ></ a >< span class = "lineno" > 162</ span > < span class = "keywordflow" > if</ span > (is3D)</ div >
< div class = "line" >< a id = "l00163" name = "l00163" ></ a >< span class = "lineno" > 163</ span > {</ div >
< div class = "line" >< a id = "l00164" name = "l00164" ></ a >< span class = "lineno" > 164</ span > < span class = "keywordflow" > if</ span > (hasNormals && hasIntensity)</ div >
< div class = "line" >< a id = "l00165" name = "l00165" ></ a >< span class = "lineno" > 165</ span > {</ div >
< div class = "line" >< a id = "l00166" name = "l00166" ></ a >< span class = "lineno" > 166</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" > LaserScan::kXYZINormal</ a > ;</ div >
< div class = "line" >< a id = "l00167" name = "l00167" ></ a >< span class = "lineno" > 167</ span > outputNormalOffset = 4;</ div >
< div class = "line" >< a id = "l00168" name = "l00168" ></ a >< span class = "lineno" > 168</ span > }</ div >
< div class = "line" >< a id = "l00169" name = "l00169" ></ a >< span class = "lineno" > 169</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (hasNormals && !hasIntensity && !hasRGB)</ div >
< div class = "line" >< a id = "l00170" name = "l00170" ></ a >< span class = "lineno" > 170</ span > {</ div >
< div class = "line" >< a id = "l00171" name = "l00171" ></ a >< span class = "lineno" > 171</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a09e67f9495016103a162854b8e852bbc" > LaserScan::kXYZNormal</ a > ;</ div >
< div class = "line" >< a id = "l00172" name = "l00172" ></ a >< span class = "lineno" > 172</ span > outputNormalOffset = 3;</ div >
< div class = "line" >< a id = "l00173" name = "l00173" ></ a >< span class = "lineno" > 173</ span > }</ div >
< div class = "line" >< a id = "l00174" name = "l00174" ></ a >< span class = "lineno" > 174</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (hasNormals && hasRGB)</ div >
< div class = "line" >< a id = "l00175" name = "l00175" ></ a >< span class = "lineno" > 175</ span > {</ div >
< div class = "line" >< a id = "l00176" name = "l00176" ></ a >< span class = "lineno" > 176</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007af2d5b7ff94aeac818000d840e257ac07" > LaserScan::kXYZRGBNormal</ a > ;</ div >
< div class = "line" >< a id = "l00177" name = "l00177" ></ a >< span class = "lineno" > 177</ span > outputNormalOffset = 4;</ div >
< div class = "line" >< a id = "l00178" name = "l00178" ></ a >< span class = "lineno" > 178</ span > }</ div >
< div class = "line" >< a id = "l00179" name = "l00179" ></ a >< span class = "lineno" > 179</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (!hasNormals && hasIntensity)</ div >
< div class = "line" >< a id = "l00180" name = "l00180" ></ a >< span class = "lineno" > 180</ span > {</ div >
< div class = "line" >< a id = "l00181" name = "l00181" ></ a >< span class = "lineno" > 181</ span > < span class = "keywordflow" > if</ span > (hasTime && hasRing)</ div >
< div class = "line" >< a id = "l00182" name = "l00182" ></ a >< span class = "lineno" > 182</ span > {</ div >
< div class = "line" >< a id = "l00183" name = "l00183" ></ a >< span class = "lineno" > 183</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a7df3c8f97dd52461787060befaf7f2d7" > LaserScan::kXYZIRT</ a > ;</ div >
< div class = "line" >< a id = "l00184" name = "l00184" ></ a >< span class = "lineno" > 184</ span > }</ div >
< div class = "line" >< a id = "l00185" name = "l00185" ></ a >< span class = "lineno" > 185</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (hasTime)</ div >
< div class = "line" >< a id = "l00186" name = "l00186" ></ a >< span class = "lineno" > 186</ span > {</ div >
< div class = "line" >< a id = "l00187" name = "l00187" ></ a >< span class = "lineno" > 187</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007ab169cf98665cb3f33d81240b37cc501c" > LaserScan::kXYZIT</ a > ;</ div >
< div class = "line" >< a id = "l00188" name = "l00188" ></ a >< span class = "lineno" > 188</ span > }</ div >
< div class = "line" >< a id = "l00189" name = "l00189" ></ a >< span class = "lineno" > 189</ span > < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a id = "l00190" name = "l00190" ></ a >< span class = "lineno" > 190</ span > {</ div >
< div class = "line" >< a id = "l00191" name = "l00191" ></ a >< span class = "lineno" > 191</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a5efd7fbf18cee72d9eb2daa4ea818e42" > LaserScan::kXYZI</ a > ;</ div >
< div class = "line" >< a id = "l00192" name = "l00192" ></ a >< span class = "lineno" > 192</ span > }</ div >
< div class = "line" >< a id = "l00193" name = "l00193" ></ a >< span class = "lineno" > 193</ span > }</ div >
< div class = "line" >< a id = "l00194" name = "l00194" ></ a >< span class = "lineno" > 194</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (!hasNormals && hasRGB)</ div >
< div class = "line" >< a id = "l00195" name = "l00195" ></ a >< span class = "lineno" > 195</ span > {</ div >
< div class = "line" >< a id = "l00196" name = "l00196" ></ a >< span class = "lineno" > 196</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a500cf2179e454d8d5a74895b301c0829" > LaserScan::kXYZRGB</ a > ;</ div >
< div class = "line" >< a id = "l00197" name = "l00197" ></ a >< span class = "lineno" > 197</ span > }</ div >
< div class = "line" >< a id = "l00198" name = "l00198" ></ a >< span class = "lineno" > 198</ span > < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a id = "l00199" name = "l00199" ></ a >< span class = "lineno" > 199</ span > {</ div >
< div class = "line" >< a id = "l00200" name = "l00200" ></ a >< span class = "lineno" > 200</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a0c376810ac499a8a93a02bd0d4a19267" > LaserScan::kXYZ</ a > ;</ div >
< div class = "line" >< a id = "l00201" name = "l00201" ></ a >< span class = "lineno" > 201</ span > }</ div >
< div class = "line" >< a id = "l00202" name = "l00202" ></ a >< span class = "lineno" > 202</ span > }</ div >
< div class = "line" >< a id = "l00203" name = "l00203" ></ a >< span class = "lineno" > 203</ span > < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a id = "l00204" name = "l00204" ></ a >< span class = "lineno" > 204</ span > {</ div >
< div class = "line" >< a id = "l00205" name = "l00205" ></ a >< span class = "lineno" > 205</ span > < span class = "keywordflow" > if</ span > (hasNormals && hasIntensity)</ div >
< div class = "line" >< a id = "l00206" name = "l00206" ></ a >< span class = "lineno" > 206</ span > {</ div >
< div class = "line" >< a id = "l00207" name = "l00207" ></ a >< span class = "lineno" > 207</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a799064c7e31b99134871b5d7d2906f97" > LaserScan::kXYINormal</ a > ;</ div >
< div class = "line" >< a id = "l00208" name = "l00208" ></ a >< span class = "lineno" > 208</ span > outputNormalOffset = 3;</ div >
< div class = "line" >< a id = "l00209" name = "l00209" ></ a >< span class = "lineno" > 209</ span > }</ div >
< div class = "line" >< a id = "l00210" name = "l00210" ></ a >< span class = "lineno" > 210</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (hasNormals && !hasIntensity)</ div >
< div class = "line" >< a id = "l00211" name = "l00211" ></ a >< span class = "lineno" > 211</ span > {</ div >
< div class = "line" >< a id = "l00212" name = "l00212" ></ a >< span class = "lineno" > 212</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007ad4c3ec9f057875ade4f21f52901bceb5" > LaserScan::kXYNormal</ a > ;</ div >
< div class = "line" >< a id = "l00213" name = "l00213" ></ a >< span class = "lineno" > 213</ span > outputNormalOffset = 2;</ div >
< div class = "line" >< a id = "l00214" name = "l00214" ></ a >< span class = "lineno" > 214</ span > }</ div >
< div class = "line" >< a id = "l00215" name = "l00215" ></ a >< span class = "lineno" > 215</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (!hasNormals && hasIntensity)</ div >
< div class = "line" >< a id = "l00216" name = "l00216" ></ a >< span class = "lineno" > 216</ span > {</ div >
< div class = "line" >< a id = "l00217" name = "l00217" ></ a >< span class = "lineno" > 217</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007abb92c193b2eb76045e1a141c2a42cc00" > LaserScan::kXYI</ a > ;</ div >
< div class = "line" >< a id = "l00218" name = "l00218" ></ a >< span class = "lineno" > 218</ span > }</ div >
< div class = "line" >< a id = "l00219" name = "l00219" ></ a >< span class = "lineno" > 219</ span > < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a id = "l00220" name = "l00220" ></ a >< span class = "lineno" > 220</ span > {</ div >
< div class = "line" >< a id = "l00221" name = "l00221" ></ a >< span class = "lineno" > 221</ span > format = < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a4f3e7340e44a01b48ccaf8e1f8dca3e1" > LaserScan::kXY</ a > ;</ div >
< div class = "line" >< a id = "l00222" name = "l00222" ></ a >< span class = "lineno" > 222</ span > }</ div >
< div class = "line" >< a id = "l00223" name = "l00223" ></ a >< span class = "lineno" > 223</ span > }</ div >
< div class = "line" >< a id = "l00224" name = "l00224" ></ a >< span class = "lineno" > 224</ span > </ div >
< div class = "line" >< a id = "l00225" name = "l00225" ></ a >< span class = "lineno" > 225</ span > < a class = "code hl_define" href = "ULogger_8h.html#ab3436168e27946669bbd4c76e4c4007e" > UASSERT</ a > (cloud.data.size()/cloud.point_step == (uint32_t)cloud.height*cloud.width);</ div >
< div class = "line" >< a id = "l00226" name = "l00226" ></ a >< span class = "lineno" > 226</ span > cv::Mat laserScan = cv::Mat(1, (< span class = "keywordtype" > int</ span > )cloud.data.size()/cloud.point_step, CV_32FC(LaserScan::channels(format)));</ div >
< div class = "line" >< a id = "l00227" name = "l00227" ></ a >< span class = "lineno" > 227</ span > </ div >
< div class = "line" >< a id = "l00228" name = "l00228" ></ a >< span class = "lineno" > 228</ span > < span class = "keywordtype" > bool</ span > transformValid = !transform.< a class = "code hl_function" href = "classrtabmap_1_1Transform.html#a0d6a1985391a45de4fe208e58c51b9d2" > isNull</ a > () && !transform.< a class = "code hl_function" href = "classrtabmap_1_1Transform.html#ae0636052ce31698d4d45afe4492ffab9" > isIdentity</ a > ();</ div >
< div class = "line" >< a id = "l00229" name = "l00229" ></ a >< span class = "lineno" > 229</ span > < a class = "code hl_class" href = "classrtabmap_1_1Transform.html" > Transform</ a > transformRot;</ div >
< div class = "line" >< a id = "l00230" name = "l00230" ></ a >< span class = "lineno" > 230</ span > < span class = "keywordflow" > if</ span > (transformValid)</ div >
< div class = "line" >< a id = "l00231" name = "l00231" ></ a >< span class = "lineno" > 231</ span > {</ div >
< div class = "line" >< a id = "l00232" name = "l00232" ></ a >< span class = "lineno" > 232</ span > transformRot = transform.< a class = "code hl_function" href = "classrtabmap_1_1Transform.html#aeed78122de7f78a13641802b964d9631" > rotation</ a > ();</ div >
< div class = "line" >< a id = "l00233" name = "l00233" ></ a >< span class = "lineno" > 233</ span > }</ div >
< div class = "line" >< a id = "l00234" name = "l00234" ></ a >< span class = "lineno" > 234</ span > < span class = "keywordtype" > int</ span > oi=0;</ div >
< div class = "line" >< a id = "l00235" name = "l00235" ></ a >< span class = "lineno" > 235</ span > < a class = "code hl_define" href = "ULogger_8h.html#ab3436168e27946669bbd4c76e4c4007e" > UASSERT</ a > (cloud.height == 1 || cloud.row_step != 0);</ div >
< div class = "line" >< a id = "l00236" name = "l00236" ></ a >< span class = "lineno" > 236</ span > < span class = "keywordflow" > for</ span > (uint32_t row = 0; row < (uint32_t)cloud.height; ++row)</ div >
< div class = "line" >< a id = "l00237" name = "l00237" ></ a >< span class = "lineno" > 237</ span > {</ div >
< div class = "line" >< a id = "l00238" name = "l00238" ></ a >< span class = "lineno" > 238</ span > < span class = "keyword" > const</ span > uint8_t* row_data = & cloud.data[row * cloud.row_step];</ div >
< div class = "line" >< a id = "l00239" name = "l00239" ></ a >< span class = "lineno" > 239</ span > < span class = "keywordflow" > for</ span > (uint32_t col = 0; col < (uint32_t)cloud.width; ++col)</ div >
< div class = "line" >< a id = "l00240" name = "l00240" ></ a >< span class = "lineno" > 240</ span > {</ div >
< div class = "line" >< a id = "l00241" name = "l00241" ></ a >< span class = "lineno" > 241</ span > < span class = "keyword" > const</ span > uint8_t* msg_data = row_data + col * cloud.point_step;</ div >
< div class = "line" >< a id = "l00242" name = "l00242" ></ a >< span class = "lineno" > 242</ span > </ div >
< div class = "line" >< a id = "l00243" name = "l00243" ></ a >< span class = "lineno" > 243</ span > < span class = "keywordtype" > float</ span > * ptr = laserScan.ptr< < span class = "keywordtype" > float</ span > > (0, oi);</ div >
< div class = "line" >< a id = "l00244" name = "l00244" ></ a >< span class = "lineno" > 244</ span > </ div >
< div class = "line" >< a id = "l00245" name = "l00245" ></ a >< span class = "lineno" > 245</ span > < span class = "keywordtype" > bool</ span > valid = < span class = "keyword" > true</ span > ;</ div >
< div class = "line" >< a id = "l00246" name = "l00246" ></ a >< span class = "lineno" > 246</ span > < span class = "keywordflow" > if</ span > (laserScan.channels() == 2)</ div >
< div class = "line" >< a id = "l00247" name = "l00247" ></ a >< span class = "lineno" > 247</ span > {</ div >
< div class = "line" >< a id = "l00248" name = "l00248" ></ a >< span class = "lineno" > 248</ span > ptr[0] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[0]);</ div >
< div class = "line" >< a id = "l00249" name = "l00249" ></ a >< span class = "lineno" > 249</ span > ptr[1] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[1]);</ div >
< div class = "line" >< a id = "l00250" name = "l00250" ></ a >< span class = "lineno" > 250</ span > valid = < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[0]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[1]);</ div >
< div class = "line" >< a id = "l00251" name = "l00251" ></ a >< span class = "lineno" > 251</ span > }</ div >
< div class = "line" >< a id = "l00252" name = "l00252" ></ a >< span class = "lineno" > 252</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (laserScan.channels() == 3)</ div >
< div class = "line" >< a id = "l00253" name = "l00253" ></ a >< span class = "lineno" > 253</ span > {</ div >
< div class = "line" >< a id = "l00254" name = "l00254" ></ a >< span class = "lineno" > 254</ span > ptr[0] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[0]);</ div >
< div class = "line" >< a id = "l00255" name = "l00255" ></ a >< span class = "lineno" > 255</ span > ptr[1] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[1]);</ div >
< div class = "line" >< a id = "l00256" name = "l00256" ></ a >< span class = "lineno" > 256</ span > < span class = "keywordflow" > if</ span > (format == < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007abb92c193b2eb76045e1a141c2a42cc00" > LaserScan::kXYI</ a > )</ div >
< div class = "line" >< a id = "l00257" name = "l00257" ></ a >< span class = "lineno" > 257</ span > {</ div >
< div class = "line" >< a id = "l00258" name = "l00258" ></ a >< span class = "lineno" > 258</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[7]);</ div >
< div class = "line" >< a id = "l00259" name = "l00259" ></ a >< span class = "lineno" > 259</ span > }</ div >
< div class = "line" >< a id = "l00260" name = "l00260" ></ a >< span class = "lineno" > 260</ span > < span class = "keywordflow" > else</ span > < span class = "comment" > // XYZ</ span ></ div >
< div class = "line" >< a id = "l00261" name = "l00261" ></ a >< span class = "lineno" > 261</ span > {</ div >
< div class = "line" >< a id = "l00262" name = "l00262" ></ a >< span class = "lineno" > 262</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[2]);</ div >
< div class = "line" >< a id = "l00263" name = "l00263" ></ a >< span class = "lineno" > 263</ span > valid = < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[0]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[1]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[2]);</ div >
< div class = "line" >< a id = "l00264" name = "l00264" ></ a >< span class = "lineno" > 264</ span > }</ div >
< div class = "line" >< a id = "l00265" name = "l00265" ></ a >< span class = "lineno" > 265</ span > }</ div >
< div class = "line" >< a id = "l00266" name = "l00266" ></ a >< span class = "lineno" > 266</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (laserScan.channels() == 4)</ div >
< div class = "line" >< a id = "l00267" name = "l00267" ></ a >< span class = "lineno" > 267</ span > {</ div >
< div class = "line" >< a id = "l00268" name = "l00268" ></ a >< span class = "lineno" > 268</ span > ptr[0] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[0]);</ div >
< div class = "line" >< a id = "l00269" name = "l00269" ></ a >< span class = "lineno" > 269</ span > ptr[1] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[1]);</ div >
< div class = "line" >< a id = "l00270" name = "l00270" ></ a >< span class = "lineno" > 270</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[2]);</ div >
< div class = "line" >< a id = "l00271" name = "l00271" ></ a >< span class = "lineno" > 271</ span > < span class = "keywordflow" > if</ span > (format == < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a5efd7fbf18cee72d9eb2daa4ea818e42" > LaserScan::kXYZI</ a > )</ div >
< div class = "line" >< a id = "l00272" name = "l00272" ></ a >< span class = "lineno" > 272</ span > {</ div >
< div class = "line" >< a id = "l00273" name = "l00273" ></ a >< span class = "lineno" > 273</ span > ptr[3] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[7]);</ div >
< div class = "line" >< a id = "l00274" name = "l00274" ></ a >< span class = "lineno" > 274</ span > }</ div >
< div class = "line" >< a id = "l00275" name = "l00275" ></ a >< span class = "lineno" > 275</ span > < span class = "keywordflow" > else</ span > < span class = "comment" > // XYZRGB</ span ></ div >
< div class = "line" >< a id = "l00276" name = "l00276" ></ a >< span class = "lineno" > 276</ span > {</ div >
< div class = "line" >< a id = "l00277" name = "l00277" ></ a >< span class = "lineno" > 277</ span >< span class = "preprocessor" > #if PCL_VERSION_COMPARE(> =, 1, 10, 0)</ span ></ div >
< div class = "line" >< a id = "l00278" name = "l00278" ></ a >< span class = "lineno" > 278</ span > std::uint8_t b=*(msg_data + fieldOffsets[6]);</ div >
< div class = "line" >< a id = "l00279" name = "l00279" ></ a >< span class = "lineno" > 279</ span > std::uint8_t g=*(msg_data + fieldOffsets[6]+1);</ div >
< div class = "line" >< a id = "l00280" name = "l00280" ></ a >< span class = "lineno" > 280</ span > std::uint8_t r=*(msg_data + fieldOffsets[6]+2);</ div >
< div class = "line" >< a id = "l00281" name = "l00281" ></ a >< span class = "lineno" > 281</ span >< span class = "preprocessor" > #else</ span ></ div >
< div class = "line" >< a id = "l00282" name = "l00282" ></ a >< span class = "lineno" > 282</ span > pcl::uint8_t b=*(msg_data + fieldOffsets[6]);</ div >
< div class = "line" >< a id = "l00283" name = "l00283" ></ a >< span class = "lineno" > 283</ span > pcl::uint8_t g=*(msg_data + fieldOffsets[6]+1);</ div >
< div class = "line" >< a id = "l00284" name = "l00284" ></ a >< span class = "lineno" > 284</ span > pcl::uint8_t r=*(msg_data + fieldOffsets[6]+2);</ div >
< div class = "line" >< a id = "l00285" name = "l00285" ></ a >< span class = "lineno" > 285</ span >< span class = "preprocessor" > #endif</ span ></ div >
< div class = "line" >< a id = "l00286" name = "l00286" ></ a >< span class = "lineno" > 286</ span > < span class = "keywordtype" > int</ span > * ptrInt = (< span class = "keywordtype" > int</ span > *)ptr;</ div >
< div class = "line" >< a id = "l00287" name = "l00287" ></ a >< span class = "lineno" > 287</ span > ptrInt[3] = int(b) | (int(g) << 8) | (< span class = "keywordtype" > int</ span > (r) << 16);</ div >
< div class = "line" >< a id = "l00288" name = "l00288" ></ a >< span class = "lineno" > 288</ span > }</ div >
< div class = "line" >< a id = "l00289" name = "l00289" ></ a >< span class = "lineno" > 289</ span > valid = < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[0]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[1]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[2]);</ div >
< div class = "line" >< a id = "l00290" name = "l00290" ></ a >< span class = "lineno" > 290</ span > }</ div >
< div class = "line" >< a id = "l00291" name = "l00291" ></ a >< span class = "lineno" > 291</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (laserScan.channels() == 5)</ div >
< div class = "line" >< a id = "l00292" name = "l00292" ></ a >< span class = "lineno" > 292</ span > {</ div >
< div class = "line" >< a id = "l00293" name = "l00293" ></ a >< span class = "lineno" > 293</ span > ptr[0] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[0]);</ div >
< div class = "line" >< a id = "l00294" name = "l00294" ></ a >< span class = "lineno" > 294</ span > ptr[1] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[1]);</ div >
< div class = "line" >< a id = "l00295" name = "l00295" ></ a >< span class = "lineno" > 295</ span > < span class = "keywordflow" > if</ span > (format == < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007ab169cf98665cb3f33d81240b37cc501c" > LaserScan::kXYZIT</ a > )</ div >
< div class = "line" >< a id = "l00296" name = "l00296" ></ a >< span class = "lineno" > 296</ span > {</ div >
< div class = "line" >< a id = "l00297" name = "l00297" ></ a >< span class = "lineno" > 297</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[2]);</ div >
< div class = "line" >< a id = "l00298" name = "l00298" ></ a >< span class = "lineno" > 298</ span > ptr[3] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[7]);</ div >
< div class = "line" >< a id = "l00299" name = "l00299" ></ a >< span class = "lineno" > 299</ span > ptr[4] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[8]);</ div >
< div class = "line" >< a id = "l00300" name = "l00300" ></ a >< span class = "lineno" > 300</ span > }</ div >
< div class = "line" >< a id = "l00301" name = "l00301" ></ a >< span class = "lineno" > 301</ span > < span class = "keywordflow" > else</ span > < span class = "comment" > // kXYNormal</ span ></ div >
< div class = "line" >< a id = "l00302" name = "l00302" ></ a >< span class = "lineno" > 302</ span > {</ div >
< div class = "line" >< a id = "l00303" name = "l00303" ></ a >< span class = "lineno" > 303</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[3]);</ div >
< div class = "line" >< a id = "l00304" name = "l00304" ></ a >< span class = "lineno" > 304</ span > ptr[3] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[4]);</ div >
< div class = "line" >< a id = "l00305" name = "l00305" ></ a >< span class = "lineno" > 305</ span > ptr[4] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[5]);</ div >
< div class = "line" >< a id = "l00306" name = "l00306" ></ a >< span class = "lineno" > 306</ span > }</ div >
< div class = "line" >< a id = "l00307" name = "l00307" ></ a >< span class = "lineno" > 307</ span > valid = < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[0]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[1]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[2]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[3]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[4]);</ div >
< div class = "line" >< a id = "l00308" name = "l00308" ></ a >< span class = "lineno" > 308</ span > }</ div >
< div class = "line" >< a id = "l00309" name = "l00309" ></ a >< span class = "lineno" > 309</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (laserScan.channels() == 6)</ div >
< div class = "line" >< a id = "l00310" name = "l00310" ></ a >< span class = "lineno" > 310</ span > {</ div >
< div class = "line" >< a id = "l00311" name = "l00311" ></ a >< span class = "lineno" > 311</ span > ptr[0] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[0]);</ div >
< div class = "line" >< a id = "l00312" name = "l00312" ></ a >< span class = "lineno" > 312</ span > ptr[1] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[1]);</ div >
< div class = "line" >< a id = "l00313" name = "l00313" ></ a >< span class = "lineno" > 313</ span > < span class = "keywordflow" > if</ span > (format == < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a7df3c8f97dd52461787060befaf7f2d7" > LaserScan::kXYZIRT</ a > )</ div >
< div class = "line" >< a id = "l00314" name = "l00314" ></ a >< span class = "lineno" > 314</ span > {</ div >
< div class = "line" >< a id = "l00315" name = "l00315" ></ a >< span class = "lineno" > 315</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[2]);</ div >
< div class = "line" >< a id = "l00316" name = "l00316" ></ a >< span class = "lineno" > 316</ span > ptr[3] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[7]);</ div >
< div class = "line" >< a id = "l00317" name = "l00317" ></ a >< span class = "lineno" > 317</ span > ptr[4] = float(*(< span class = "keywordtype" > unsigned</ span > < span class = "keywordtype" > short</ span > *)(msg_data + fieldOffsets[9])); < span class = "comment" > // Convert 16U to float</ span ></ div >
< div class = "line" >< a id = "l00318" name = "l00318" ></ a >< span class = "lineno" > 318</ span > ptr[5] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[8]);</ div >
< div class = "line" >< a id = "l00319" name = "l00319" ></ a >< span class = "lineno" > 319</ span > }</ div >
< div class = "line" >< a id = "l00320" name = "l00320" ></ a >< span class = "lineno" > 320</ span > < span class = "keywordflow" > else</ span > < span class = "comment" > // with normal</ span ></ div >
< div class = "line" >< a id = "l00321" name = "l00321" ></ a >< span class = "lineno" > 321</ span > {</ div >
< div class = "line" >< a id = "l00322" name = "l00322" ></ a >< span class = "lineno" > 322</ span > < span class = "keywordflow" > if</ span > (format == < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a799064c7e31b99134871b5d7d2906f97" > LaserScan::kXYINormal</ a > )</ div >
< div class = "line" >< a id = "l00323" name = "l00323" ></ a >< span class = "lineno" > 323</ span > {</ div >
< div class = "line" >< a id = "l00324" name = "l00324" ></ a >< span class = "lineno" > 324</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[7]);</ div >
< div class = "line" >< a id = "l00325" name = "l00325" ></ a >< span class = "lineno" > 325</ span > }</ div >
< div class = "line" >< a id = "l00326" name = "l00326" ></ a >< span class = "lineno" > 326</ span > < span class = "keywordflow" > else</ span > < span class = "comment" > // XYZNormal</ span ></ div >
< div class = "line" >< a id = "l00327" name = "l00327" ></ a >< span class = "lineno" > 327</ span > {</ div >
< div class = "line" >< a id = "l00328" name = "l00328" ></ a >< span class = "lineno" > 328</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[2]);</ div >
< div class = "line" >< a id = "l00329" name = "l00329" ></ a >< span class = "lineno" > 329</ span > }</ div >
< div class = "line" >< a id = "l00330" name = "l00330" ></ a >< span class = "lineno" > 330</ span > ptr[3] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[3]);</ div >
< div class = "line" >< a id = "l00331" name = "l00331" ></ a >< span class = "lineno" > 331</ span > ptr[4] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[4]);</ div >
< div class = "line" >< a id = "l00332" name = "l00332" ></ a >< span class = "lineno" > 332</ span > ptr[5] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[5]);</ div >
< div class = "line" >< a id = "l00333" name = "l00333" ></ a >< span class = "lineno" > 333</ span > }</ div >
< div class = "line" >< a id = "l00334" name = "l00334" ></ a >< span class = "lineno" > 334</ span > valid = < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[0]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[1]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[2]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[3]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[4]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[5]);</ div >
< div class = "line" >< a id = "l00335" name = "l00335" ></ a >< span class = "lineno" > 335</ span > }</ div >
< div class = "line" >< a id = "l00336" name = "l00336" ></ a >< span class = "lineno" > 336</ span > < span class = "keywordflow" > else</ span > < span class = "keywordflow" > if</ span > (laserScan.channels() == 7)</ div >
< div class = "line" >< a id = "l00337" name = "l00337" ></ a >< span class = "lineno" > 337</ span > {</ div >
< div class = "line" >< a id = "l00338" name = "l00338" ></ a >< span class = "lineno" > 338</ span > ptr[0] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[0]);</ div >
< div class = "line" >< a id = "l00339" name = "l00339" ></ a >< span class = "lineno" > 339</ span > ptr[1] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[1]);</ div >
< div class = "line" >< a id = "l00340" name = "l00340" ></ a >< span class = "lineno" > 340</ span > ptr[2] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[2]);</ div >
< div class = "line" >< a id = "l00341" name = "l00341" ></ a >< span class = "lineno" > 341</ span > < span class = "keywordflow" > if</ span > (format == < a class = "code hl_enumvalue" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" > LaserScan::kXYZINormal</ a > )</ div >
< div class = "line" >< a id = "l00342" name = "l00342" ></ a >< span class = "lineno" > 342</ span > {</ div >
< div class = "line" >< a id = "l00343" name = "l00343" ></ a >< span class = "lineno" > 343</ span > ptr[3] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[7]);</ div >
< div class = "line" >< a id = "l00344" name = "l00344" ></ a >< span class = "lineno" > 344</ span > }</ div >
< div class = "line" >< a id = "l00345" name = "l00345" ></ a >< span class = "lineno" > 345</ span > < span class = "keywordflow" > else</ span > < span class = "comment" > // XYZRGBNormal</ span ></ div >
< div class = "line" >< a id = "l00346" name = "l00346" ></ a >< span class = "lineno" > 346</ span > {</ div >
< div class = "line" >< a id = "l00347" name = "l00347" ></ a >< span class = "lineno" > 347</ span >< span class = "preprocessor" > #if PCL_VERSION_COMPARE(> =, 1, 10, 0)</ span ></ div >
< div class = "line" >< a id = "l00348" name = "l00348" ></ a >< span class = "lineno" > 348</ span > std::uint8_t b=*(msg_data + fieldOffsets[6]);</ div >
< div class = "line" >< a id = "l00349" name = "l00349" ></ a >< span class = "lineno" > 349</ span > std::uint8_t g=*(msg_data + fieldOffsets[6]+1);</ div >
< div class = "line" >< a id = "l00350" name = "l00350" ></ a >< span class = "lineno" > 350</ span > std::uint8_t r=*(msg_data + fieldOffsets[6]+2);</ div >
< div class = "line" >< a id = "l00351" name = "l00351" ></ a >< span class = "lineno" > 351</ span >< span class = "preprocessor" > #else</ span ></ div >
< div class = "line" >< a id = "l00352" name = "l00352" ></ a >< span class = "lineno" > 352</ span > pcl::uint8_t b=*(msg_data + fieldOffsets[6]);</ div >
< div class = "line" >< a id = "l00353" name = "l00353" ></ a >< span class = "lineno" > 353</ span > pcl::uint8_t g=*(msg_data + fieldOffsets[6]+1);</ div >
< div class = "line" >< a id = "l00354" name = "l00354" ></ a >< span class = "lineno" > 354</ span > pcl::uint8_t r=*(msg_data + fieldOffsets[6]+2);</ div >
< div class = "line" >< a id = "l00355" name = "l00355" ></ a >< span class = "lineno" > 355</ span >< span class = "preprocessor" > #endif</ span ></ div >
< div class = "line" >< a id = "l00356" name = "l00356" ></ a >< span class = "lineno" > 356</ span > < span class = "keywordtype" > int</ span > * ptrInt = (< span class = "keywordtype" > int</ span > *)ptr;</ div >
< div class = "line" >< a id = "l00357" name = "l00357" ></ a >< span class = "lineno" > 357</ span > ptrInt[3] = int(b) | (int(g) << 8) | (< span class = "keywordtype" > int</ span > (r) << 16);</ div >
< div class = "line" >< a id = "l00358" name = "l00358" ></ a >< span class = "lineno" > 358</ span > }</ div >
< div class = "line" >< a id = "l00359" name = "l00359" ></ a >< span class = "lineno" > 359</ span > ptr[4] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[3]);</ div >
< div class = "line" >< a id = "l00360" name = "l00360" ></ a >< span class = "lineno" > 360</ span > ptr[5] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[4]);</ div >
< div class = "line" >< a id = "l00361" name = "l00361" ></ a >< span class = "lineno" > 361</ span > ptr[6] = *(< span class = "keywordtype" > float</ span > *)(msg_data + fieldOffsets[5]);</ div >
< div class = "line" >< a id = "l00362" name = "l00362" ></ a >< span class = "lineno" > 362</ span > valid = < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[0]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[1]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[2]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[4]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[5]) && < a class = "code hl_function" href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a > (ptr[6]);</ div >
< div class = "line" >< a id = "l00363" name = "l00363" ></ a >< span class = "lineno" > 363</ span > }</ div >
< div class = "line" >< a id = "l00364" name = "l00364" ></ a >< span class = "lineno" > 364</ span > < span class = "keywordflow" > else</ span ></ div >
< div class = "line" >< a id = "l00365" name = "l00365" ></ a >< span class = "lineno" > 365</ span > {</ div >
< div class = "line" >< a id = "l00366" name = "l00366" ></ a >< span class = "lineno" > 366</ span > < a class = "code hl_define" href = "ULogger_8h.html#aabc10368a622911d56a4dd5a4b461385" > UFATAL</ a > (< span class = "stringliteral" > " Cannot handle as many channels (%d)!" </ span > , laserScan.channels());</ div >
< div class = "line" >< a id = "l00367" name = "l00367" ></ a >< span class = "lineno" > 367</ span > }</ div >
< div class = "line" >< a id = "l00368" name = "l00368" ></ a >< span class = "lineno" > 368</ span > </ div >
< div class = "line" >< a id = "l00369" name = "l00369" ></ a >< span class = "lineno" > 369</ span > < span class = "keywordflow" > if</ span > (!filterNaNs || valid)</ div >
< div class = "line" >< a id = "l00370" name = "l00370" ></ a >< span class = "lineno" > 370</ span > {</ div >
< div class = "line" >< a id = "l00371" name = "l00371" ></ a >< span class = "lineno" > 371</ span > < span class = "keywordflow" > if</ span > (valid && transformValid)</ div >
< div class = "line" >< a id = "l00372" name = "l00372" ></ a >< span class = "lineno" > 372</ span > {</ div >
< div class = "line" >< a id = "l00373" name = "l00373" ></ a >< span class = "lineno" > 373</ span > cv::Point3f pt = < a class = "code hl_function" href = "group__TransformPoint.html#ga88b4f827a105254bf08bdae73cebdbe9" > util3d::transformPoint</ a > (cv::Point3f(ptr[0], ptr[1], is3D?ptr[3]:0), transform);</ div >
< div class = "line" >< a id = "l00374" name = "l00374" ></ a >< span class = "lineno" > 374</ span > ptr[0] = pt.x;</ div >
< div class = "line" >< a id = "l00375" name = "l00375" ></ a >< span class = "lineno" > 375</ span > ptr[1] = pt.y;</ div >
< div class = "line" >< a id = "l00376" name = "l00376" ></ a >< span class = "lineno" > 376</ span > < span class = "keywordflow" > if</ span > (is3D)</ div >
< div class = "line" >< a id = "l00377" name = "l00377" ></ a >< span class = "lineno" > 377</ span > {</ div >
< div class = "line" >< a id = "l00378" name = "l00378" ></ a >< span class = "lineno" > 378</ span > ptr[2] = pt.z;</ div >
< div class = "line" >< a id = "l00379" name = "l00379" ></ a >< span class = "lineno" > 379</ span > }</ div >
< div class = "line" >< a id = "l00380" name = "l00380" ></ a >< span class = "lineno" > 380</ span > < span class = "keywordflow" > if</ span > (hasNormals)</ div >
< div class = "line" >< a id = "l00381" name = "l00381" ></ a >< span class = "lineno" > 381</ span > {</ div >
< div class = "line" >< a id = "l00382" name = "l00382" ></ a >< span class = "lineno" > 382</ span > pt = < a class = "code hl_function" href = "group__TransformPoint.html#ga88b4f827a105254bf08bdae73cebdbe9" > util3d::transformPoint</ a > (cv::Point3f(ptr[outputNormalOffset], ptr[outputNormalOffset+1], ptr[outputNormalOffset+2]), transformRot);</ div >
< div class = "line" >< a id = "l00383" name = "l00383" ></ a >< span class = "lineno" > 383</ span > ptr[outputNormalOffset] = pt.x;</ div >
< div class = "line" >< a id = "l00384" name = "l00384" ></ a >< span class = "lineno" > 384</ span > ptr[outputNormalOffset+1] = pt.y;</ div >
< div class = "line" >< a id = "l00385" name = "l00385" ></ a >< span class = "lineno" > 385</ span > ptr[outputNormalOffset+2] = pt.z;</ div >
< div class = "line" >< a id = "l00386" name = "l00386" ></ a >< span class = "lineno" > 386</ span > }</ div >
< div class = "line" >< a id = "l00387" name = "l00387" ></ a >< span class = "lineno" > 387</ span > }</ div >
< div class = "line" >< a id = "l00388" name = "l00388" ></ a >< span class = "lineno" > 388</ span > </ div >
< div class = "line" >< a id = "l00389" name = "l00389" ></ a >< span class = "lineno" > 389</ span > ++oi;</ div >
< div class = "line" >< a id = "l00390" name = "l00390" ></ a >< span class = "lineno" > 390</ span > }</ div >
< div class = "line" >< a id = "l00391" name = "l00391" ></ a >< span class = "lineno" > 391</ span > }</ div >
< div class = "line" >< a id = "l00392" name = "l00392" ></ a >< span class = "lineno" > 392</ span > }</ div >
< div class = "line" >< a id = "l00393" name = "l00393" ></ a >< span class = "lineno" > 393</ span > < span class = "keywordflow" > if</ span > (oi == 0)</ div >
< div class = "line" >< a id = "l00394" name = "l00394" ></ a >< span class = "lineno" > 394</ span > {</ div >
< div class = "line" >< a id = "l00395" name = "l00395" ></ a >< span class = "lineno" > 395</ span > < span class = "keywordflow" > return</ span > < a class = "code hl_class" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > ();</ div >
< div class = "line" >< a id = "l00396" name = "l00396" ></ a >< span class = "lineno" > 396</ span > }</ div >
< div class = "line" >< a id = "l00397" name = "l00397" ></ a >< span class = "lineno" > 397</ span > < span class = "keywordflow" > return</ span > < a class = "code hl_class" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > (laserScan(cv::Range::all(), cv::Range(0,oi)), 0, 0, format);</ div >
< div class = "line" >< a id = "l00398" name = "l00398" ></ a >< span class = "lineno" > 398</ span > }</ div >
</ div >
< div class = "line" >< a id = "l00399" name = "l00399" ></ a >< span class = "lineno" > 399</ span > </ div >
< div class = "line" >< a id = "l00400" name = "l00400" ></ a >< span class = "lineno" > 400</ span > }</ div >
2026-08-02 07:56:38 +00:00
</ div >
2026-08-02 01:36:11 +00:00
< div class = "line" >< a id = "l00401" name = "l00401" ></ a >< span class = "lineno" > 401</ span > }</ div >
< div class = "line" >< a id = "l00402" name = "l00402" ></ a >< span class = "lineno" > 402</ span > </ div >
< div class = "line" >< a id = "l00403" name = "l00403" ></ a >< span class = "lineno" > 403</ span >< span class = "preprocessor" > #endif </ span >< span class = "comment" > /* UTIL3D_HPP_ */</ span >< span class = "preprocessor" ></ span ></ div >
< div class = "ttc" id = "aULogger_8h_html_a1249ddbc4c9cc43be53048c08dda129b" >< div class = "ttname" >< a href = "ULogger_8h.html#a1249ddbc4c9cc43be53048c08dda129b" > UERROR</ a ></ div >< div class = "ttdeci" > #define UERROR(...)</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "ULogger_8h_source.html#l00062" > ULogger.h:62</ a ></ div ></ div >
< div class = "ttc" id = "aULogger_8h_html_a9104cb408bf9019db2a2c4476835db4a" >< div class = "ttname" >< a href = "ULogger_8h.html#a9104cb408bf9019db2a2c4476835db4a" > UDEBUG</ a ></ div >< div class = "ttdeci" > #define UDEBUG(...)</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "ULogger_8h_source.html#l00059" > ULogger.h:59</ a ></ div ></ div >
< div class = "ttc" id = "aULogger_8h_html_aabc10368a622911d56a4dd5a4b461385" >< div class = "ttname" >< a href = "ULogger_8h.html#aabc10368a622911d56a4dd5a4b461385" > UFATAL</ a ></ div >< div class = "ttdeci" > #define UFATAL(...)</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "ULogger_8h_source.html#l00063" > ULogger.h:63</ a ></ div ></ div >
< div class = "ttc" id = "aULogger_8h_html_ab3436168e27946669bbd4c76e4c4007e" >< div class = "ttname" >< a href = "ULogger_8h.html#ab3436168e27946669bbd4c76e4c4007e" > UASSERT</ a ></ div >< div class = "ttdeci" > #define UASSERT(condition)</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "ULogger_8h_source.html#l00066" > ULogger.h:66</ a ></ div ></ div >
< div class = "ttc" id = "aULogger_8h_html_ab5a739ad9340455e46eaa570f8223d9a" >< div class = "ttname" >< a href = "ULogger_8h.html#ab5a739ad9340455e46eaa570f8223d9a" > UWARN</ a ></ div >< div class = "ttdeci" > #define UWARN(...)</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "ULogger_8h_source.html#l00061" > ULogger.h:61</ a ></ div ></ div >
< div class = "ttc" id = "aUMath_8h_html_abc9c1a676bf1b33a7d2bc0452a04fed3" >< div class = "ttname" >< a href = "UMath_8h.html#abc9c1a676bf1b33a7d2bc0452a04fed3" > uIsFinite</ a ></ div >< div class = "ttdeci" > bool uIsFinite(const T & value)</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "UMath_8h_source.html#l00053" > UMath.h:53</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html" > rtabmap::LaserScan</ a ></ div >< div class = "ttdoc" > Represents 2D or 3D laser scan data with support for multiple point data formats.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00045" > LaserScan.h:46</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007" > rtabmap::LaserScan::Format</ a ></ div >< div class = "ttdeci" > Format</ div >< div class = "ttdoc" > Enumeration of possible formats for laser scan data.</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00055" > LaserScan.h:55</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a09e67f9495016103a162854b8e852bbc" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a09e67f9495016103a162854b8e852bbc" > rtabmap::LaserScan::kXYZNormal</ a ></ div >< div class = "ttdeci" > @ kXYZNormal</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00064" > LaserScan.h:64</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a0c376810ac499a8a93a02bd0d4a19267" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a0c376810ac499a8a93a02bd0d4a19267" > rtabmap::LaserScan::kXYZ</ a ></ div >< div class = "ttdeci" > @ kXYZ</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00061" > LaserScan.h:61</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" > rtabmap::LaserScan::kXYZINormal</ a ></ div >< div class = "ttdeci" > @ kXYZINormal</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00065" > LaserScan.h:65</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a4f3e7340e44a01b48ccaf8e1f8dca3e1" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a4f3e7340e44a01b48ccaf8e1f8dca3e1" > rtabmap::LaserScan::kXY</ a ></ div >< div class = "ttdeci" > @ kXY</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00057" > LaserScan.h:57</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a500cf2179e454d8d5a74895b301c0829" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a500cf2179e454d8d5a74895b301c0829" > rtabmap::LaserScan::kXYZRGB</ a ></ div >< div class = "ttdeci" > @ kXYZRGB</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00063" > LaserScan.h:63</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a5efd7fbf18cee72d9eb2daa4ea818e42" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a5efd7fbf18cee72d9eb2daa4ea818e42" > rtabmap::LaserScan::kXYZI</ a ></ div >< div class = "ttdeci" > @ kXYZI</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00062" > LaserScan.h:62</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a799064c7e31b99134871b5d7d2906f97" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a799064c7e31b99134871b5d7d2906f97" > rtabmap::LaserScan::kXYINormal</ a ></ div >< div class = "ttdeci" > @ kXYINormal</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00060" > LaserScan.h:60</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007a7df3c8f97dd52461787060befaf7f2d7" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a7df3c8f97dd52461787060befaf7f2d7" > rtabmap::LaserScan::kXYZIRT</ a ></ div >< div class = "ttdeci" > @ kXYZIRT</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00069" > LaserScan.h:68</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007ab169cf98665cb3f33d81240b37cc501c" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007ab169cf98665cb3f33d81240b37cc501c" > rtabmap::LaserScan::kXYZIT</ a ></ div >< div class = "ttdeci" > @ kXYZIT</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00067" > LaserScan.h:67</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007abb92c193b2eb76045e1a141c2a42cc00" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007abb92c193b2eb76045e1a141c2a42cc00" > rtabmap::LaserScan::kXYI</ a ></ div >< div class = "ttdeci" > @ kXYI</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00058" > LaserScan.h:58</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007ad4c3ec9f057875ade4f21f52901bceb5" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007ad4c3ec9f057875ade4f21f52901bceb5" > rtabmap::LaserScan::kXYNormal</ a ></ div >< div class = "ttdeci" > @ kXYNormal</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00059" > LaserScan.h:59</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1LaserScan_html_a38f5602d1411c204d54be9b3c7320007af2d5b7ff94aeac818000d840e257ac07" >< div class = "ttname" >< a href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007af2d5b7ff94aeac818000d840e257ac07" > rtabmap::LaserScan::kXYZRGBNormal</ a ></ div >< div class = "ttdeci" > @ kXYZRGBNormal</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "LaserScan_8h_source.html#l00066" > LaserScan.h:66</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Transform_html" >< div class = "ttname" >< a href = "classrtabmap_1_1Transform.html" > rtabmap::Transform</ a ></ div >< div class = "ttdoc" > Represents a 3D rigid body transformation (rotation + translation).</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "Transform_8h_source.html#l00052" > Transform.h:53</ a ></ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Transform_html_a0d6a1985391a45de4fe208e58c51b9d2" >< div class = "ttname" >< a href = "classrtabmap_1_1Transform.html#a0d6a1985391a45de4fe208e58c51b9d2" > rtabmap::Transform::isNull</ a ></ div >< div class = "ttdeci" > bool isNull() const</ div >< div class = "ttdoc" > Checks whether the transform is null (all zeros).</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Transform_html_ae0636052ce31698d4d45afe4492ffab9" >< div class = "ttname" >< a href = "classrtabmap_1_1Transform.html#ae0636052ce31698d4d45afe4492ffab9" > rtabmap::Transform::isIdentity</ a ></ div >< div class = "ttdeci" > bool isIdentity() const</ div >< div class = "ttdoc" > Checks whether the transform is identity.</ div ></ div >
< div class = "ttc" id = "aclassrtabmap_1_1Transform_html_aeed78122de7f78a13641802b964d9631" >< div class = "ttname" >< a href = "classrtabmap_1_1Transform.html#aeed78122de7f78a13641802b964d9631" > rtabmap::Transform::rotation</ a ></ div >< div class = "ttdeci" > Transform rotation() const</ div >< div class = "ttdoc" > Returns only the rotation component.</ div ></ div >
< div class = "ttc" id = "agroup__LaserScanFromPointCloud_html_ga078f5eae0077169e636ec76e03973edc" >< div class = "ttname" >< a href = "group__LaserScanFromPointCloud.html#ga078f5eae0077169e636ec76e03973edc" > rtabmap::util3d::laserScanFromPointCloud</ a ></ div >< div class = "ttdeci" > LaserScan laserScanFromPointCloud(const PointCloud2T & cloud, bool filterNaNs, bool is2D, const Transform & transform)</ div >< div class = "ttdoc" > Convert pcl::PCLPointCloud2 to rtabmap::LaserScan with all supported fields (see rtabmap::LaserScan::...</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "util3d_8hpp_source.html#l00037" > util3d.hpp:37</ a ></ div ></ div >
< div class = "ttc" id = "agroup__TransformPoint_html_ga88b4f827a105254bf08bdae73cebdbe9" >< div class = "ttname" >< a href = "group__TransformPoint.html#ga88b4f827a105254bf08bdae73cebdbe9" > rtabmap::util3d::transformPoint</ a ></ div >< div class = "ttdeci" > cv::Point3f RTABMAP_CORE_EXPORT transformPoint(const cv::Point3f & pt, const Transform & transform)</ div >< div class = "ttdoc" > Transforms cv::Point3f point type.</ div ></ div >
< div class = "ttc" id = "anamespacertabmap_html" >< div class = "ttname" >< a href = "namespacertabmap.html" > rtabmap</ a ></ div >< div class = "ttdef" >< b > Definition</ b > < a href = "BayesFilter_8h_source.html#l00039" > BayesFilter.h:39</ a ></ div ></ div >
</ div > <!-- fragment --> </ div > <!-- contents -->
2026-08-02 07:56:38 +00:00
</ div > <!-- doc-content -->
2026-08-02 01:36:11 +00:00
<!-- start footer part -->
2026-08-02 07:56:38 +00:00
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" >< a class = "el" href = "dir_04d49acea3c42cab2afcd35cb2f2a48f.html" > corelib</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_e996b11fd4b3a747423759b16a8ba4a6.html" > include</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_ff01f7bc5399ccf9ff1cc91d1f45726a.html" > rtabmap</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_884419f21456e80aa47bc1d0c2ab0140.html" > core</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_67ee77bab1d00e5527b3ba66cff8b822.html" > impl</ a ></ li >< li class = "navelem" >< b > util3d.hpp</ b ></ 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 >
2026-08-02 01:36:11 +00:00
</ body >
</ html >