add adams 4.6->4.6.1 (mostly)
[goodguy/history.git] / cinelerra-5.0 / cinelerra / affine.h
index 2eaf4856f87778a35120bb23f614695734826ae3..ee3120638546b253eafffc651089d1af9c7024ae 100644 (file)
@@ -1,7 +1,7 @@
 
 /*
  * CINELERRA
- * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
+ * Copyright (C) 2008-2014 Adam Williams <broadcast at earthling dot net>
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -108,6 +108,7 @@ public:
        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.
        void set_in_viewport(int x, int y, int w, int h);
@@ -126,6 +127,8 @@ public:
        void init_packages();
        LoadClient* new_client();
        LoadPackage* new_package();
+
+
        VFrame *input, *output, *temp;
        int mode;
        enum
@@ -133,9 +136,13 @@ public:
                PERSPECTIVE,
                SHEER,
                STRETCH,
-               ROTATE
+               ROTATE,
+// multiply directly by a matrix. 
+               TRANSFORM
        };
 
+// arbitrary matrix
+       AffineMatrix matrix;
 // Transformation coordinates
        float x1, y1, x2, y2, x3, y3, x4, y4;
 // Viewport coordinates