Libpointing
An open-source cross-platform library to get raw events from pointing devices and master transfer functions.
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
pointing::Interpolation Class Reference

The Interpolation class is subclass of TransferFunction which can interpolate between given values in the table. More...

#include <Interpolation.h>

Inheritance diagram for pointing::Interpolation:
pointing::TransferFunction

Public Member Functions

 Interpolation (URI &uri, PointingDevice *input, DisplayDevice *output)
 
void loadTableStr (std::string tableData)
 
void clearState (void)
 Method which clears the current state of the device to be the default one (without any remainders or previous data).
 
void applyi (int dxMickey, int dyMickey, int *dxPixel, int *dyPixel, TimeStamp::inttime timestamp=TimeStamp::undef)
 apply The main method of the class which applies the transfer function. More...
 
void applyd (int dxMickey, int dyMickey, double *dxPixel, double *dyPixel, TimeStamp::inttime timestamp=TimeStamp::undef)
 apply The main method of the class which applies the transfer function. More...
 
URI getURI (bool expanded=false) const
 getURI The method constructs URI corresponding to the type and parameters of the transfer function. More...
 
- Public Member Functions inherited from pointing::TransferFunction
virtual void setDebugLevel (int)
 Sets the level of information for debugging purposes (default = 0).
 
virtual void debug (std::ostream &) const
 

Protected Member Functions

void Interpolate (std::vector< int > &lowInd, std::vector< int > &highInd)
 Interpolate Values that do not exist in the main table are interpolated using 2 other tables which refer to indices of the closest values. More...
 
void TableToCoefficients ()
 
std::string replaceAlias (std::string &curAcc)
 
float valueFromTable (unsigned index)
 
double valueFromTable (double index)
 Interpolation::valueFromTable Makes subpoint interpolation. More...
 
- Protected Member Functions inherited from pointing::TransferFunction
void normalizeInput (int *dx, int *dy, PointingDevice *input) const
 normalizeInput Normalizes input to a transfer function with respect to the given PointingDevice. For example, to prevent fast movements of the cursor for high resolution mice. dx and dy are changed according to the input->getResolution() More...
 
void normalizeOutput (int *dx, int *dy, DisplayDevice *output) const
 normalizeOutput Normalizes output of a transfer function with respect to the given DisplayDevice. For example, to prevent slow movements of the cursor for high resolution display. dx and dy are changed according to the output->getResolution() More...
 

Protected Attributes

PointingDevicepointingDevice
 
DisplayDevicedisplayDevice
 
PointingDeviceoriginalInput = nullptr
 
DisplayDeviceoriginalOutput = nullptr
 
InterpolationSpace space = InterpolationSpace::VelocityGain
 
bool normalize = false
 
std::string directory
 
std::string curAcc
 
int previousMouseRawX
 
int previousMouseRawY
 
float previousMouseXRemainder
 
float previousMouseYRemainder
 
ConfigDict cfg
 
std::string system
 
std::map< std::string,
std::string > 
mapAcc
 
std::vector< float > tableAcc
 

Additional Inherited Members

- Static Public Member Functions inherited from pointing::TransferFunction
static std::list< std::string > schemes (void)
 
static TransferFunctioncreate (const char *function_uri, PointingDevice *input, DisplayDevice *output)
 Static method to instantiate an object of a sub-class. More...
 
static TransferFunctioncreate (std::string function_uri, PointingDevice *input, DisplayDevice *output)
 Static method to instantiate an object of a sub-class. More...
 
static TransferFunctioncreate (URI &function_uri, PointingDevice *input, DisplayDevice *output)
 Static method to instantiate an object of a sub-class. More...
 

Detailed Description

The Interpolation class is subclass of TransferFunction which can interpolate between given values in the table.

Member Function Documentation

void pointing::Interpolation::applyd ( int  dxMickey,
int  dyMickey,
double *  dxPixel,
double *  dyPixel,
TimeStamp::inttime  timestamp = TimeStamp::undef 
)
virtual

apply The main method of the class which applies the transfer function.

Parameters
dxMickeyTranslation in dots of the input device along x direction.
dyMickeyTranslation in dots of the input device along y direction.
dxPixel(Double) Computed translation in pixels of the output device along x direction.
dyPixel(Double) Computed translation in pixels of the output device along y direction.
timestamp

Implements pointing::TransferFunction.

void pointing::Interpolation::applyi ( int  dxMickey,
int  dyMickey,
int *  dxPixel,
int *  dyPixel,
TimeStamp::inttime  timestamp = TimeStamp::undef 
)
virtual

apply The main method of the class which applies the transfer function.

Parameters
dxMickeyTranslation in dots of the input device along x direction.
dyMickeyTranslation in dots of the input device along y direction.
dxPixel(Integer) Computed translation in pixels of the output device along x direction.
dyPixel(Integer) Computed translation in pixels of the output device along y direction.
timestamp

Implements pointing::TransferFunction.

URI pointing::Interpolation::getURI ( bool  expanded = false) const
virtual

getURI The method constructs URI corresponding to the type and parameters of the transfer function.

Parameters
expandedIndicates whether all parameters must be included in URI.
Returns
URI result.

Implements pointing::TransferFunction.

void pointing::Interpolation::Interpolate ( std::vector< int > &  lowInd,
std::vector< int > &  highInd 
)
protected

Interpolate Values that do not exist in the main table are interpolated using 2 other tables which refer to indices of the closest values.

Parameters
lowInd
highInd
double pointing::Interpolation::valueFromTable ( double  index)
protected

Interpolation::valueFromTable Makes subpoint interpolation.

Parameters
indexNumber of points
Returns
Corresponding Px

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