资源简介
利用pcl读取点云,osg显示
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main()
{
osg::ref_ptr viewer = new osgViewer::Viewer() ;
viewer->addEventHandler(new osgGA::StateSetManipulator(viewer->getCamera()->getOrCreateStateSet())) ;
osg::ref_ptr root = new osg::Group() ;
//创建顶点数组
osg::ref_ptr coords = new osg::Vec3Array() ;
osg::ref_ptr color = new osg::Vec4Array() ;
pcl::PointCloud::Ptr cloud(new pcl::PointCloud) ;
if (pcl::io::loadPLYFile(“3-1-2.ply“ *cloud) == -1)
{
std::cout<<“读取点云失败!\n“ ;
return -1 ;
}
int nums = cloud->size() ;
std::cout<<“点云数据:“< int k = 0 ;
for (int i = 0 ; i < nums ; ++i)
{
coords->push_back(osg::Vec3(cloud->points[i].x cloud->points[i].y cloud->points[i].z)) ;
color->push_back(osg::Vec4(1.0f 0.0f 0.0f 0.3f)) ;
k++ ;
}
//创建几何体
osg::ref_ptr geometry = new osg::Geometry() ;
//设置顶点数组
geometry->setVertexArray(coords.get()) ;
geometry->setColorArray(color.get()) ;
geometry->setColorBinding(osg::Geometry::BIND_PER_VERTEX) ;
osg::Vec3Array *normals = new osg::Vec3Array ;
normals->push_back(osg::Vec3(0.0f 1.0f 0.0f)) ;
geometry->setNormalArray(normals) ;
geometry->setNormalBinding(osg::Geometry::BIND_OVERALL) ;
geometry->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::POINTS 0 k)) ; //设置关联方式
//添加到叶节点
osg::ref_ptr geode = new osg::Geode() ;
geode->addDrawable(geometry.get()) ;
root->addChild(geode.get()) ;
//优化场景数据
osgUtil::Optimizer optimizer ;
optimizer.optimize(root.get()) ;
viewer->setSceneData(root.get()) ;
viewer->realize() ;
viewer->run() ;
return 1 ;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-06-07 16:45 osg显示点云\
目录 0 2016-06-07 16:44 osg显示点云\osg显示点云\
文件 681002 2016-06-04 22:34 osg显示点云\osg显示点云\3-1-2.ply
文件 2168 2016-06-07 16:44 osg显示点云\osg显示点云\main.cpp
文件 7253 2016-06-07 10:26 osg显示点云\osg显示点云\osg显示点云.vcxproj
文件 942 2016-06-07 10:26 osg显示点云\osg显示点云\osg显示点云.vcxproj.filters
目录 0 2016-06-07 10:46 osg显示点云\osg显示点云\x64\
目录 0 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\
文件 312944 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\CL.read.1.tlog
文件 316 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\CL.write.1.tlog
文件 1238 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\cl.command.1.tlog
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
文件 2 2016-06-07 16:36 osg显示点云\osg显示点云\x64\Debug\li
............此处省略18个文件信息
评论
共有 条评论