1
#ifndef VIEWER_H
#define VIEWER_H

#include <iostream>
#include "../../Spheres/spheres.h"
#include "../../Odometry/odometry.h"
#include "../io/io.h"

#include <limits>
#include <utility>
#include <algorithm>
#include <time.h>

#include <cv.h>
#include <opencv/highgui.h> 
#include <opencv2/core/eigen.hpp>

#include <Eigen/Dense>
#include <Eigen/SVD>
#include <Eigen/LU>
#include <unsupported/Eigen/MatrixFunctions>

#include <boost/thread/thread.hpp>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/common/common_headers.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/filters/passthrough.h>
#include <pcl/common/transforms.h>
//#include <pcl/registration/icp.h>             // conflict with opencv flann
//#include <pcl/features/normal_3d.h>           // conflict with opencv flann
//#include <pcl/features/integral_image_normal.h>  // conflict with opencv flann

//const double pi = M_PI;
class Viewer{
public:
    pcl::PointCloud<pcl::PointXYZRGB> cloud, globalmap;
    pcl::PointXYZRGB point;
    pcl::PassThrough<pcl::PointXYZRGB> filter_pass_x, filter_pass_y, filter_pass_z;
    pcl::VoxelGrid<pcl::PointXYZRGB> filter_voxel;

    boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer (new pcl::visualization::PCLVisualizer ("3D Viewer"));

    void viewgenpcl(Sphere &S, Odometry &Odo);

};

#endif // VIEWER_H

エラーの原因は、次のコード行です。

boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer (new pcl::visualization::PCLVisualizer ("3D Viewer"));
エラー: 'new' の前に識別子が必要です
エラー: 'new' の前に ',' または '...' が必要です

他のファイルで同じ行を使用しましたが、この初期化がboostまたはpclのどちらから来ているのかわかりませんが、うまくいきました。ご協力いただきありがとうございます。

4

1 に答える 1