@Override
	public double[] get3DData(int px, int py, int pz, int sx, int sy, int sz)
	{
		double[] sa = a.get3DData(px, py, pz, sx, sy, sz);
		double[] sb = b.get3DData(px, py, pz, sx, sy, sz);
		double[] sw = weight.get3DData(px, py, pz, sx, sy, sz);
		
		int s = sx*sy*sz;
		for(int i = 0; i < s; i++)
        {
            double w = sw[i];
            if(w < 0) w = 0;
            if(w > 1) w = 1;

            double va = sa[i];
            double vb = sb[i];

            sa[i] = va * w + vb*(1-w);
        }
		
		return sa;
	}