38#ifndef PCL_GRAPH_EDGE_WEIGHT_COMPUTER_TERMS_H
39#define PCL_GRAPH_EDGE_WEIGHT_COMPUTER_TERMS_H
41#include <pcl/point_types.h>
61 template <
typename Po
intT>
62 float static compute(
const PointT& p1,
const PointT& p2)
64 return (p2.getVector3fMap() - p1.getVector3fMap()).squaredNorm();
84 template <
typename Po
intT>
85 float static compute(
const PointT& p1,
const PointT& p2)
87 return (0.5 * (p1.getNormalVector3fMap() - p2.getNormalVector3fMap()).squaredNorm());
106 template <
typename Po
intT>
107 float static compute(
const PointT& p1,
const PointT& p2)
109 return (std::fabs(p1.curvature) * std::fabs(p2.curvature));
128 template <
typename Po
intT>
129 float static compute(
const PointT& p1,
const PointT& p2)
131 return ((p1.getBGRVector3cMap().template cast<float>() -
132 p2.getBGRVector3cMap().template cast<float>())
pcl::traits::has_curvature< boost::mpl::_1 > is_compatible
static float compute(const PointT &p1, const PointT &p2)
Angular distance between normals.
pcl::traits::has_normal< boost::mpl::_1 > is_compatible
static float compute(const PointT &p1, const PointT &p2)
Squared Euclidean distance in RGB space.
pcl::traits::has_color< boost::mpl::_1 > is_compatible
static float compute(const PointT &p1, const PointT &p2)
Squared Euclidean distance between points.
pcl::traits::has_xyz< boost::mpl::_1 > is_compatible
static float compute(const PointT &p1, const PointT &p2)