Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.0 / cinelerra / affine.h
diff --git a/cinelerra-5.0/cinelerra/affine.h b/cinelerra-5.0/cinelerra/affine.h
deleted file mode 100644 (file)
index ee31206..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-
-/*
- * CINELERRA
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- * 
- */
-
-#ifndef AFFINE_H
-#define AFFINE_H
-
-
-#include "affine.inc"
-#include "loadbalance.h"
-#include "vframe.inc"
-
-// Affine transform library
-
-#define AFFINE_OVERSAMPLE 2
-
-class AffineMatrix
-{
-public:
-       AffineMatrix();
-       void identity();
-       void translate(double x, double y);
-       void scale(double x, double y);
-// Result is put in dst
-       void multiply(AffineMatrix *dst);
-       void copy_from(AffineMatrix *src);
-       void invert(AffineMatrix *dst);
-       void transform_point(float x, float y, float *newx, float *newy);
-       double determinant();
-       void dump();
-       double values[3][3];
-};
-
-class AffinePackage : public LoadPackage
-{
-public:
-       AffinePackage();
-       int y1, y2;
-};
-
-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;
-};
-
-class AffineEngine : public LoadServer
-{
-public:
-       AffineEngine(int total_clients, 
-               int total_packages);
-
-// 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,
-               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 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);
-// Only used by motion tracker.  Not used in OpenGL.
-       void set_out_viewport(int x, int y, int w, int h);
-// For rotation, set the pivot point.  Also affects output in OpenGL.
-// The default is in the middle of the viewport.
-       void set_in_pivot(int x, int y);
-// Set the pivot point in the output.  Only used by motion tracker.
-       void set_out_pivot(int x, int y);
-// Never used
-       void unset_pivot();
-       void unset_viewport();
-// To use OpenGL for the processing, set to 1
-       void set_opengl(int value);
-       void init_packages();
-       LoadClient* new_client();
-       LoadPackage* new_package();
-
-
-       VFrame *input, *output, *temp;
-       int mode;
-       enum
-       {
-               PERSPECTIVE,
-               SHEER,
-               STRETCH,
-               ROTATE,
-// multiply directly by a matrix. 
-               TRANSFORM
-       };
-
-// arbitrary matrix
-       AffineMatrix matrix;
-// Transformation coordinates
-       float x1, y1, x2, y2, x3, y3, x4, y4;
-// Viewport coordinates
-       int in_x, in_y, in_w, in_h;
-       int out_x, out_y, out_w, out_h;
-// Pivot coordinates
-       int in_pivot_x, in_pivot_y;
-       int out_pivot_x, out_pivot_y;
-       int user_in_pivot;
-       int user_out_pivot;
-       int user_in_viewport;
-       int user_out_viewport;
-       int forward;
-       int use_opengl;
-       int total_packages;
-};
-
-
-
-#endif