ldpk
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 Cldpk::box< VEC2 >A simple box class for double precision points in 2d. We will extend this as needed
 Cexception
 Cldpk::error_baseBase class for errors
 Cldpk::error_could_not_read_parameter_nameAnother parse error
 Cldpk::error_could_not_read_valueA parse error
 Cldpk::error_dynamic_linkAn error occurred while loading or linking the plugin
 Cldpk::error_end_of_streamUnexpected end of stream. This can occur in ldpk::model_parser
 Cldpk::error_index_out_of_rangeSome index was out of range
 Cldpk::error_no_model_specifiedNo model was set in one of the utility classes
 Cldpk::error_undefined_parameterUndefined parameter
 Cldpk::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
 Cldpk::cylindric_extender< VEC2, MAT2 >
 Cldpk::cylindric_extender_2< VEC2, MAT2 >"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"
 Cldpk::linear_extender< VEC2, MAT2 >A general linear extender, based on a 2x2-matrix
 Cldpk::rotation_extender< VEC2, MAT2 >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
 Cldpk::squeeze_x_extender< VEC2, MAT2 >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
 Cldpk::squeeze_y_extender< VEC2, MAT2 >
 Cldpk::extender_base< vec2_type, mat2_type >
 Cldpk::cylindric_extender_2< vec2_type, mat2_type >
 Cldpk::linear_extender< vec2_type, mat2_type >
 Cldpk::rotation_extender< vec2_type, mat2_type >
 Cldpk::squeeze_x_extender< vec2_type, mat2_type >
 Cldpk::squeeze_y_extender< vec2_type, mat2_type >
 Cldpk::highest_bit_ct< N >Compile-Time computations, needed by ldpk::power_ct
 Cldpk::highest_bit_ct< 1 >
 CIop
 Cnuke_ld_3de4_baseThe baseclass for Nuke plugins around LDPK-based lens distortion models. In order to implement a Nuke plugin, derive from this class
 Ciop_tde4_ldp_all_par_typesNuke plugin based on tde4_ldp_all_par_types
 Ciop_tde4_ldp_anamorphic_deg_4_rotate_squeeze_xyNuke plugin based on tde4_ldp_anamorphic_deg_4_rotate_squeeze_xy
 Ciop_tde4_ldp_anamorphic_deg_6Nuke plugin based on tde4_ldp_anamorphic_deg_6
 Ciop_tde4_ldp_classic_3de_mixedNuke plugin based on tde4_ldp_classic_3de_mixed
 Ciop_tde4_ldp_radial_decentered_deg_4_cylindricNuke plugin based on tde4_ldp_radial_decentered_deg_4_cylindric
 Ciop_tde4_ldp_radial_deg_8Nuke plugin based on tde4_ldp_radial_deg_8
 Ciop_tde4_ldp_radial_deg_8_release_1Nuke plugin based on tde4_ldp_radial_deg_8
 Cldpk::lookup_table< VEC2 >Use your own two-dimensional double-valued vector type as VEC2
 Cldpk::lookup_table< vec2_type >
 Cldpk::mat2dA class for double-valued 2x2-matrices. The matrix class for ldpk::vec2d
 Cldpk::model_parserA class for reading distortion model parameters from a stream. Might be helpful for testing. Just another nice-to-have..
 Cldpk::plugin_loaderA simple plugin loader for testing and debugging purposes
 Cldpk::power_ct< T, N >Computing N powers of a given number, where N is a compile-time constant
 Cldpk::power_ct< T, 1 >
 Cldpk::power_ct< T, 2 >
 Cldpk::table_generatorGenerate table data from plugin for visualization
 Ctde4_ld_pluginLens Distortion Plugin Base Class
 Cldpk::ldp_builtin< ldpk::vec2d, ldpk::mat2d >
 Cldpk::ldp_builtin< VEC2, MAT2 >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
 Ctde4_ldp_all_par_types< VEC2, MAT2 >Example plugin class containing one parameter of each type. The main purpose of this model is to test the various parameter types. It is based on a degree-4-anamorphic model and allows to control the lower order coefficients and squeeze parameters
 Ctde4_ldp_anamorphic_deg_4_rotate_squeeze_xy< VEC2, MAT2 >
 Ctde4_ldp_anamorphic_deg_6< VEC2, MAT2 >Plugin class for anamorphic distortion. Does not compensate for decentering. Parameters can be calculated by 3DE's Matrix Tool
 Ctde4_ldp_classic_3de_mixed< VEC2, MAT2 >Degree-2 anamorphic and degree-4 radial mixed model. Does not compensate for decentering. Parameters can be calculated by 3DE's Matrix Tool
 Ctde4_ldp_radial_decentered_deg_4_cylindric< VEC2, MAT2 >Plugin class for radial distortion with decentering and optional compensation for beam-splitter artefacts. Parameters can be calculated by 3DE's Matrix Tool
 Ctde4_ldp_radial_deg_8< VEC2, MAT2 >Plugin class for radial distortion. Does not compensate for decentering. Parameters can be calculated by 3DE's Matrix Tool
 Ctde4_ldp_radial_deg_8_release_1< VEC2, MAT2 >Plugin class for radial distortion. Does not compensate for decentering. Parameters can be calculated by 3DE's Matrix Tool
 Ctde4_ldp_py_wrapper
 Cunary_function
 Cldpk::generic_distortion_base< VEC2, MAT2, 5 >
 Cldpk::classic_3de_mixed_distortion< VEC2, MAT2 >Degree-2 anamorphic and degree-4 radial mixed model
 Cldpk::generic_distortion_base< VEC2, MAT2, 6 >
 Cldpk::radial_decentered_distortion< VEC2, MAT2 >A polynomial radially symmetric model of degree 4 with decentering. This is the distortion model for 3DE4's "Radial, Standard - Degree 4"
 Cldpk::generic_distortion_base< VEC2, MAT2,(4+2)*(4+4)/4-2 >
 Cldpk::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"
 Cldpk::generic_distortion_base< VEC2, MAT2,(6+2)*(6+4)/4-2 >
 Cldpk::generic_anamorphic_distortion< VEC2, MAT2, 6 >Specialization for degree-6 for better performance. Also, this allows us to implement the Jacobian quite easy
 Cldpk::generic_distortion_base< VEC2, MAT2,(N+2)*(N+4)/4-2 >
 Cldpk::generic_anamorphic_distortion< VEC2, MAT2, N >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:
 Cldpk::generic_distortion_base< vec2_type, mat2_type, 5 >
 Cldpk::classic_3de_mixed_distortion< vec2_type, mat2_type >
 Cldpk::generic_distortion_base< vec2_type, mat2_type, 6 >
 Cldpk::radial_decentered_distortion< vec2_type, mat2_type >
 Cldpk::generic_distortion_base< vec2_type, mat2_type, N >
 Cldpk::generic_radial_distortion< vec2_type, mat2_type, 4 >
 Cldpk::generic_distortion_base< vec2_type, mat2_type,(N+2)*(N+4)/4-2 >
 Cldpk::generic_anamorphic_distortion< vec2_type, mat2_type, 4 >
 Cldpk::generic_anamorphic_distortion< vec2_type, mat2_type, 6 >
 Cldpk::generic_distortion_base< VEC2, MAT2, N >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
 Cldpk::generic_radial_distortion< VEC2, MAT2, N >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
 Cldpk::vec2dA 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