1 #include <DDImage/Iop.h>
2 #include <DDImage/Box.h>
3 #include <DDImage/Filter.h>
4 #include <DDImage/Knobs.h>
5 #include <DDImage/Pixel.h>
6 #include <DDImage/Row.h>
7 #include <DDImage/Tile.h>
8 #include <DDImage/NukeWrapper.h>
9 #include <ldpk/ldpk_ldp_builtin.h>
18 DD::Image::Filter _filter;
24 int _knob_output_mode;
26 double _xa_fov_unit,_ya_fov_unit;
27 double _xb_fov_unit,_yb_fov_unit;
28 double _xd_fov_unit,_yd_fov_unit;
29 double _inv_xd_fov_unit,_inv_yd_fov_unit;
31 int _num_par_adjustable_double;
40 double* _values_adjustable_double;
41 double* _values_double;
43 const char** _values_string;
44 const char** _values_file;
47 char** _defaults_string;
48 char** _defaults_file;
55 double map_in_fov_x(
double x_unit)
const
56 {
return (x_unit - _xa_fov_unit) * _inv_xd_fov_unit; }
58 double map_in_fov_y(
double y_unit)
const
59 {
return (y_unit - _ya_fov_unit) * _inv_yd_fov_unit; }
61 double map_out_fov_x(
double x_fov)
const
62 {
return x_fov * _xd_fov_unit + _xa_fov_unit; }
64 double map_out_fov_y(
double y_fov)
const
65 {
return y_fov * _yd_fov_unit + _ya_fov_unit; }
72 std::string nukify_name(
const std::string& name);
74 enum direction_enum { distort = 0,undistort = 1 };
75 DD::Image::Box bounds(direction_enum,
int x,
int y,
int r,
int t);
77 void set_default_values();
79 void check_indices(
int i_par_adjustable_double,
int i_par_double,
int i_par_int,
int i_par_string,
int i_par_file,
int i_par_toggle,
int i_debug)
const;
84 void knobs(DD::Image::Knob_Callback f);
86 void _request(
int x,
int y,
int r,
int t,DD::Image::ChannelMask channels,
int count);
87 void engine(
int y,
int x,
int r,DD::Image::ChannelMask channels,DD::Image::Row& out);
89 static const DD::Image::Iop::Description description;
Lens Distortion Plugin Base Class.
Definition: tde4_ld_plugin.h:21
The baseclass for Nuke plugins around LDPK-based lens distortion models. In order to implement a Nuke...
Definition: nuke_ld_3de4_base.h:15