Go to the documentation of this file.
54 inPlaceFilter(output);
64 throw InvalidField(
"OrientNormalsDataPointsFilter: Error, cannot find normals in descriptors.");
66 throw InvalidField(
"OrientNormalsDataPointsFilter: Error, cannot find observation directions in descriptors.");
70 assert(normals.rows() == observationDirections.rows());
71 const int featDim(cloud.
features.cols());
72 for (
int i = 0; i < featDim; ++i)
75 const Vector vecP = observationDirections.col(i);
76 const Vector vecN = normals.col(i);
77 const double scalar = vecP.dot(vecN);
83 normals.col(i) = -vecN;
88 normals.col(i) = -vecN;
Parametrizable::Parameters Parameters
PM::DataPointsFilter DataPointsFilter
Reorientation of normals.
PointMatcher< T >::Vector Vector
bool descriptorExists(const std::string &name) const
Look if a descriptor with a given name exist.
Functions and classes that are dependant on scalar type are defined in this templatized class.
virtual DataPoints filter(const DataPoints &input)
Apply filters to input point cloud. This is the non-destructive version and returns a copy.
OrientNormalsDataPointsFilter(const Parameters ¶ms=Parameters())
An exception thrown when one tries to access features or descriptors unexisting or of wrong dimension...
Matrix features
features of points in the cloud
virtual void inPlaceFilter(DataPoints &cloud)
Apply these filters to a point cloud without copying.
The superclass of classes that are constructed using generic parameters. This class provides the para...
const M::mapped_type & get(const M &m, const typename M::key_type &k)
ConstView getDescriptorViewByName(const std::string &name) const
Get a const view on a descriptor by name, throw an exception if it does not exist.