projects
/
anneal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
checkpoint
[anneal.git]
/
src
/
edu
/
berkeley
/
qfat
/
Viewer.java
diff --git
a/src/edu/berkeley/qfat/Viewer.java
b/src/edu/berkeley/qfat/Viewer.java
index
b879650
..
2ec797f
100644
(file)
--- a/
src/edu/berkeley/qfat/Viewer.java
+++ b/
src/edu/berkeley/qfat/Viewer.java
@@
-14,11
+14,12
@@
import edu.berkeley.qfat.geom.Point;
public abstract class Viewer implements GLEventListener, MouseListener, MouseMotionListener, KeyListener, MouseWheelListener {
Mesh.Vertex closest = null;
public abstract class Viewer implements GLEventListener, MouseListener, MouseMotionListener, KeyListener, MouseWheelListener {
Mesh.Vertex closest = null;
- Matrix projection = null;
public Mesh tile = new Mesh(false);
public Mesh goal = new Mesh(false);
public Mesh tile = new Mesh(false);
public Mesh goal = new Mesh(false);
+ private Matrix projection = null;
+
JFrame f;
GLCanvas glcanvas;
Point clickPoint = null;
JFrame f;
GLCanvas glcanvas;
Point clickPoint = null;
@@
-76,19
+77,16
@@
public abstract class Viewer implements GLEventListener, MouseListener, MouseMot
public final void display(GLAutoDrawable drawable) {
GL gl = drawable.getGL();
_display(drawable, gl);
public final void display(GLAutoDrawable drawable) {
GL gl = drawable.getGL();
_display(drawable, gl);
- this.projection = Matrix.getProjectionMatrix(gl);
- updateVisibility(gl, tile);
+ projection = Matrix.getProjectionMatrix(gl);
}
}
- private void updateVisibility(GL gl, Mesh mesh) {
+ protected void updateVisibility(GL gl, Mesh mesh) {
+ Matrix projection = Matrix.getProjectionMatrix(gl);
IntBuffer buf = ByteBuffer.allocateDirect(9*4*4).order(ByteOrder.nativeOrder()).asIntBuffer();
gl.glColor3f(0,0,0);
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
IntBuffer buf = ByteBuffer.allocateDirect(9*4*4).order(ByteOrder.nativeOrder()).asIntBuffer();
gl.glColor3f(0,0,0);
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
- double dist = Double.MAX_VALUE;
- if (clickPoint==null) closest = null;
synchronized(this) {
synchronized(this) {
- for(Mesh.T t : mesh)
- t.glTriangle(gl, null);
+ for(Mesh.T t : mesh) t.glTriangle(gl, null);
for(Mesh.Vertex v : mesh.vertices()) {
Point p = v.getPoint();
gl.glColor3f(1,1,1);
for(Mesh.Vertex v : mesh.vertices()) {
Point p = v.getPoint();
gl.glColor3f(1,1,1);
@@
-98,9
+96,7
@@
public abstract class Viewer implements GLEventListener, MouseListener, MouseMot
gl.glFlush();
Point projected = projection.times(p);
gl.glFlush();
Point projected = projection.times(p);
- int x = (int)projected.x;
- int y = (int)projected.y;
- gl.glReadPixels(x-1, y-1, 3, 3, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, buf);
+ gl.glReadPixels((int)projected.x-1, (int)projected.y-1, 3, 3, gl.GL_RGB, gl.GL_UNSIGNED_BYTE, buf);
boolean vis = false;
for(int j=0; j<9*4; j++) vis |= buf.get(j)!=0;
boolean vis = false;
for(int j=0; j<9*4; j++) vis |= buf.get(j)!=0;
@@
-110,13
+106,6
@@
public abstract class Viewer implements GLEventListener, MouseListener, MouseMot
gl.glBegin(gl.GL_POINTS);
p.glVertex(gl);
gl.glEnd();
gl.glBegin(gl.GL_POINTS);
p.glVertex(gl);
gl.glEnd();
- y = glcanvas.getHeight()-y;
- if (clickPoint==null) {
- if (closest==null || (x-mousex)*(x-mousex)+(y-mousey)*(y-mousey) < dist) {
- dist = (x-mousex)*(x-mousex)+(y-mousey)*(y-mousey);
- closest = v;
- }
- }
}
}
}
}
}
}