PCL
pcl::PointSurfacePolynomial< P > Class Template Reference

Vector polynomial interpolation/approximation in two dimensions. More...

#include <SurfacePolynomial.h>

Public Types

using point = P
 
using point_list = Array< point >
 
using surface = SurfacePolynomial< double >
 

Public Member Functions

 PointSurfacePolynomial ()=default
 
 PointSurfacePolynomial (const point_list &P1, const point_list &P2, int degree=3)
 
 PointSurfacePolynomial (const PointSurfacePolynomial &)=default
 
 PointSurfacePolynomial (const surface &Sx, const surface &Sy)
 
 PointSurfacePolynomial (PointSurfacePolynomial &&)=default
 
void Clear ()
 
template<typename T >
void Evaluate (T *ZX, T *ZY, const T *X, const T *Y, size_type n) const
 
bool HasFastVectorEvaluation () const
 
void Initialize (const point_list &P1, const point_list &P2, int degree=3)
 
bool IsValid () const
 
template<typename T >
DPoint operator() (const GenericPoint< T > &p) const
 
template<typename T >
DPoint operator() (T x, T y) const
 
PointSurfacePolynomialoperator= (const PointSurfacePolynomial &)=default
 
PointSurfacePolynomialoperator= (PointSurfacePolynomial &&)=default
 
const surfaceSurfaceX () const
 
const surfaceSurfaceY () const
 

Detailed Description

template<class P = DPoint>
class pcl::PointSurfacePolynomial< P >

The template parameter P represents an interpolation point in two dimensions. The type P must implement P::x and P::y data members accessible from the current PointSurfacePolynomial template specialization. These members must provide the values of the horizontal and vertical coordinates, respectively, of an interpolation point. In addition, the scalar types of the P::x and P::y point members must support conversion to double semantics.

Definition at line 385 of file SurfacePolynomial.h.

Member Typedef Documentation

◆ point

template<class P = DPoint>
using pcl::PointSurfacePolynomial< P >::point = P

Represents an interpolation point in two dimensions.

Definition at line 392 of file SurfacePolynomial.h.

◆ point_list

template<class P = DPoint>
using pcl::PointSurfacePolynomial< P >::point_list = Array<point>

Represents a sequence of interpolation points.

Definition at line 397 of file SurfacePolynomial.h.

◆ surface

template<class P = DPoint>
using pcl::PointSurfacePolynomial< P >::surface = SurfacePolynomial<double>

Represents a coordinate interpolating/approximating surface.

Definition at line 402 of file SurfacePolynomial.h.

Constructor & Destructor Documentation

◆ PointSurfacePolynomial() [1/5]

template<class P = DPoint>
pcl::PointSurfacePolynomial< P >::PointSurfacePolynomial ( )
default

Default constructor. Yields an empty instance that cannot be used without initialization.

◆ PointSurfacePolynomial() [2/5]

template<class P = DPoint>
pcl::PointSurfacePolynomial< P >::PointSurfacePolynomial ( const PointSurfacePolynomial< P > &  )
default

Copy constructor.

◆ PointSurfacePolynomial() [3/5]

template<class P = DPoint>
pcl::PointSurfacePolynomial< P >::PointSurfacePolynomial ( PointSurfacePolynomial< P > &&  )
default

Move constructor.

◆ PointSurfacePolynomial() [4/5]

template<class P = DPoint>
pcl::PointSurfacePolynomial< P >::PointSurfacePolynomial ( const point_list P1,
const point_list P2,
int  degree = 3 
)
inline

Constructs a PointSurfacePolynomial object initialized for the specified input data and interpolation parameters.

See the corresponding Initialize() member function for a detailed description of parameters.

Definition at line 427 of file SurfacePolynomial.h.

◆ PointSurfacePolynomial() [5/5]

template<class P = DPoint>
pcl::PointSurfacePolynomial< P >::PointSurfacePolynomial ( const surface Sx,
const surface Sy 
)
inline

Constructs a PointSurfacePolynomial object initialized with prescribed point surface interpolations.

See the corresponding Initialize() member function for a more detailed description of parameters and their required conditions.

Definition at line 439 of file SurfacePolynomial.h.

Member Function Documentation

◆ Clear()

template<class P = DPoint>
void pcl::PointSurfacePolynomial< P >::Clear ( )
inline

Deallocates internal structures, yielding an empty object that cannot be used before a new call to Initialize().

Definition at line 514 of file SurfacePolynomial.h.

◆ Evaluate()

template<class P = DPoint>
template<typename T >
void pcl::PointSurfacePolynomial< P >::Evaluate ( T *  ZX,
T *  ZY,
const T *  X,
const T *  Y,
size_type  n 
) const
inline

Point interpolation/approximation for a set of points in 2-D space specified as the X and Y contiguous sequences of n coordinates. On output, stores the corresponding function values in the specified ZX and ZY arrays.

Note
This function exists for compatibility with the PointGridInterpolation class. Calling this function can be convenient, but it does not provide any performance improvement over the function call operator.

Definition at line 577 of file SurfacePolynomial.h.

◆ HasFastVectorEvaluation()

template<class P = DPoint>
bool pcl::PointSurfacePolynomial< P >::HasFastVectorEvaluation ( ) const
inline

Returns true iff this object can be evaluated for vectors of points in 2-D space efficiently by calling the Evaluate() member functions. This function always returns false for this class.

Note
This function exists for compatibility with the PointGridInterpolation class. It always returns false because no fast vector evaluation is available for this class.

Definition at line 593 of file SurfacePolynomial.h.

◆ Initialize()

template<class P = DPoint>
void pcl::PointSurfacePolynomial< P >::Initialize ( const point_list P1,
const point_list P2,
int  degree = 3 
)
inline

Initializes this PointSurfacePolynomial object for the specified input data and interpolation parameters.

Parameters
P1A sequence of distinct interpolation node points.
P2A sequence of interpolation values. For each point in P1, the coordinates of its counterpart point in P2 will be used as the interpolation node values in the X and Y directions.
degreePolynomial degree. Must be ≥ 1. The default value is
  1. See SurfacePolynomial::SetDegree() for a complete description of this parameter.

The input nodes can be arbitrarily distributed and don't need to follow any specific order. However, all node points should be distinct with respect to the machine epsilon for the floating point type used to represent coordinates.

See the SurfacePolynomial::Initialize() member function for a complete description of this initialization process.

Definition at line 477 of file SurfacePolynomial.h.

References pcl::Array< T, A >::Length().

◆ IsValid()

template<class P = DPoint>
bool pcl::PointSurfacePolynomial< P >::IsValid ( ) const
inline

Returns true iff this is a valid, initialized object ready for interpolation.

Definition at line 524 of file SurfacePolynomial.h.

◆ operator()() [1/2]

template<class P = DPoint>
template<typename T >
DPoint pcl::PointSurfacePolynomial< P >::operator() ( const GenericPoint< T > &  p) const
inline

Returns an interpolated point at the given p.x and p.y coordinates.

Definition at line 560 of file SurfacePolynomial.h.

References pcl::GenericPoint< T >::x, and pcl::GenericPoint< T >::y.

◆ operator()() [2/2]

template<class P = DPoint>
template<typename T >
DPoint pcl::PointSurfacePolynomial< P >::operator() ( x,
y 
) const
inline

Returns an interpolated point at the specified coordinates.

Definition at line 551 of file SurfacePolynomial.h.

◆ operator=() [1/2]

template<class P = DPoint>
PointSurfacePolynomial& pcl::PointSurfacePolynomial< P >::operator= ( const PointSurfacePolynomial< P > &  )
default

Copy assignment operator. Returns a reference to this object.

◆ operator=() [2/2]

template<class P = DPoint>
PointSurfacePolynomial& pcl::PointSurfacePolynomial< P >::operator= ( PointSurfacePolynomial< P > &&  )
default

Move assignment operator. Returns a reference to this object.

◆ SurfaceX()

template<class P = DPoint>
const surface& pcl::PointSurfacePolynomial< P >::SurfaceX ( ) const
inline

Returns a reference to the internal object used for interpolation in the X plane direction.

Definition at line 533 of file SurfacePolynomial.h.

◆ SurfaceY()

template<class P = DPoint>
const surface& pcl::PointSurfacePolynomial< P >::SurfaceY ( ) const
inline

Returns a reference to the internal object used for interpolation in the Y plane direction.

Definition at line 542 of file SurfacePolynomial.h.


The documentation for this class was generated from the following file: