class MorphPen { private float penSize; private float PRESSURE = 0.3; MorphPen(float ps) { penSize = ps; } private void softSet(MorphSurface ms, int x, int y, float p) { ms.morphAt(x,y,p); } private void antiAliasSet(MorphSurface ms, float x, float y, float p) { int x0 = int(floor(x)); int y0 = int(floor(y)); int x1 = x0+1; int y1 = y0+1; float px1 = x-x0; float px0 = 1.0 - px1; float py1 = y-y0; float py0 = 1.0 - py1; float p00 = p * px0 * py0; float p01 = p * px0 * py1; float p10 = p * px1 * py0; float p11 = p * px1 * py1; softSet(ms,x0,y0,p00); softSet(ms,x0,y1,p01); softSet(ms,x1,y0,p10); softSet(ms,x1,y1,p11); } public void drawOnto(MorphSurface ms) { float x = mouseX; float y = mouseY; for (float r=0.0;r