|
@@ -4,12 +4,14 @@
|
|
|
|
|
|
#include <pcl/visualization/cloud_viewer.h>
|
|
#include <pcl/visualization/cloud_viewer.h>
|
|
|
|
|
|
|
|
+#include <pcl/io/ply_io.h>
|
|
|
|
+
|
|
#include "showxodrinvtk.h"
|
|
#include "showxodrinvtk.h"
|
|
|
|
|
|
pcl::visualization::CloudViewer viewer1("Cloud Viewer");//创建viewer对象
|
|
pcl::visualization::CloudViewer viewer1("Cloud Viewer");//创建viewer对象
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
+ pcl::PolygonMesh mesh;
|
|
|
|
|
|
void viewerOneOff (pcl::visualization::PCLVisualizer& viewer)
|
|
void viewerOneOff (pcl::visualization::PCLVisualizer& viewer)
|
|
{
|
|
{
|
|
@@ -19,7 +21,32 @@ void viewerOneOff (pcl::visualization::PCLVisualizer& viewer)
|
|
double flon0,flat0;
|
|
double flon0,flat0;
|
|
bool bxodr = false;
|
|
bool bxodr = false;
|
|
|
|
|
|
- ShowXODRINVTK(viewer,flon0,flat0,bxodr,-1.7);
|
|
|
|
|
|
+ ShowXODRINVTK(viewer,flon0,flat0,bxodr,-1.7,1);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// viewer.addPolygonMesh();
|
|
|
|
+
|
|
|
|
+// pcl::PolygonMesh xmesh;
|
|
|
|
+
|
|
|
|
+// Eigen::AngleAxisf rotation_vector(0.6, Eigen::Vector3f(0, 0, 1));
|
|
|
|
+
|
|
|
|
+// //绘制对象外接长方体
|
|
|
|
+// //参数为矩形的顶点,长宽高还有旋转角度以及长方体名称
|
|
|
|
+// //函数原型:addCube (const Eigen::Vector3f &translation, const Eigen::Quaternionf &rotation, double width, double height, double depth, const std::string &id="cube", int viewport=0);
|
|
|
|
+// viewer.addCube(Eigen::Vector3f(0,0,0),
|
|
|
|
+// Eigen::Quaternionf(rotation_vector), 4.6, 2.3, 3.0, "car");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// if (pcl::io::loadPLYFile("/home/yuchuli/car.ply", mesh))
|
|
|
|
+// {
|
|
|
|
+// std::cout << "error"<<std::endl;
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+// std::cout<<"mesh cloud size: "<<mesh.cloud.width<<" mesh polygon size: "<<mesh.polygons.size()<<std::endl;
|
|
|
|
+// viewer.addPolygonMesh(mesh, "mesh");
|
|
|
|
|
|
viewer.resetCamera();
|
|
viewer.resetCamera();
|
|
|
|
|
|
@@ -47,6 +74,9 @@ int main(int argc, char *argv[])
|
|
{
|
|
{
|
|
QCoreApplication a(argc, argv);
|
|
QCoreApplication a(argc, argv);
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
//This will only get called once
|
|
//This will only get called once
|
|
viewer1.runOnVisualizationThreadOnce (viewerOneOff);
|
|
viewer1.runOnVisualizationThreadOnce (viewerOneOff);
|
|
|
|
|
|
@@ -54,6 +84,7 @@ int main(int argc, char *argv[])
|
|
viewer1.runOnVisualizationThread (viewerPsycho);
|
|
viewer1.runOnVisualizationThread (viewerPsycho);
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
while(!viewer1.wasStopped())
|
|
while(!viewer1.wasStopped())
|
|
{
|
|
{
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|