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: PCL to 3D LaserScan</ 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" />
< 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 >
</ 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 >
</ div > <!-- top -->
2026-08-02 07:56:38 +00:00
< 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 ( 'group__LaserScanFromPointCloud.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 = "summary" >
< a href = "#func-members" > Functions</ a > </ div >
< div class = "headertitle" >< div class = "title" > PCL to 3D LaserScan</ div ></ div >
</ div > <!--header-->
< div class = "contents" >
< p > Converts various PCL point cloud types into a unified < a class = "el" href = "classrtabmap_1_1LaserScan.html" title = "Represents 2D or 3D laser scan data with support for multiple point data formats." > LaserScan</ a > format.
< a href = "#details" > More...</ a ></ p >
< table class = "memberdecls" >
< tr class = "heading" >< td colspan = "2" >< h2 class = "groupheader" >< a id = "func-members" name = "func-members" ></ a >
Functions</ h2 ></ td ></ tr >
< tr class = "memitem:ga16a77d267dc60b14b5bf48ca52547bae" id = "r_ga16a77d267dc60b14b5bf48ca52547bae" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga16a77d267dc60b14b5bf48ca52547bae" name = "ga16a77d267dc60b14b5bf48ca52547bae" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZ > & cloud, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga16a77d267dc60b14b5bf48ca52547bae" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZ</ code > → (x, y, z) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a0c376810ac499a8a93a02bd0d4a19267" > LaserScan::kXYZ</ a > < br /></ td ></ tr >
< tr class = "separator:ga16a77d267dc60b14b5bf48ca52547bae" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga75f96d3e3d5d62ce6a9d16a1753c775a" id = "r_ga75f96d3e3d5d62ce6a9d16a1753c775a" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga75f96d3e3d5d62ce6a9d16a1753c775a" name = "ga75f96d3e3d5d62ce6a9d16a1753c775a" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZ > & cloud, const pcl::IndicesPtr & indices, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga75f96d3e3d5d62ce6a9d16a1753c775a" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZ</ code > → (x, y, z) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a0c376810ac499a8a93a02bd0d4a19267" > LaserScan::kXYZ</ a > < br /></ td ></ tr >
< tr class = "separator:ga75f96d3e3d5d62ce6a9d16a1753c775a" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga7a88e45c9bab555c6d1efd64be765c4d" id = "r_ga7a88e45c9bab555c6d1efd64be765c4d" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga7a88e45c9bab555c6d1efd64be765c4d" name = "ga7a88e45c9bab555c6d1efd64be765c4d" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointNormal > & cloud, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga7a88e45c9bab555c6d1efd64be765c4d" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointNormal</ code > → (x, y, z, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a09e67f9495016103a162854b8e852bbc" > LaserScan::kXYZNormal</ a > < br /></ td ></ tr >
< tr class = "separator:ga7a88e45c9bab555c6d1efd64be765c4d" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga9470f081e8de0a34550e91e2f74bacd5" id = "r_ga9470f081e8de0a34550e91e2f74bacd5" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga9470f081e8de0a34550e91e2f74bacd5" name = "ga9470f081e8de0a34550e91e2f74bacd5" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointNormal > & cloud, const pcl::IndicesPtr & indices, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga9470f081e8de0a34550e91e2f74bacd5" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointNormal</ code > → (x, y, z, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a09e67f9495016103a162854b8e852bbc" > LaserScan::kXYZNormal</ a > < br /></ td ></ tr >
< tr class = "separator:ga9470f081e8de0a34550e91e2f74bacd5" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:gad5764a399e3a8a5586b94490e0cd7d15" id = "r_gad5764a399e3a8a5586b94490e0cd7d15" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "gad5764a399e3a8a5586b94490e0cd7d15" name = "gad5764a399e3a8a5586b94490e0cd7d15" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZ > & cloud, const pcl::PointCloud< pcl::Normal > & normals, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:gad5764a399e3a8a5586b94490e0cd7d15" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointNormal</ code > → (x, y, z, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a09e67f9495016103a162854b8e852bbc" > LaserScan::kXYZNormal</ a > < br /></ td ></ tr >
< tr class = "separator:gad5764a399e3a8a5586b94490e0cd7d15" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga9933faab17e984b2789926abd2ba0caf" id = "r_ga9933faab17e984b2789926abd2ba0caf" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga9933faab17e984b2789926abd2ba0caf" name = "ga9933faab17e984b2789926abd2ba0caf" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZRGB > & cloud, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga9933faab17e984b2789926abd2ba0caf" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZRGB</ code > → (x, y, z, rgb) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a500cf2179e454d8d5a74895b301c0829" > LaserScan::kXYZRGB</ a > < br /></ td ></ tr >
< tr class = "separator:ga9933faab17e984b2789926abd2ba0caf" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:gaa98ccb732868f5ab4e91cd6f82602852" id = "r_gaa98ccb732868f5ab4e91cd6f82602852" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "gaa98ccb732868f5ab4e91cd6f82602852" name = "gaa98ccb732868f5ab4e91cd6f82602852" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZRGB > & cloud, const pcl::IndicesPtr & indices, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:gaa98ccb732868f5ab4e91cd6f82602852" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZRGB</ code > → (x, y, z, rgb) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a500cf2179e454d8d5a74895b301c0829" > LaserScan::kXYZRGB</ a > < br /></ td ></ tr >
< tr class = "separator:gaa98ccb732868f5ab4e91cd6f82602852" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:gadeb1f66fd39cfcb39c2f152c36b3be62" id = "r_gadeb1f66fd39cfcb39c2f152c36b3be62" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "gadeb1f66fd39cfcb39c2f152c36b3be62" name = "gadeb1f66fd39cfcb39c2f152c36b3be62" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZI > & cloud, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:gadeb1f66fd39cfcb39c2f152c36b3be62" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZI</ code > → (x, y, z, intensity) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a5efd7fbf18cee72d9eb2daa4ea818e42" > LaserScan::kXYZI</ a > < br /></ td ></ tr >
< tr class = "separator:gadeb1f66fd39cfcb39c2f152c36b3be62" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga51c683da166a9fcf7e7bf6c834ca03a4" id = "r_ga51c683da166a9fcf7e7bf6c834ca03a4" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga51c683da166a9fcf7e7bf6c834ca03a4" name = "ga51c683da166a9fcf7e7bf6c834ca03a4" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZI > & cloud, const pcl::IndicesPtr & indices, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga51c683da166a9fcf7e7bf6c834ca03a4" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZI</ code > → (x, y, z, intensity) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a5efd7fbf18cee72d9eb2daa4ea818e42" > LaserScan::kXYZI</ a > < br /></ td ></ tr >
< tr class = "separator:ga51c683da166a9fcf7e7bf6c834ca03a4" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga655a37385c6ca40ec99e76045c04040b" id = "r_ga655a37385c6ca40ec99e76045c04040b" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga655a37385c6ca40ec99e76045c04040b" name = "ga655a37385c6ca40ec99e76045c04040b" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< < a class = "el" href = "structrtabmap_1_1PointXYZIRT.html" > rtabmap::PointXYZIRT</ a > > & cloud, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga655a37385c6ca40ec99e76045c04040b" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code >< a class = "el" href = "structrtabmap_1_1PointXYZIRT.html" title = "This namespace contains 3D point cloud processing utilities." > rtabmap::PointXYZIRT</ a ></ code > → (x, y, z, intensity, ring time) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a7df3c8f97dd52461787060befaf7f2d7" > LaserScan::kXYZIRT</ a > < br /></ td ></ tr >
< tr class = "separator:ga655a37385c6ca40ec99e76045c04040b" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga04169bd4b4488350b08709af9581b289" id = "r_ga04169bd4b4488350b08709af9581b289" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga04169bd4b4488350b08709af9581b289" name = "ga04169bd4b4488350b08709af9581b289" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< < a class = "el" href = "structrtabmap_1_1PointXYZIRT.html" > rtabmap::PointXYZIRT</ a > > & cloud, const pcl::IndicesPtr & indices, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga04169bd4b4488350b08709af9581b289" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code >< a class = "el" href = "structrtabmap_1_1PointXYZIRT.html" title = "This namespace contains 3D point cloud processing utilities." > rtabmap::PointXYZIRT</ a ></ code > → (x, y, z, intensity, ring time) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a7df3c8f97dd52461787060befaf7f2d7" > LaserScan::kXYZIRT</ a > < br /></ td ></ tr >
< tr class = "separator:ga04169bd4b4488350b08709af9581b289" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga75bf455d6cc912b4ee18785de71c50a5" id = "r_ga75bf455d6cc912b4ee18785de71c50a5" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga75bf455d6cc912b4ee18785de71c50a5" name = "ga75bf455d6cc912b4ee18785de71c50a5" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZRGB > & cloud, const pcl::PointCloud< pcl::Normal > & normals, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga75bf455d6cc912b4ee18785de71c50a5" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZRGBNormal</ code > → (x, y, z, rgb, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007af2d5b7ff94aeac818000d840e257ac07" > LaserScan::kXYZRGBNormal</ a > < br /></ td ></ tr >
< tr class = "separator:ga75bf455d6cc912b4ee18785de71c50a5" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:gaf509a7c65e02d8690c971294c43bda47" id = "r_gaf509a7c65e02d8690c971294c43bda47" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "gaf509a7c65e02d8690c971294c43bda47" name = "gaf509a7c65e02d8690c971294c43bda47" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZRGBNormal > & cloud, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:gaf509a7c65e02d8690c971294c43bda47" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZRGBNormal</ code > → (x, y, z, rgb, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007af2d5b7ff94aeac818000d840e257ac07" > LaserScan::kXYZRGBNormal</ a > < br /></ td ></ tr >
< tr class = "separator:gaf509a7c65e02d8690c971294c43bda47" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga9344c712c57af92d7612b0af76226f06" id = "r_ga9344c712c57af92d7612b0af76226f06" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga9344c712c57af92d7612b0af76226f06" name = "ga9344c712c57af92d7612b0af76226f06" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZRGBNormal > & cloud, const pcl::IndicesPtr & indices, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga9344c712c57af92d7612b0af76226f06" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZRGBNormal</ code > → (x, y, z, rgb, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007af2d5b7ff94aeac818000d840e257ac07" > LaserScan::kXYZRGBNormal</ a > < br /></ td ></ tr >
< tr class = "separator:ga9344c712c57af92d7612b0af76226f06" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga79e460158de1d3934abcd8fad488fb24" id = "r_ga79e460158de1d3934abcd8fad488fb24" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "ga79e460158de1d3934abcd8fad488fb24" name = "ga79e460158de1d3934abcd8fad488fb24" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZI > & cloud, const pcl::PointCloud< pcl::Normal > & normals, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:ga79e460158de1d3934abcd8fad488fb24" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZINormal</ code > → (x, y, z, intensity, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" > LaserScan::kXYZINormal</ a > < br /></ td ></ tr >
< tr class = "separator:ga79e460158de1d3934abcd8fad488fb24" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:gafb165d79d23620b42af0653ae045fb91" id = "r_gafb165d79d23620b42af0653ae045fb91" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "gafb165d79d23620b42af0653ae045fb91" name = "gafb165d79d23620b42af0653ae045fb91" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZINormal > & cloud, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:gafb165d79d23620b42af0653ae045fb91" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZINormal</ code > → (x, y, z, intensity, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" > LaserScan::kXYZINormal</ a > < br /></ td ></ tr >
< tr class = "separator:gafb165d79d23620b42af0653ae045fb91" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:gab2d54043075851c5e23f487001adacb6" id = "r_gab2d54043075851c5e23f487001adacb6" >< td class = "memItemLeft" align = "right" valign = "top" >< a id = "gab2d54043075851c5e23f487001adacb6" name = "gab2d54043075851c5e23f487001adacb6" ></ a >
< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > RTABMAP_CORE_EXPORT  </ td >< td class = "memItemRight" valign = "bottom" >< b > rtabmap::util3d::laserScanFromPointCloud</ b > (const pcl::PointCloud< pcl::PointXYZINormal > & cloud, const pcl::IndicesPtr & indices, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > (), bool filterNaNs=true)</ td ></ tr >
< tr class = "memdesc:gab2d54043075851c5e23f487001adacb6" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" >< code > pcl::PointXYZINormal</ code > → (x, y, z, intensity, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" > LaserScan::kXYZINormal</ a > < br /></ td ></ tr >
< tr class = "separator:gab2d54043075851c5e23f487001adacb6" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:ga078f5eae0077169e636ec76e03973edc" id = "r_ga078f5eae0077169e636ec76e03973edc" >< td class = "memTemplParams" colspan = "2" > template< typename PointCloud2T > </ td ></ tr >
< tr class = "memitem:ga078f5eae0077169e636ec76e03973edc" >< td class = "memTemplItemLeft" align = "right" valign = "top" >< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a >   </ td >< td class = "memTemplItemRight" valign = "bottom" >< a class = "el" href = "group__LaserScanFromPointCloud.html#ga078f5eae0077169e636ec76e03973edc" > rtabmap::util3d::laserScanFromPointCloud</ a > (const PointCloud2T & cloud, bool filterNaNs=true, bool is2D=false, const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > & transform=< a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > ())</ td ></ tr >
< tr class = "memdesc:ga078f5eae0077169e636ec76e03973edc" >< td class = "mdescLeft" >   </ td >< td class = "mdescRight" > Convert < code > pcl::PCLPointCloud2</ code > to < a class = "el" href = "classrtabmap_1_1LaserScan.html" title = "Represents 2D or 3D laser scan data with support for multiple point data formats." > rtabmap::LaserScan</ a > with all supported fields (see < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007" title = "Enumeration of possible formats for laser scan data." > rtabmap::LaserScan::Format</ a > ) < br /></ td ></ tr >
< tr class = "separator:ga078f5eae0077169e636ec76e03973edc" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
</ table >
< a name = "details" id = "details" ></ a >< h2 class = "groupheader" > Detailed Description</ h2 >
< p > Converts various PCL point cloud types into a unified < a class = "el" href = "classrtabmap_1_1LaserScan.html" title = "Represents 2D or 3D laser scan data with support for multiple point data formats." > LaserScan</ a > format. </ p >
< p > These functions extract laser scan data from 3D point clouds, optionally applying a transform and filtering invalid points. Depending on the input type, output data may include position (x, y, z), intensity, color, and/or surface normals.</ p >
2026-08-02 07:56:38 +00:00
< h3 >< a class = "anchor" id = "autotoc_md12" ></ a >
2026-08-02 01:36:11 +00:00
Supported input types and corresponding output data:</ h3 >
< ul >
< li >< code > pcl::PointXYZ</ code > → (x, y, z) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a0c376810ac499a8a93a02bd0d4a19267" > LaserScan::kXYZ</ a ></ li >
< li >< code > pcl::PointXYZRGB</ code > → (x, y, z, rgb) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a500cf2179e454d8d5a74895b301c0829" > LaserScan::kXYZRGB</ a ></ li >
< li >< code > pcl::PointXYZI</ code > → (x, y, z, intensity) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a5efd7fbf18cee72d9eb2daa4ea818e42" > LaserScan::kXYZI</ a ></ li >
< li >< code > pcl::PointNormal</ code > → (x, y, z, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a09e67f9495016103a162854b8e852bbc" > LaserScan::kXYZNormal</ a ></ li >
< li >< code > pcl::PointXYZRGBNormal</ code > → (x, y, z, rgb, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007af2d5b7ff94aeac818000d840e257ac07" > LaserScan::kXYZRGBNormal</ a ></ li >
< li >< code > pcl::PointXYZINormal</ code > → (x, y, z, intensity, nx, ny, nz) → < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007a3fdc082afb503bb197e2651b6fc565b8" > LaserScan::kXYZINormal</ a ></ li >
< li > Combined point + normal cloud also supported.</ li >
</ ul >
< dl class = "params" >< dt > Parameters</ dt >< dd >
< table class = "params" >
< tr >< td class = "paramname" > cloud</ td >< td > The input PCL point cloud. </ td ></ tr >
< tr >< td class = "paramname" > indices</ td >< td > Optional subset of indices to use from the point cloud. </ td ></ tr >
< tr >< td class = "paramname" > normals</ td >< td > Optional normal cloud if not included in point type. </ td ></ tr >
< tr >< td class = "paramname" > transform</ td >< td > Optional rigid body transform to apply to the points. </ td ></ tr >
< tr >< td class = "paramname" > filterNaNs</ td >< td > Whether to ignore invalid or NaN points. </ td ></ tr >
</ table >
</ dd >
</ dl >
< dl class = "section return" >< dt > Returns</ dt >< dd > A < a class = "el" href = "classrtabmap_1_1LaserScan.html" title = "Represents 2D or 3D laser scan data with support for multiple point data formats." > LaserScan</ a > object containing scan data in appropriate format.</ dd ></ dl >
< dl class = "section see" >< dt > See also</ dt >< dd >< a class = "el" href = "group__LaserScan2dFromPointCloud.html#gac0823dd28e488bef9499faee54ff8a4e" title = "PointXYZ → LaserScan::kXY" > laserScan2dFromPointCloud()</ a > for 2D-only extraction. </ dd ></ dl >
< h2 class = "groupheader" > Function Documentation</ h2 >
< a id = "ga078f5eae0077169e636ec76e03973edc" name = "ga078f5eae0077169e636ec76e03973edc" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#ga078f5eae0077169e636ec76e03973edc" > ◆  </ a ></ span > laserScanFromPointCloud()</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< div class = "memtemplate" >
template< typename PointCloud2T > </ div >
< table class = "memname" >
< tr >
< td class = "memname" >< a class = "el" href = "classrtabmap_1_1LaserScan.html" > LaserScan</ a > rtabmap::util3d::laserScanFromPointCloud </ td >
< td > (</ td >
< td class = "paramtype" > const PointCloud2T &  </ td >
< td class = "paramname" >< em > cloud</ em > , </ td >
</ tr >
< tr >
< td class = "paramkey" ></ td >
< td ></ td >
< td class = "paramtype" > bool  </ td >
< td class = "paramname" >< em > filterNaNs</ em > , </ td >
</ tr >
< tr >
< td class = "paramkey" ></ td >
< td ></ td >
< td class = "paramtype" > bool  </ td >
< td class = "paramname" >< em > is2D</ em > , </ td >
</ tr >
< tr >
< td class = "paramkey" ></ td >
< td ></ td >
< td class = "paramtype" > const < a class = "el" href = "classrtabmap_1_1Transform.html" > Transform</ a > &  </ td >
< td class = "paramname" >< em > transform</ em >   </ td >
</ tr >
< tr >
< td ></ td >
< td > )</ td >
< td ></ td >< td ></ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > Convert < code > pcl::PCLPointCloud2</ code > to < a class = "el" href = "classrtabmap_1_1LaserScan.html" title = "Represents 2D or 3D laser scan data with support for multiple point data formats." > rtabmap::LaserScan</ a > with all supported fields (see < a class = "el" href = "classrtabmap_1_1LaserScan.html#a38f5602d1411c204d54be9b3c7320007" title = "Enumeration of possible formats for laser scan data." > rtabmap::LaserScan::Format</ a > ) </ p >
< p class = "definition" > Definition at line < a class = "el" href = "util3d_8hpp_source.html#l00037" > 37</ a > of file < a class = "el" href = "util3d_8hpp_source.html" > util3d.hpp</ a > .</ p >
</ div >
</ div >
</ 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 = "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 >