Point Cloud Library (PCL) 1.15.1
Loading...
Searching...
No Matches
pcl::BivariatePolynomialT< real > Class Template Reference

This represents a bivariate polynomial and provides some functionality for it. More...

#include <pcl/common/bivariate_polynomial.h>

Public Member Functions

 BivariatePolynomialT (int new_degree=0)
 Constructor.
 BivariatePolynomialT (const BivariatePolynomialT &other)
 Copy constructor.
 ~BivariatePolynomialT ()
 Destructor.
BivariatePolynomialToperator= (const BivariatePolynomialT &other)
 = operator
void setDegree (int new_degree)
 Initialize members to default values.
unsigned int getNoOfParameters () const
 How many parameters has a bivariate polynomial with this degree.
real getValue (real x, real y) const
 Calculate the value of the polynomial at the given point.
void calculateGradient (bool forceRecalc=false)
 Calculate the gradient of this polynomial If forceRecalc is false, it will do nothing when the gradient already exists.
void getValueOfGradient (real x, real y, real &gradX, real &gradY)
 Calculate the value of the gradient at the given point.
void findCriticalPoints (std::vector< real > &x_values, std::vector< real > &y_values, std::vector< int > &types) const
 Returns critical points of the polynomial.
void writeBinary (std::ostream &os) const
 write as binary to a stream
void writeBinary (const char *filename) const
 write as binary into a file
void readBinary (std::istream &os)
 read binary from a stream
void readBinary (const char *filename)
 read binary from a file

Static Public Member Functions

static unsigned int getNoOfParametersFromDegree (int n)
 How many parameters has a bivariate polynomial of the given degree.

Public Attributes

int degree {0}
real * parameters {nullptr}
BivariatePolynomialT< real > * gradient_x {nullptr}
BivariatePolynomialT< real > * gradient_y {nullptr}

Protected Member Functions

void memoryCleanUp ()
 Delete all members.
void deepCopy (const BivariatePolynomialT< real > &other)
 Create a deep copy of the given polynomial.

Detailed Description

template<typename real>
class pcl::BivariatePolynomialT< real >

This represents a bivariate polynomial and provides some functionality for it.

Author
Bastian Steder

Definition at line 53 of file bivariate_polynomial.h.

Constructor & Destructor Documentation

◆ BivariatePolynomialT() [1/2]

template<typename real>
pcl::BivariatePolynomialT< real >::BivariatePolynomialT ( int new_degree = 0)

Constructor.

Definition at line 55 of file bivariate_polynomial.hpp.

References setDegree().

Referenced by BivariatePolynomialT().

◆ BivariatePolynomialT() [2/2]

template<typename real>
pcl::BivariatePolynomialT< real >::BivariatePolynomialT ( const BivariatePolynomialT< real > & other)

Copy constructor.

Definition at line 62 of file bivariate_polynomial.hpp.

References BivariatePolynomialT(), and deepCopy().

◆ ~BivariatePolynomialT()

template<typename real>
pcl::BivariatePolynomialT< real >::~BivariatePolynomialT ( )

Destructor.

Definition at line 69 of file bivariate_polynomial.hpp.

References memoryCleanUp().

Member Function Documentation

◆ calculateGradient()

template<typename real>
void pcl::BivariatePolynomialT< real >::calculateGradient ( bool forceRecalc = false)

Calculate the gradient of this polynomial If forceRecalc is false, it will do nothing when the gradient already exists.

Definition at line 139 of file bivariate_polynomial.hpp.

References degree, gradient_x, gradient_y, and parameters.

Referenced by getValueOfGradient().

◆ deepCopy()

template<typename real>
void pcl::BivariatePolynomialT< real >::deepCopy ( const BivariatePolynomialT< real > & other)
protected

Create a deep copy of the given polynomial.

Definition at line 106 of file bivariate_polynomial.hpp.

References degree, getNoOfParameters(), gradient_x, gradient_y, memoryCleanUp(), and parameters.

Referenced by BivariatePolynomialT(), and pcl::BivariatePolynomialT< double >::operator=().

◆ findCriticalPoints()

template<typename real>
void pcl::BivariatePolynomialT< real >::findCriticalPoints ( std::vector< real > & x_values,
std::vector< real > & y_values,
std::vector< int > & types ) const

Returns critical points of the polynomial.

type can be 0=maximum, 1=minimum, or 2=saddle point !!Currently only implemented for degree 2!!

Definition at line 200 of file bivariate_polynomial.hpp.

References degree, and parameters.

◆ getNoOfParameters()

template<typename real>
unsigned int pcl::BivariatePolynomialT< real >::getNoOfParameters ( ) const
inline

How many parameters has a bivariate polynomial with this degree.

Definition at line 76 of file bivariate_polynomial.h.

Referenced by deepCopy(), getValue(), and setDegree().

◆ getNoOfParametersFromDegree()

template<typename real>
unsigned int pcl::BivariatePolynomialT< real >::getNoOfParametersFromDegree ( int n)
inlinestatic

How many parameters has a bivariate polynomial of the given degree.

Definition at line 114 of file bivariate_polynomial.h.

Referenced by pcl::PolynomialCalculationsT< real >::bivariatePolynomialApproximation(), pcl::BivariatePolynomialT< double >::getNoOfParameters(), readBinary(), and writeBinary().

◆ getValue()

template<typename real>
real pcl::BivariatePolynomialT< real >::getValue ( real x,
real y ) const

Calculate the value of the polynomial at the given point.

Definition at line 170 of file bivariate_polynomial.hpp.

References degree, getNoOfParameters(), and parameters.

◆ getValueOfGradient()

template<typename real>
void pcl::BivariatePolynomialT< real >::getValueOfGradient ( real x,
real y,
real & gradX,
real & gradY )

Calculate the value of the gradient at the given point.

Definition at line 191 of file bivariate_polynomial.hpp.

References calculateGradient(), gradient_x, and gradient_y.

◆ memoryCleanUp()

template<typename real>
void pcl::BivariatePolynomialT< real >::memoryCleanUp ( )
protected

Delete all members.

Definition at line 97 of file bivariate_polynomial.hpp.

References gradient_x, gradient_y, and parameters.

Referenced by deepCopy(), readBinary(), setDegree(), and ~BivariatePolynomialT().

◆ operator=()

template<typename real>
BivariatePolynomialT & pcl::BivariatePolynomialT< real >::operator= ( const BivariatePolynomialT< real > & other)
inline

= operator

Definition at line 67 of file bivariate_polynomial.h.

◆ readBinary() [1/2]

template<typename real>
void pcl::BivariatePolynomialT< real >::readBinary ( const char * filename)

read binary from a file

Definition at line 304 of file bivariate_polynomial.hpp.

References readBinary().

◆ readBinary() [2/2]

template<typename real>
void pcl::BivariatePolynomialT< real >::readBinary ( std::istream & os)

read binary from a stream

Definition at line 293 of file bivariate_polynomial.hpp.

References degree, getNoOfParametersFromDegree(), memoryCleanUp(), and parameters.

Referenced by readBinary().

◆ setDegree()

template<typename real>
void pcl::BivariatePolynomialT< real >::setDegree ( int new_degree)

◆ writeBinary() [1/2]

template<typename real>
void pcl::BivariatePolynomialT< real >::writeBinary ( const char * filename) const

write as binary into a file

Definition at line 285 of file bivariate_polynomial.hpp.

References writeBinary().

◆ writeBinary() [2/2]

template<typename real>
void pcl::BivariatePolynomialT< real >::writeBinary ( std::ostream & os) const

write as binary to a stream

Definition at line 276 of file bivariate_polynomial.hpp.

References degree, getNoOfParametersFromDegree(), and parameters.

Referenced by writeBinary().

Member Data Documentation

◆ degree

template<typename real>
int pcl::BivariatePolynomialT< real >::degree {0}

◆ gradient_x

template<typename real>
BivariatePolynomialT<real>* pcl::BivariatePolynomialT< real >::gradient_x {nullptr}

◆ gradient_y

template<typename real>
BivariatePolynomialT<real>* pcl::BivariatePolynomialT< real >::gradient_y {nullptr}

◆ parameters


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