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 ()
 
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 351 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 358 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 363 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 368 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 393 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 405 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 480 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 443 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 490 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 526 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 517 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 499 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 508 of file SurfacePolynomial.h.


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