ldpk
Public Types | Public Member Functions | List of all members
ldpk::extender_base< VEC2, MAT2 > Class Template Referenceabstract

Base class of all extenders The concept of extenders as turned out to be useful in the new-style distortion models which compensate for beam-splitter effects or rotated anamorphic lenses. Essentially, an extender maps from vec2_type to vec2_type. It also provides the inverse mapping. Up to now, all extenders have a simple representation as a 2x2-matrix (i.e. they are linear maps), but it might be necessary in the future to extend this to affine transformations. More...

#include <ldpk_extender_base.h>

Inheritance diagram for ldpk::extender_base< VEC2, MAT2 >:
Inheritance graph
[legend]

Public Types

typedef VEC2 vec2_type
 
typedef MAT2 mat2_type
 

Public Member Functions

virtual vec2_type eval (const vec2_type &p) const =0
 eval() is by definition removal of lens distortion (undistort).
 
virtual vec2_type eval_inv (const vec2_type &q) const =0
 eval_inv() is applying lens distortion (distort)
 
virtual vec2_type eval_inv (const vec2_type &q, const vec2_type &p_start) const =0
 Generally (but not here), an initial value is needed for calculating the inverse.
 
virtual const mat2_type & get_mat () const =0
 The matrix for this extender.
 
virtual const mat2_type & get_mat_inv () const =0
 The inverse matrix for this extender.
 

Detailed Description

template<class VEC2, class MAT2>
class ldpk::extender_base< VEC2, MAT2 >

Base class of all extenders The concept of extenders as turned out to be useful in the new-style distortion models which compensate for beam-splitter effects or rotated anamorphic lenses. Essentially, an extender maps from vec2_type to vec2_type. It also provides the inverse mapping. Up to now, all extenders have a simple representation as a 2x2-matrix (i.e. they are linear maps), but it might be necessary in the future to extend this to affine transformations.


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