mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Fixed pcl:OrganizedFastMesh link error for type pcl::PointXYZRGBNormal with PCL 1.8 (issue #75)
This commit is contained in:
@@ -45,6 +45,18 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include <rtabmap/utilite/UMath.h>
|
||||
#include <rtabmap/utilite/UConversion.h>
|
||||
|
||||
#if PCL_VERSION_COMPARE(>=, 1, 8, 0)
|
||||
#include <pcl/impl/instantiate.hpp>
|
||||
#include <pcl/point_types.h>
|
||||
#include <pcl/segmentation/impl/extract_clusters.hpp>
|
||||
#include <pcl/segmentation/extract_labeled_clusters.h>
|
||||
#include <pcl/segmentation/impl/extract_labeled_clusters.hpp>
|
||||
|
||||
PCL_INSTANTIATE(EuclideanClusterExtraction, (pcl::PointXYZRGBNormal))
|
||||
PCL_INSTANTIATE(extractEuclideanClusters, (pcl::PointXYZRGBNormal))
|
||||
PCL_INSTANTIATE(extractEuclideanClusters_indices, (pcl::PointXYZRGBNormal))
|
||||
#endif
|
||||
|
||||
namespace rtabmap
|
||||
{
|
||||
|
||||
@@ -88,7 +100,7 @@ pcl::PointCloud<pcl::PointXYZ>::Ptr downsample(
|
||||
}
|
||||
else
|
||||
{
|
||||
int finalSize = cloud->size()/step;
|
||||
int finalSize = int(cloud->size())/step;
|
||||
output->resize(finalSize);
|
||||
int oi = 0;
|
||||
for(unsigned int i=0; i<cloud->size()-step+1; i+=step)
|
||||
@@ -111,7 +123,7 @@ pcl::PointCloud<pcl::PointXYZRGB>::Ptr downsample(
|
||||
}
|
||||
else
|
||||
{
|
||||
int finalSize = cloud->size()/step;
|
||||
int finalSize = int(cloud->size())/step;
|
||||
output->resize(finalSize);
|
||||
int oi = 0;
|
||||
for(int i=0; i<(int)cloud->size()-step+1; i+=step)
|
||||
|
||||
@@ -46,6 +46,16 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#include "pcl18/surface/organized_fast_mesh.h"
|
||||
#else
|
||||
#include <pcl/surface/organized_fast_mesh.h>
|
||||
#include <pcl/surface/impl/marching_cubes.hpp>
|
||||
#include <pcl/surface/impl/organized_fast_mesh.hpp>
|
||||
#include <pcl/impl/instantiate.hpp>
|
||||
#include <pcl/point_types.h>
|
||||
|
||||
// Instantiations of specific point types
|
||||
PCL_INSTANTIATE(OrganizedFastMesh, (pcl::PointXYZRGBNormal))
|
||||
|
||||
#include <pcl/features/impl/normal_3d_omp.hpp>
|
||||
PCL_INSTANTIATE_PRODUCT(NormalEstimationOMP, ((pcl::PointXYZRGB))((pcl::Normal)))
|
||||
#endif
|
||||
|
||||
namespace rtabmap
|
||||
@@ -177,10 +187,10 @@ void appendMesh(
|
||||
UDEBUG("cloudA=%d polygonsA=%d cloudB=%d polygonsB=%d", (int)cloudA.size(), (int)polygonsA.size(), (int)cloudB.size(), (int)polygonsB.size());
|
||||
UASSERT(!cloudA.isOrganized() && !cloudB.isOrganized());
|
||||
|
||||
int sizeA = cloudA.size();
|
||||
int sizeA = (int)cloudA.size();
|
||||
cloudA += cloudB;
|
||||
|
||||
int sizePolygonsA = polygonsA.size();
|
||||
int sizePolygonsA = (int)polygonsA.size();
|
||||
polygonsA.resize(sizePolygonsA+polygonsB.size());
|
||||
|
||||
for(unsigned int i=0; i<polygonsB.size(); ++i)
|
||||
@@ -203,10 +213,10 @@ void appendMesh(
|
||||
UDEBUG("cloudA=%d polygonsA=%d cloudB=%d polygonsB=%d", (int)cloudA.size(), (int)polygonsA.size(), (int)cloudB.size(), (int)polygonsB.size());
|
||||
UASSERT(!cloudA.isOrganized() && !cloudB.isOrganized());
|
||||
|
||||
int sizeA = cloudA.size();
|
||||
int sizeA = (int)cloudA.size();
|
||||
cloudA += cloudB;
|
||||
|
||||
int sizePolygonsA = polygonsA.size();
|
||||
int sizePolygonsA = (int)polygonsA.size();
|
||||
polygonsA.resize(sizePolygonsA+polygonsB.size());
|
||||
|
||||
for(unsigned int i=0; i<polygonsB.size(); ++i)
|
||||
|
||||
Reference in New Issue
Block a user