PCL
pcl::PointShepardInterpolation< P > Class Template Reference

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

#include <ShepardInterpolation.h>

Public Types

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

Public Member Functions

 PointShepardInterpolation ()=default
 
 PointShepardInterpolation (const point_list &P1, const point_list &P2, int power=__PCL_SHEPARD_DEFAULT_POWER, double radius=__PCL_SHEPARD_DEFAULT_SEARCH_RADIUS)
 
 PointShepardInterpolation (const PointShepardInterpolation &)=default
 
 PointShepardInterpolation (const surface &Sx, const surface &Sy)
 
 PointShepardInterpolation (PointShepardInterpolation &&)=default
 
void Clear ()
 
void Initialize (const point_list &P1, const point_list &P2, int power=__PCL_SHEPARD_DEFAULT_POWER, double radius=__PCL_SHEPARD_DEFAULT_SEARCH_RADIUS, float smoothing=__PCL_SHEPARD_DEFAULT_REGULARIZATION)
 
bool IsValid () const
 
template<typename T >
DPoint operator() (const GenericPoint< T > &p) const
 
template<typename T >
DPoint operator() (T x, T y) const
 
PointShepardInterpolationoperator= (const PointShepardInterpolation &)=delete
 
PointShepardInterpolationoperator= (PointShepardInterpolation &&)=default
 
const surfaceSurfaceX () const
 
const surfaceSurfaceY () const
 

Detailed Description

template<class P = DPoint>
class pcl::PointShepardInterpolation< 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 PointShepardInterpolation 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 620 of file ShepardInterpolation.h.

Member Typedef Documentation

◆ point

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

Represents an interpolation point in two dimensions.

Definition at line 627 of file ShepardInterpolation.h.

◆ point_list

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

Represents a sequence of interpolation points.

Definition at line 632 of file ShepardInterpolation.h.

◆ surface

template<class P = DPoint>
using pcl::PointShepardInterpolation< P >::surface = ShepardInterpolation<double>

Represents a coordinate interpolating/approximating surface.

Definition at line 637 of file ShepardInterpolation.h.

Constructor & Destructor Documentation

◆ PointShepardInterpolation() [1/5]

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

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

◆ PointShepardInterpolation() [2/5]

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

Copy constructor.

◆ PointShepardInterpolation() [3/5]

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

Move constructor.

◆ PointShepardInterpolation() [4/5]

template<class P = DPoint>
pcl::PointShepardInterpolation< P >::PointShepardInterpolation ( const point_list P1,
const point_list P2,
int  power = __PCL_SHEPARD_DEFAULT_POWER,
double  radius = __PCL_SHEPARD_DEFAULT_SEARCH_RADIUS 
)
inline

Constructs a PointShepardInterpolation 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 662 of file ShepardInterpolation.h.

◆ PointShepardInterpolation() [5/5]

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

Constructs a PointShepardInterpolation 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 676 of file ShepardInterpolation.h.

Member Function Documentation

◆ Clear()

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

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

Definition at line 773 of file ShepardInterpolation.h.

◆ Initialize()

template<class P = DPoint>
void pcl::PointShepardInterpolation< P >::Initialize ( const point_list P1,
const point_list P2,
int  power = __PCL_SHEPARD_DEFAULT_POWER,
double  radius = __PCL_SHEPARD_DEFAULT_SEARCH_RADIUS,
float  smoothing = __PCL_SHEPARD_DEFAULT_REGULARIZATION 
)
inline

Initializes this PointShepardInterpolation 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.
powerPower parameter. Must be > 0. The default value is 4. See ShepardInterpolation::SetPower() for a complete description of this parameter.
radiusNormalized search radius. Must be > 0. The default value is 0.1. See ShepardInterpolation::SetRadius() for a complete description of this parameter.
smoothingSmoothing factor. Must be in the range [0,1). The default value is zero. See ShepardInterpolation::SetSmoothing() 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 ShepardInterpolation::Initialize() member function for a complete description of this initialization process.

Definition at line 725 of file ShepardInterpolation.h.

◆ IsValid()

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

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

Definition at line 783 of file ShepardInterpolation.h.

◆ operator()() [1/2]

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

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

Definition at line 819 of file ShepardInterpolation.h.

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

◆ operator()() [2/2]

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

Returns an interpolated point at the specified coordinates.

Definition at line 810 of file ShepardInterpolation.h.

◆ operator=() [1/2]

template<class P = DPoint>
PointShepardInterpolation& pcl::PointShepardInterpolation< P >::operator= ( const PointShepardInterpolation< P > &  )
delete

Copy assignment operator. Copy assignment has been disabled for this class because the ShepardInterpolation class does not implement copy assignment.

◆ operator=() [2/2]

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

Move assignment operator. Returns a reference to this object.

◆ SurfaceX()

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

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

Definition at line 792 of file ShepardInterpolation.h.

◆ SurfaceY()

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

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

Definition at line 801 of file ShepardInterpolation.h.


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