nuklei::kernel::implementation_prototype< T > Struct Template Reference
Inheritance diagram for nuklei::kernel::implementation_prototype< T >:
nuklei::kernel::base

Public Member Functions

base::ptr clone () const
 Clone the kernel.
 
base::ptr create () const
 Create a new kernel of the same type.
 
Vector3 getLoc () const
 Get the location component of the kernel.
 
void setLoc (const Vector3 &v)
 Set the location component of the kernel.
 
std::ostream & polyPrint (std::ostream &out) const
 Prints the kernel parameters to the provided stream. More...
 
Type polyType () const
 Get the "kernel type", i.e., its domain of definition.
 
coord_t polyEval (const base &k) const
 Evaluate the kernel at the location/orientation of k.
 
coord_t polyCutPoint () const
 Distance (from the origin) at which the value of the kernel becomes zero.
 
base::ptr polySample () const
 Get a sample from the kernel.
 
NUKLEI_UNIQUE_PTR< kernel::se3polySe3Sample () const
 Get an \( SE(3) \) sample from the kernel. More...
 
NUKLEI_UNIQUE_PTR< kernel::se3polySe3Proj () const
 Get an \( SE(3) \) version of the kernel. More...
 
base::ptr polyProjectedOn (const kernel::se3 &k) const
 Projects *this onto k and returns the result. (See Operations on Poses.)
 
base::ptr polyTransformedWith (const kernel::se3 &k) const
 Transforms *this with k and returns the result. (See Operations on Poses.)
 
void polyMakeTransformWith (const kernel::se3 &k)
 Transforms *this with k and sets *this to the result. (See Operations on Poses.)
 
base::ptr polyLinearInterpolation (const kernel::base &k, const coord_t x) const
 Interpolates between *this and k. More...
 
void polyUpdateWidth (const kernel::base &k, const coord_t x=.5)
 Used internally.
 
coord_pair polyDistanceTo (const kernel::base &k) const
 Returns a std::pair containing the distance in position and orientation between *this and k.
 
- Public Member Functions inherited from nuklei::kernel::base
virtual void assertConsistency () const =0
 
bool operator< (const kernel::base &k) const
 Weight-based kernel comparator.
 
bool operator> (const kernel::base &k) const
 Weight-based kernel comparator.
 
virtual coord_t getLocH () const =0
 Get the location bandwidth.
 
virtual void setLocH (const coord_t h)=0
 Set the location bandwidth.
 
virtual coord_t getOriH () const =0
 Get the orientation bandwidth. More...
 
virtual void setOriH (const coord_t h)=0
 Set the orientation bandwidth. More...
 
weight_t getWeight () const
 Returns this kernel's weight.
 
void setWeight (const weight_t w)
 Sets this kernel's weight.
 
bool hasDescriptor () const
 
DescriptorgetDescriptor ()
 
const DescriptorgetDescriptor () const
 
void setDescriptor (const Descriptor &desc)
 
void clearDescriptor ()
 
void setFlag (bitfield_t flag)
 
void resetFlag (bitfield_t flag)
 
bool getFlag (bitfield_t flag) const
 

Additional Inherited Members

- Public Types inherited from nuklei::kernel::base
enum  Type {
  R3 = 0, R3XS2, R3XS2P, SE3,
  UNKNOWN
}
 Explicit query of a kernel's type. See Type Queries for more info.
 
typedef NUKLEI_UNIQUE_PTR< kernel::baseptr
 NUKLEI_UNIQUE_PTR for kernel::base.
 
- Static Public Attributes inherited from nuklei::kernel::base
static const Type defaultType = SE3
 Explicit query of a kernel's type. See Type Queries for more info.
 
static const std::string TypeNames [] = { "r3", "r3xs2", "r3xs2p", "se3" }
 Explicit query of a kernel's type. See Type Queries for more info.
 
- Protected Member Functions inherited from nuklei::kernel::base
 base (const base &k)
 
baseoperator= (const base &k)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
- Protected Attributes inherited from nuklei::kernel::base
weight_t w_
 
int flag1_
 
bitfield_t bitfield_
 
NUKLEI_UNIQUE_PTR< Descriptordesc_
 

Detailed Description

template<class T>
struct nuklei::kernel::implementation_prototype< T >

Definition at line 278 of file Kernel.h.

Member Function Documentation

◆ polyLinearInterpolation()

template<class T >
base::ptr nuklei::kernel::implementation_prototype< T >::polyLinearInterpolation ( const kernel::base k,
const coord_t  x 
) const
inlinevirtual

Interpolates between *this and k.

For x = 0, this function returns *this. If x = 1, it returns k. For orientation, interpolation is done in Euclidean space. Slerp should be used instead. To be fixed soon.

Implements nuklei::kernel::base.

Definition at line 372 of file Kernel.h.

◆ polyPrint()

template<class T >
std::ostream& nuklei::kernel::implementation_prototype< T >::polyPrint ( std::ostream &  out) const
inlinevirtual

Prints the kernel parameters to the provided stream.

The purpose of this method is debugging. It shouldn't be used for serialization.

Implements nuklei::kernel::base.

Definition at line 308 of file Kernel.h.

◆ polySe3Proj()

template<class T >
NUKLEI_UNIQUE_PTR< kernel::se3 > nuklei::kernel::implementation_prototype< T >::polySe3Proj ( ) const
virtual

Get an \( SE(3) \) version of the kernel.

Take a sample from the kernel. If the kernel is defined on a subspace of \( SE(3) \), make it \( SE(3) \) by selecting random values from a uniform distribution for the extra DOFs.

Implements nuklei::kernel::base.

Definition at line 951 of file Kernel.h.

◆ polySe3Sample()

template<class T >
NUKLEI_UNIQUE_PTR< kernel::se3 > nuklei::kernel::implementation_prototype< T >::polySe3Sample ( ) const
virtual

Get an \( SE(3) \) sample from the kernel.

Take a sample from the kernel. If the kernel is defined on a subspace of \( SE(3) \), make the sample \( SE(3) \) by selecting random values from a uniform distribution for the extra DOFs.

Implements nuklei::kernel::base.

Definition at line 941 of file Kernel.h.


The documentation for this struct was generated from the following file:
© Copyright 2007-2013 Renaud Detry.
Distributed under the terms of the GNU General Public License (GPL).
(See accompanying file LICENSE.txt or copy at http://www.gnu.org/copyleft/gpl.html.)
Revised Sun Sep 13 2020 19:10:14.