X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Faffine.h;h=339c8cbb5c1b931e304a0be656df2b20b9e26bc6;hb=680d2000be2db33da1e2733461854158067f5862;hp=d03f6cd872fd97c33ae67761327045883a8d1690;hpb=5a1b2bb96f2bd6b7ef4f8031763683726c02219d;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/affine.h b/cinelerra-5.1/cinelerra/affine.h index d03f6cd8..339c8cbb 100644 --- a/cinelerra-5.1/cinelerra/affine.h +++ b/cinelerra-5.1/cinelerra/affine.h @@ -86,24 +86,13 @@ public: // Range of coords is 0 to 100 for coordinates in the image. // The coordinate locations are clockwise around the image. - void process(VFrame *output, - VFrame *input, - VFrame *temp, - int mode, - float x1, - float y1, - float x2, - float y2, - float x3, - float y3, - float x4, - float y4, + void process(VFrame *output, VFrame *input, VFrame *temp, int mode, + float x1, float y1, float x2, float y2, + float x3, float y3, float x4, float y4, int forward); // Do rotation with the affine/perspective transform. // This removes some of the extremely faint artifacts in the trig rotation. - void rotate(VFrame *output, - VFrame *input, - float angle); + void rotate(VFrame *output, VFrame *input, float angle); void set_matrix(AffineMatrix *matrix); // Set the viewport to transform. The transform is based on the input viewport. // The output viewport clips the transformed output. @@ -127,6 +116,8 @@ public: // Never used void unset_pivot(); void unset_viewport(); +// default: AF_CUBIC + void set_interpolation(int type); // To use OpenGL for the processing, set to 1 void set_opengl(int value); void init_packages(); @@ -136,8 +127,7 @@ public: VFrame *input, *output, *temp; int mode; - enum - { + enum { PERSPECTIVE, SHEER, STRETCH, @@ -145,6 +135,14 @@ public: // multiply directly by a matrix. TRANSFORM }; + int interpolation; + enum { + AF_DEFAULT, + AF_NEAREST, + AF_LINEAR, + AF_CUBIC, + AF_MODES + }; // arbitrary matrix AffineMatrix matrix;