43 #include <pcl/io/pcd_io.h>
44 #include <pcl/io/ply_io.h>
45 #include <pcl/io/vtk_io.h>
52 #include <pcl/gpu/kinfu_large_scale/marching_cubes.h>
53 #include <pcl/PolygonMesh.h>
55 #include <pcl/gpu/containers/device_array.h>
58 #include <pcl/gpu/kinfu_large_scale/tsdf_volume.h>
61 #include <pcl/common/transforms.h>
62 #include <Eigen/Geometry>
76 template <
typename Po
intT>
101 getMeshesFromTSDFVector (
const std::vector<PointCloudPtr> &tsdf_clouds,
const std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> > &tsdf_offsets);
149 std::vector<int> tsdf_volume_cpu_;
167 #define PCL_INSTANTIATE_StandaloneMarchingCubes(PointT) template class PCL_EXPORTS pcl::gpu::kinfuLS::StandaloneMarchingCubes<PointT>;
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointT > > Ptr
The Standalone Marching Cubes Class provides encapsulated functionality for the Marching Cubes implem...
StandaloneMarchingCubes(int voxels_x=512, int voxels_y=512, int voxels_z=512, float volume_size=3.0f)
Constructor
typename PointCloud::Ptr PointCloudPtr
pcl::PolygonMesh::Ptr MeshPtr
MeshPtr getMeshFromTSDFCloud(const PointCloud &cloud)
Run marching cubes in a TSDF cloud and returns a PolygonMesh.
MeshPtr convertTrianglesToMesh(const pcl::gpu::DeviceArray< pcl::PointXYZ > &triangles)
Converts the triangles buffer device to a PolygonMesh.
void getMeshesFromTSDFVector(const std::vector< PointCloudPtr > &tsdf_clouds, const std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > &tsdf_offsets)
Runs marching cubes on every pointcloud in the vector.
void convertTsdfVectors(const PointCloud &cloud, std::vector< int > &output)
Read the data in the point cloud.
std::vector< int > & tsdfVolumeCPU()
Returns the associated Tsdf Volume buffer in CPU.
void loadTsdfCloudToGPU(const PointCloud &cloud)
Loads a TSDF Cloud to the TSDF Volume in GPU.
MeshPtr runMarchingCubes()
Runs marching cubes on the data that is contained in the TSDF Volume in GPU.
TsdfVolume::Ptr tsdfVolumeGPU()
Returns the associated Tsdf Volume buffer in GPU.
shared_ptr< TsdfVolume > Ptr
Defines all the PCL implemented PointT point type structures.
Defines all the PCL and non-PCL macros used.
shared_ptr< ::pcl::PolygonMesh > Ptr