X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Faffine.h;h=be74d572827a92ec5c54e78dcc9378fdc849519d;hp=d03f6cd872fd97c33ae67761327045883a8d1690;hb=8aa6d71ebd2c65785a8b553fc6fc38ac19041ce0;hpb=5a1b2bb96f2bd6b7ef4f8031763683726c02219d diff --git a/cinelerra-5.1/cinelerra/affine.h b/cinelerra-5.1/cinelerra/affine.h index d03f6cd8..be74d572 100644 --- a/cinelerra-5.1/cinelerra/affine.h +++ b/cinelerra-5.1/cinelerra/affine.h @@ -86,25 +86,22 @@ 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_matrix: +// in x1,y1 - x2,y1 out x1,y1 - x2,y2 clockwise +// | | | | +// x1,y2 - x2,y2 x4,y4 - x3,y3 +// + void set_matrix( double in_x1, double in_y1, double in_x2, double in_y2, + double out_x1, double out_y1, double out_x2, double out_y2, + double out_x3, double out_y3, double out_x4, double out_y4); // Set the viewport to transform. The transform is based on the input viewport. // The output viewport clips the transformed output. void set_in_viewport(int x, int y, int w, int h); @@ -127,6 +124,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 +135,7 @@ public: VFrame *input, *output, *temp; int mode; - enum - { + enum { PERSPECTIVE, SHEER, STRETCH, @@ -145,6 +143,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;