00001 #include "image.h"
00002 #include "runtime.h"
00003
00004 Value * Runtime::zoom(ImageValue * I, PointValue *mult)
00005 {
00006 ImageValue * O = I->deepCopy();
00007 O->scale*=*mult;
00008 return O;
00009 }
00010
00011 Value * Runtime::zoomx(vector<Value*> v)
00012 {
00013 if (v.size()!=2) return NULL;
00014 Value * I = v[0];
00015 Value * Z = v[1];
00016 if (I==NULL) return NULL;
00017 if (Z==NULL) return NULL;
00018 if (typeid(*I)!=typeid(ImageValue)) return NULL;
00019 if (typeid(*Z)!=typeid(PointValue)) return NULL;
00020 PointValue zx = *(PointValue*)Z;
00021 zx.y = 1.0;
00022 return zoom((ImageValue*)I,&zx);
00023 }
00024
00025 Value * Runtime::zoomy(vector<Value*> v)
00026 {
00027 if (v.size()!=2) return NULL;
00028 Value * I = v[0];
00029 Value * Z = v[1];
00030 if (I==NULL) return NULL;
00031 if (Z==NULL) return NULL;
00032 if (typeid(*I)!=typeid(ImageValue)) return NULL;
00033 if (typeid(*Z)!=typeid(PointValue)) return NULL;
00034 PointValue zy = *(PointValue*)Z;
00035 zy.x = 1.0;
00036 return zoom((ImageValue*)I,&zy);
00037 }
00038
00039 Value * Runtime::zoom(vector<Value*> v)
00040 {
00041 if (v.size()!=2) return NULL;
00042 Value * I = v[0];
00043 Value * Z = v[1];
00044 if (I==NULL) return NULL;
00045 if (Z==NULL) return NULL;
00046 if (typeid(*I)!=typeid(ImageValue)) return NULL;
00047 if (typeid(*Z)!=typeid(PointValue)) return NULL;
00048 return zoom((ImageValue*)I,(PointValue*)Z);
00049 }