public class PixelOp { public float param1=0; // well, it isn't a completely general system public float param2; public void PixelOp(){param1=0;param2=0;} Complex work = new Complex(); public Complex operate(Complex pix, ComplexImage im, PixelDesc desc) { //return new Complex(0,0); // now we can use the MotherImageMapping to backmap for us what // our parameter means. MotherImageMapping mim = (MotherImageMapping) im.map; int colour = mim.backMap(param1); // System.out.println(param1+" "+colour+" "+mim.highpoint+" "+mim.lowpoint); float pixmag = pix.getMag(); if (pixmag!=0) { work.r = colour*pix.r/(pixmag); work.i = colour*pix.i/(pixmag); } else { work.r = colour; work.i = 0; } work.r = pix.r*(1-desc.amount)+work.r*desc.amount; work.i = pix.i*(1-desc.amount)+work.i*desc.amount; //System.out.println(param1+" "+desc.amount+" "+pixmag+" "+work.r); return(work); } }