dalectrics
YaBB Newbies
Offline
Posts: 15
Re: Selectable/draggable 3D vertex
Reply #1 - Mar 17th , 2007, 8:37pm
float xmag, ymag, xmag2, ymag2 = 0; int lastMx, lastMy =0; float newXmag, newYmag = 0; void setup() { size(300, 300, P3D); stroke(0); colorMode(RGB, 1); } void draw(){ background(.5, .5, .45); println(lastMx); fill(0,1,0, 50); ellipseMode(CENTER); ellipse(lastMx, lastMy, 5, 5); newXmag = mouseX/float(width) * TWO_PI; newYmag = mouseY/float(height) * TWO_PI; float diff = xmag-newXmag; if(abs(diff)>0.01) { xmag -= diff/50.0; } diff = ymag-newYmag; if(abs(diff)>0.01) { ymag -= diff/50.0; } if (mousePressed && (mouseButton == RIGHT)) { ymag2 = -ymag; xmag2 = -xmag; lastMx = mouseX; lastMy = mouseY; } pushMatrix(); translate(width/2, height/2, -30); rotateX(-ymag2); rotateY(-xmag2); scale(50); beginShape(QUADS); fill(0, 1, 1, .6); vertex(-1, 1, 1); fill(1, 1, 1, .6); vertex( 1, 1, 1); fill(1, 0, 1, .6); vertex( 1, -1, 1); fill(0, 0, 1, .6); vertex(-1, -1, 1); fill(1, 1, 1, .6); vertex( 1, 1, 1); fill(1, 1, 0, .6); vertex( 1, 1, -1); fill(1, 0, 0, .6); vertex( 1, -1, -1); fill(1, 0, 1, .6); vertex( 1, -1, 1); fill(1, 1, 0, .6); vertex( 1, 1, -1); fill(0, 1, 0, .6); vertex(-1, 1, -1); fill(0, 0, 0, .6); vertex(-1, -1, -1); fill(1, 0, 0, .6); vertex( 1, -1, -1); fill(0, 1, 0, .6); vertex(-1, 1, -1); fill(0, 1, 1, .6); vertex(-1, 1, 1); fill(0, 0, 1, .6); vertex(-1, -1, 1); fill(0, 0, 0, .6); vertex(-1, -1, -1); fill(0, 1, 0, .6); vertex(-1, 1, -1); fill(1, 1, 0, .6); vertex( 1, 1, -1); fill(1, 1, 1, .6); vertex( 1, 1, 1); fill(0, 1, 1, .6); vertex(-1, 1, 1); fill(0, 0, 0, .6); vertex(-1, -1, -1); fill(1, 0, 0, .6); vertex( 1, -1, -1); fill(1, 0, 1, .6); vertex( 1, -1, 1); fill(0, 0, 1, .6); vertex(-1, -1, 1); endShape(); popMatrix(); pushMatrix(); beginShape(QUADS); translate(width/2, height/2, -30); fill(0,220,0, 20); vertex(53, 47, 53); vertex(53, 53, 53); vertex(47, 53, 53); vertex(47, 47, 53); vertex(-53, -47, 53); vertex(-53, -53, 53); vertex(-47, -53, 53); vertex(-47, -47, 53); vertex(-53, 47, 53); vertex(-53, 53, 53); vertex(-47, 53, 53); vertex(-47, 47, 53); vertex(53, -47, 53); vertex(53, -53, 53); vertex(47, -53, 53); vertex(47, -47, 53); vertex(53, 47, 47); vertex(53, 53, 47); vertex(47, 53, 47); vertex(47, 47, 47); vertex(-53, -47, 47); vertex(-53, -53, 47); vertex(-47, -53, 47); vertex(-47, -47, 47); vertex(-53, 47, 47); vertex(-53, 53, 47); vertex(-47, 53, 47); vertex(-47, 47, 47); vertex(53, -47, 47); vertex(53, -53, 47); vertex(47, -53, 47); vertex(47, -47, 47); vertex(53, 53, 47); vertex(53, 47, 47); vertex(53, 47, 53); vertex(53, 53, 53); vertex(-53, -53, 47); vertex(-53, -47, 47); vertex(-53, -47, 53); vertex(-53, -53, 53); vertex(-53, 53, 47); vertex(-53, 47, 47); vertex(-53, 47, 53); vertex(-53, 53, 53); vertex(53, -53, 47); vertex(53, -47, 47); vertex(53, -47, 53); vertex(53, -53, 53); vertex(47, 53, 47); vertex(47, 47, 47); vertex(47, 47, 53); vertex(47, 53, 53); vertex(-47, -53, 47); vertex(-47, -47, 47); vertex(-47, -47, 53); vertex(-47, -53, 53); vertex(-47, 53, 47); vertex(-47, 47, 47); vertex(-47, 47, 53); vertex(-47, 53, 53); vertex(47, -53, 47); vertex(47, -47, 47); vertex(47, -47, 53); vertex(47, -53, 53); vertex(53, 53, 47); vertex(47, 53, 47); vertex(47, 53, 53); vertex(53, 53, 53); vertex(-53, -53, 47); vertex(-47, -53, 47); vertex(-47, -53, 53); vertex(-53, -53, 53); vertex(-53, 53, 47); vertex(-47, 53, 47); vertex(-47, 53, 53); vertex(-53, 53, 53); vertex(53, -53, 47); vertex(47, -53, 47); vertex(47, -53, 53); vertex(53, -53, 53); vertex(53, 47, 47); vertex(47, 47, 47); vertex(47, 47, 53); vertex(53, 47, 53); vertex(-53, -47, 47); vertex(-47, -47, 47); vertex(-47, -47, 53); vertex(-53, -47, 53); vertex(-53, 47, 47); vertex(-47, 47, 47); vertex(-47, 47, 53); vertex(-53, 47, 53); vertex(53, -47, 47); vertex(47, -47, 47); vertex(47, -47, 53); vertex(53, -47, 53);