ldpk
|
"Symmetric" version. Scaling by sqrt(1+b) in para-direction and 1/sqrt(1+b) in ortho-direction. The important thing is, that we have turned an almost-symmetry into a perfect symmetry: phi -> phi + 90deg, b -> 1/b. The drawback is, that this models the curved beam splitter only if focal length is corrected slightly, by a factor sqrt(1+b). Nevertheless we are using this model in "3DE4 Radial - Standard, Degree 4". More...
#include <ldpk_cylindric_extender.h>
Public Types | |
typedef VEC2 | vec2_type |
typedef MAT2 | mat2_type |
![]() | |
typedef VEC2 | vec2_type |
typedef MAT2 | mat2_type |
Public Member Functions | |
void | set_phi (double phi) |
The cylindric extender has a parameter called phi. | |
double | get_phi () const |
void | set_b (double b) |
This parameter expresses the strength of the cylindric deformation ("bending"). | |
double | get_b () const |
vec2_type | eval (const vec2_type &p) const |
eval() is per definition removal of lens distortion (undistort). | |
virtual vec2_type | eval_inv (const vec2_type &q) const |
eval_inv() is applying lens distortion (distort) | |
vec2_type | eval_inv (const vec2_type &q, const vec2_type &p_start) const |
Generally (but not here), an initial value is needed for calculating the inverse. | |
const mat2_type & | get_mat () const |
The matrix for this extender. | |
const mat2_type & | get_mat_inv () const |
The inverse matrix for this extender. | |
"Symmetric" version. Scaling by sqrt(1+b) in para-direction and 1/sqrt(1+b) in ortho-direction. The important thing is, that we have turned an almost-symmetry into a perfect symmetry: phi -> phi + 90deg, b -> 1/b. The drawback is, that this models the curved beam splitter only if focal length is corrected slightly, by a factor sqrt(1+b). Nevertheless we are using this model in "3DE4 Radial - Standard, Degree 4".