import processing.opengl.*; PFont font; float BACK_HALFWIDTH = 50; float FRONT_HALFWIDTH = 150; float BACK_WALL = -800; float BACK_HEIGHT = 200; float FRONT_HEIGHT = 260; float TV_TOP = -180; float TV_HEIGHT = 92; float CAM_X = 0; float CAM_Y = -120; float CAM_Z = 300; float MAN_Z = -130; float CLOSEST_POINT = -600; float CLOSEST_Z; float NICE_R = 150, NICE_G = 190, NICE_B = 255; float GARB_R = 175, GARB_G = 154, GARB_B = 101; float MOUSE_DOWN_X = 0; float MOUSE_DOWN_Y = 0; boolean HELPLINES = false; PImage man; PImage tv[]; void setup() { size(600,420,OPENGL); font = loadFont("ArialMT-48.vlw"); textFont(font,24); PImage tmp = loadImage("HumanShape180.jpg"); man = createImage(58,180,ARGB); for (int i=0;i64) man.pixels[i] = 0x00|(man.pixels[i]&0xFFFFFF); } tv = new PImage[20]; tv[0] = loadImage("Phone.jpg"); tv[19] = loadImage("PhoneInGarbage.jpg"); for (int p=1;p<19;p++) { float f1 = p/20.0; float f0 = 1.0-f1; tv[p] = new PImage(tv[0].width,tv[0].height); for (int i=0;i>16&0xFF) + f1*(c1>>16&0xFF)); int g = (int) (f0*(c0>>8&0xFF) + f1*(c1>>8&0xFF)); int b = (int) (f0*(c0&0xFF) + f1*(c1&0xFF)); tv[p].pixels[i]=color(r,g,b); } } noStroke(); } void mousePressed() { MOUSE_DOWN_X = mouseX; MOUSE_DOWN_Y = mouseY; } void mouseReleased() { CAM_X += MOUSE_DOWN_X-mouseX; CAM_Y += MOUSE_DOWN_Y-mouseY; } void keyPressed() { if (keyCode==UP) CAM_Z -= 7; if (keyCode==DOWN) CAM_Z += 7; if (key=='q') MAN_Z -= 7; if (key=='a') MAN_Z += 7; if (key=='S') saveFrame("RoomDesign1_#####.tga"); } void draw() { CLOSEST_Z = (CAM_Z