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 }