X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2FMeshViewer.java;h=73f22fb51c0fd7f5561a79c7379aa6d5722eafe5;hp=aea2799d9abe324a39c91788be5321a42dbfc480;hb=f8763e1d5c2936537f981b840e9487ae22ed9ee7;hpb=381c4e0df15e58f3c2304d89b58e2df8142121f4 diff --git a/src/edu/berkeley/qfat/MeshViewer.java b/src/edu/berkeley/qfat/MeshViewer.java index aea2799..73f22fb 100644 --- a/src/edu/berkeley/qfat/MeshViewer.java +++ b/src/edu/berkeley/qfat/MeshViewer.java @@ -126,6 +126,24 @@ public class MeshViewer extends Viewer { gl.glDisable(GL.GL_LIGHTING); gl.glShadeModel(GL.GL_FLAT); + + updateVisibility(gl, tile); + + Matrix projection = Matrix.getProjectionMatrix(gl); + double dist = Double.MAX_VALUE; + if (clickPoint != null) return; + closest = null; + for(Mesh.Vertex v : tile.vertices()) { + if (!v.visible) continue; + Point p = projection.times(v.getPoint()); + int x = (int)p.x; + int y = (int)p.y; + y = glcanvas.getHeight()-y; + if (closest==null || (x-mousex)*(x-mousex)+(y-mousey)*(y-mousey) < dist) { + dist = (x-mousex)*(x-mousex)+(y-mousey)*(y-mousey); + closest = v; + } + } }