X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Faffine.h;h=1740d90545e1e3923fd2931fba8c3ad20ab7d065;hb=8bd72f90925843be9ab9182c89761ee0640e7873;hp=be74d572827a92ec5c54e78dcc9378fdc849519d;hpb=8aa6d71ebd2c65785a8b553fc6fc38ac19041ce0;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/affine.h b/cinelerra-5.1/cinelerra/affine.h index be74d572..1740d905 100644 --- a/cinelerra-5.1/cinelerra/affine.h +++ b/cinelerra-5.1/cinelerra/affine.h @@ -42,6 +42,11 @@ public: void multiply(AffineMatrix *dst); void copy_from(AffineMatrix *src); void invert(AffineMatrix *dst); +// in x1,y1 x2,y1 out x1,y1 x2,y2 +// x1,y2 x2,y2 x3,y3 x4,y4 + 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); void transform_point(float x, float y, float *newx, float *newy); double determinant(); void dump(); @@ -60,20 +65,6 @@ class AffineUnit : public LoadClient public: AffineUnit(AffineEngine *server); void process_package(LoadPackage *package); - void calculate_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, - AffineMatrix *result); // float transform_cubic(float dx, float jm1, float j, float jp1, float jp2); AffineEngine *server; }; @@ -90,18 +81,13 @@ public: float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, int forward); + 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); // 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 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);