43#include <pcl/features/feature.h>
78 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
82 using Ptr = shared_ptr<BoundaryEstimation<PointInT, PointNT, PointOutT> >;
83 using ConstPtr = shared_ptr<const BoundaryEstimation<PointInT, PointNT, PointOutT> >;
119 const Eigen::Vector4f &u,
const Eigen::Vector4f &v,
const float angle_threshold);
132 const PointInT &q_point,
134 const Eigen::Vector4f &u,
const Eigen::Vector4f &v,
const float angle_threshold);
160 Eigen::Vector4f &u, Eigen::Vector4f &v)
163 v = p_coeff_v.unitOrthogonal ();
164 u = p_coeff_v.cross3 (v);
181#ifdef PCL_NO_PRECOMPILE
182#include <pcl/features/impl/boundary.hpp>
BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...
void getCoordinateSystemOnPlane(const PointNT &p_coeff, Eigen::Vector4f &u, Eigen::Vector4f &v)
Get a u-v-n coordinate system that lies on a plane defined by its normal.
shared_ptr< BoundaryEstimation< PointInT, PointNT, PointOutT > > Ptr
float getAngleThreshold()
Get the decision boundary (angle threshold) as set by the user.
BoundaryEstimation()
Empty constructor.
shared_ptr< const BoundaryEstimation< PointInT, PointNT, PointOutT > > ConstPtr
void computeFeature(PointCloudOut &output) override
Estimate whether a set of points is lying on surface boundaries using an angle criterion for all poin...
void setAngleThreshold(float angle)
Set the decision boundary (angle threshold) that marks points as boundary or regular.
typename Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
bool isBoundaryPoint(const pcl::PointCloud< PointInT > &cloud, int q_idx, const pcl::Indices &indices, const Eigen::Vector4f &u, const Eigen::Vector4f &v, const float angle_threshold)
Check whether a point is a boundary point in a planar patch of projected points given by indices.
float angle_threshold_
The decision boundary (angle threshold) that marks points as boundary or regular.
PointCloudNConstPtr normals_
A pointer to the input dataset that contains the point normals of the XYZ dataset.
Feature represents the base feature class.
double search_parameter_
The actual search parameter (from either search_radius_ or k_).
const std::string & getClassName() const
Get a string representation of the name of this class.
double search_radius_
The nearest neighbors search radius for each point.
int k_
The number of K nearest neighbors to use for each point.
std::string feature_name_
The feature name.
KdTreePtr tree_
A pointer to the spatial search object.
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation.
PointCloudConstPtr input_
The input point cloud dataset.
IndicesPtr indices_
A pointer to the vector of point indices to use.
IndicesAllocator<> Indices
Type used for indices in PCL.
const Eigen::Map< const Eigen::Vector4f, Eigen::Aligned > Vector4fMapConst