#include <iostream>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>

int main(int argc, char **argv)
{
    // 軸のポイント数を設定する
    int axis = 20;
    
    pcl::PointCloud<pcl::PointXYZ>::Ptr pCloud(new pcl::PointCloud<pcl::PointXYZ>);
    pCloud->width = axis * 3;
    pCloud->height = 1;
    pCloud->points.resize(pCloud->width * pCloud->height);

    int ofs = 0;
    // X軸のクラウドを作成する
    for(int i = 0; i < axis; i++, ofs++)
    {
        pCloud->points[ofs] = pcl::PointXYZ(i, 0, 0);    
    }
    // Y軸のクラウドを作成する
    for(int i = 0; i < axis; i++, ofs++)
    {
        pCloud->points[ofs] = pcl::PointXYZ(0, i, 0);    
    }
    // Z軸のクラウドを作成する
    for(int i = 0; i < axis; i++, ofs++)
    {
        pCloud->points[ofs] = pcl::PointXYZ(0, 0, i);    
    }
    
    // 可視化ツール
    pcl::visualization::PCLVisualizer viewer("Viewer");

    // 背景色を設定する
    viewer.setBackgroundColor(1, 1, 1); //白

    // plyをロード
    //pcl::io::loadPLYFile("../cloud.ply", *pCloud);
  
    // 色の設定
    pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> custom_color(pCloud, 255, 0, 0);
    viewer.addPointCloud<pcl::PointXYZ> (pCloud, custom_color, "sample cloud");    

    // ポイント・サイズの設定    
    viewer.setPointCloudRenderingProperties (pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 5, "sample cloud");

    while( !viewer.wasStopped() )
    {
	viewer.spinOnce();
    }
    
    return 0;
}
