ldpk
Classes | Enumerations | Functions
ldpk Namespace Reference

The namespace of (most of the) things related to the Lens Distortion Plugin Kit. More...

Classes

class  box
 A simple box class for double precision points in 2d. We will extend this as needed. More...
 
class  cache_line_buffer
 
class  classic_3de_mixed_distortion
 Degree-2 anamorphic and degree-4 radial mixed model. More...
 
class  cylindric_extender
 
class  cylindric_extender_2
 "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...
 
class  error_base
 Base class for errors. More...
 
class  error_could_not_read_parameter_name
 Another parse error. More...
 
class  error_could_not_read_value
 A parse error. More...
 
class  error_dynamic_link
 An error occurred while loading or linking the plugin. More...
 
class  error_end_of_stream
 Unexpected end of stream. This can occur in ldpk::model_parser. More...
 
class  error_index_out_of_range
 Some index was out of range. More...
 
class  error_no_model_specified
 No model was set in one of the utility classes. More...
 
class  error_undefined_parameter
 Undefined parameter. More...
 
class  extender_base
 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...
 
class  extendible_vector
 
class  generic_anamorphic_distortion
 A polynomial distortion model for anamorphic distortion without decntering. N is the degree of the polynomial, even. VEC2 is a float-valued, two-component vector type. The model has the following properties: More...
 
class  generic_anamorphic_distortion< VEC2, MAT2, 4 >
 Specialization for degree-4 for better performance. Also, this allows us to implement the Jacobian quite easy. We need this in ld model "Anamorphic - Standard, Degree4". More...
 
class  generic_anamorphic_distortion< VEC2, MAT2, 6 >
 Specialization for degree-6 for better performance. Also, this allows us to implement the Jacobian quite easy. More...
 
class  generic_distortion_base
 Base class for a distortion model with N parameters. You may find it useful to derive your own distortion model class from this one. It contains methods for inverting the distortion model function. We derive this class from the standard unary function class in order to get a well-defined function object. More...
 
class  generic_radial_distortion
 A polynomial model with N coefficients for radially symmetric lenses. This class contains the model for normalized coordinates with diagonal radius = 1. Lens center is at (0,0), because we take it into account in the plugin class. More...
 
class  generic_radial_distortion_1d
 A polynomial model with N coefficients for radially symmetric lenses. This class contains the model for normalized coordinates with diagonal radius = 1. Lens center is at (0,0). More...
 
class  highest_bit_ct
 Compile-Time computations, needed by ldpk::power_ct. More...
 
class  highest_bit_ct< 1 >
 
class  ldp_builtin
 This class handles the built-in parameter and the lookup table. You may find it useful for your own distortion model, since it implements the built-in parameters and the lookup table mechanism. But in contrast to tde4_ld_plugin it's not stringent to use it from a technical point of view. Alternatively you can implement all this in your plugin class. More...
 
class  line_cache
 The class is thread-safe in the following sense: More...
 
class  line_ref
 In Multithreading, more than one thread may work on the same line reading and writing, however resizing is not allowed. More...
 
class  linear_extender
 A general linear extender, based on a 2x2-matrix. More...
 
class  lookup_table
 Use your own two-dimensional double-valued vector type as VEC2. More...
 
class  mat2d
 A class for double-valued 2x2-matrices. The matrix class for ldpk::vec2d. More...
 
class  model_parser
 A class for reading distortion model parameters from a stream. Might be helpful for testing. Just another nice-to-have... More...
 
class  plugin_loader
 A simple plugin loader for testing and debugging purposes. More...
 
class  power_ct
 Computing N powers of a given number, where N is a compile-time constant. More...
 
class  power_ct< T, 1 >
 
class  power_ct< T, 2 >
 
class  radial_decentered_distortion
 A polynomial radially symmetric model of degree 4 with decentering. This is the distortion model for 3DE4's "Radial, Standard - Degree 4". More...
 
class  radial_homomorphic_decentered_distortion
 The homomorphic radially symmetric model of degree 2 with decentering. More...
 
class  rotation_extender
 The rotation extender simply rotates the incident ray around the optical axis. We need this e.g. for the new-style squeeze-rotation anamorphic distortion model. More...
 
class  squeeze_x_extender
 The squeeze-x/y-extender scales the optical-axis-perpendicular coordinates of the incident ray towards the optical axis, either in x or in y direction. More...
 
class  squeeze_y_extender
 
class  table_generator
 Generate table data from plugin for visualization. More...
 
class  vec2d
 A class for two-dimensional double-valued vectors We have added this class and ldpk::mat2d in order to deliver a self-consistent kit. You may use this one or your own vector and matrix classes, at your choice. If you prefer your own classes, it will be necessary to add a handful of functions like dot(), dotsq(), norm2() for vec2d and invert() for mat2d, which provide standard functions, but do not have standardized nomenclature. More...
 

Enumerations

enum  para_builtin_enum {
  para_not_a_builtin = -1, para_focal_length = 0, para_filmback_width = 1, para_filmback_height = 2,
  para_lens_center_offset_x = 3, para_lens_center_offset_y = 4, para_pixel_aspect = 5, para_custom_focus_distance = 6
}
 An enum-type for built-in parameters. Also used to address elements in parameter name array.
 

Functions

const char * text (::tde4_ldp_ptype ptype)
 text representation of parameter types
 
Tensor products
mat2d ten (const vec2d &a, const vec2d &b)
 Tensor (dyadic) product of vectors.
 
mat2d tensq (const vec2d &a)
 Tensor (dyadic) product square.
 

Detailed Description

The namespace of (most of the) things related to the Lens Distortion Plugin Kit.