runtime.h

Go to the documentation of this file.
00001 #ifndef RUNTIME_H
00002 #define RUNTIME_H
00003 
00004 #include <vector>
00005 #include <qstring.h>
00006 #include "value.h"
00007 #include "image.h"
00008 
00009 using namespace std;
00010 
00014 class Runtime
00015 {
00016  private:
00017   // add
00018   Value * add(Value * a, Value *b);
00019   Value * add(vector<Value*>);
00020 
00021   // sub, neg
00022   Value * neg(Value *);
00023   Value * sub(vector<Value*>);
00024 
00025   // division
00026   Value * div(Value * a, Value *b);
00027   Value * div(vector<Value*>);
00028 
00029   // multiplication
00030   Value * mul(Value * a, Value *b);
00031   Value * mul(vector<Value*>);
00032 
00033   // images
00034   Value * image(QString filename);
00035   Value * image(Value * filename);
00036   Value * image();
00037   Value * image(vector<Value*>);
00038 
00039   // selecting
00040   Value * select(Value * image);
00041   Value * select(vector<Value*>);
00042   Value * line(Value * image);
00043   Value * line(vector<Value*>);
00044   Value * box(Value * image);
00045   Value * box(vector<Value*>);
00046 
00047   // translation
00048   Value * center(Value * image, Value * center);
00049   Value * center(vector<Value*>);
00050 
00051   // zooming
00052   Value * zoom(ImageValue * image, PointValue * mult);
00053   Value * zoomx(vector<Value*>);
00054   Value * zoomy(vector<Value*>);
00055   Value * zoom(vector<Value*>);
00056 
00057   // rotation
00058   Value * straighten(Value* image, Value * line);
00059   Value * straighten(vector<Value*>);
00060 
00066   Value * crop(Value * image, Value * box);
00067 
00074   Value * crop(vector<Value*> v);
00075   // distribution
00076   //  Value * distributionxz(ImageValue * image);
00077   //  Value * distributionyz(ImageValue * image);
00078   //  Value * distribution(ImageValue * image);
00079   //  Value * distribution(vector<Value*> v);
00080   // projection
00081   //  Value * projectxz(ImageValue * image);
00082   //  Value * projectyz(ImageValue * image);
00083   //  Value * project(ImageValue * image);
00084   //  Value * project(vector<Value*> v);
00085 
00086 #ifdef PSYTRACK
00087 
00090   Value * morph(Value *, Value *, Value *);
00091   Value * morph(vector<Value*> v);
00092 #endif
00093  public:
00094   Value * apply(QString op, vector<Value*>);
00095   bool    requires_user_input(Value *);
00096 };
00097 
00098 
00099 double dist(double x0, double y0, double x1, double y1);
00100 
00101 extern Runtime runtime;
00102 #endif

Generated on Mon Jun 5 22:08:42 2006 for iis by  doxygen 1.4.6