[Bprocessor-commit] gl/src/net/sourceforge/bprocessor/gl/view View.java, 1.234, 1.235 Display.java,
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2007-09-24 13:02:16
|
Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv22745/src/net/sourceforge/bprocessor/gl/view Modified Files: View.java Display.java Log Message: SelectTool does not mark target Index: Display.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view/Display.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Display.java 24 Sep 2007 08:50:21 -0000 1.5 --- Display.java 24 Sep 2007 13:02:18 -0000 1.6 *************** *** 234,237 **** --- 234,243 ---- } + private static void draw(Vertex vertex) { + gl.glBegin(GL.GL_POINTS); + gl.glVertex3d(vertex.getX(), vertex.getY(), vertex.getZ()); + gl.glEnd(); + } + private static boolean transparent(Space space) { return (space.isFunctionalSpace() || space.isTransparent() || !space.getSurfaces().isEmpty()); *************** *** 283,310 **** Collection<Surface> surfaces = new LinkedList(); ! Set<Edge> mark = new HashSet(); ! Set<Edge> visible = new HashSet(); ! for (Surface current : space.getSurfaces()) { ! mark.addAll(current.getEdges()); ! if (!hidden.contains(current)) { ! if (!transparent(current)) { ! surfaces.add(current); ! visible.addAll(current.getEdges()); ! for (Surface hole : current.getHoles()) { ! visible.addAll(hole.getEdges()); } } } } ! Collection<Edge> edges = new LinkedList(); ! for (Edge current : space.getEdges()) { ! if (mark.contains(current)) { ! if (visible.contains(current)) { ! edges.add(current); } - } else { - edges.add(current); } } --- 289,340 ---- Collection<Surface> surfaces = new LinkedList(); + Collection<Edge> edges = new LinkedList(); + Collection<Vertex> vertices = new LinkedList(); + Collection<Vertex> loners = new LinkedList(); ! { ! Set<Edge> mark = new HashSet(); ! Set<Edge> visible = new HashSet(); ! for (Surface current : space.getSurfaces()) { ! mark.addAll(current.getEdges()); ! if (!hidden.contains(current)) { ! if (!transparent(current)) { ! surfaces.add(current); ! visible.addAll(current.getEdges()); ! for (Surface hole : current.getHoles()) { ! visible.addAll(hole.getEdges()); ! } } } } + for (Edge current : space.getEdges()) { + if (mark.contains(current)) { + if (visible.contains(current)) { + edges.add(current); + } + } else { + edges.add(current); + } + } } ! { ! Set<Vertex> connected = new HashSet(); ! Set<Vertex> mark = new HashSet(); ! for (Edge current : space.getEdges()) { ! connected.add(current.getFrom()); ! connected.add(current.getTo()); ! } ! for (Edge current : edges) { ! mark.add(current.getFrom()); ! mark.add(current.getTo()); ! } ! for (Vertex current : space.getVertices()) { ! if (!connected.contains(current)) { ! loners.add(current); ! vertices.add(current); ! } else if (mark.contains(current)) { ! vertices.add(current); } } } *************** *** 358,361 **** --- 388,429 ---- draw(current); } + gl.glDisable(GL.GL_DEPTH_TEST); + if (!selecting()) { + if (target instanceof Vertex) { + if (target.getOwner() == space) { + gl.glColor3fv(redish, 0); + gl.glPointSize(9.0f); + draw((Vertex) target); + } else { + gl.glColor3fv(blueish, 0); + gl.glPointSize(6.0f); + draw((Vertex) target); + } + } + gl.glColor3fv(black, 0); + gl.glPointSize(9.0f); + for (Vertex current : loners) { + if (current != target) { + draw(current); + } + } + gl.glColor3fv(redish, 0); + for (Geometric current : Selection.primary()) { + if (current != target) { + if (current instanceof Vertex) { + if (current.getOwner() == space) { + draw((Vertex) current); + } + } + } + } + } else { + gl.glPointSize(9.0f); + for (Vertex current : vertices) { + push(current); + draw(current); + pop(); + } + } } *************** *** 368,372 **** initialize(); Space world = Project.getInstance().world(); - draw(world); } --- 436,439 ---- Index: View.java =================================================================== RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view/View.java,v retrieving revision 1.234 retrieving revision 1.235 diff -C2 -d -r1.234 -r1.235 *** View.java 24 Sep 2007 08:50:21 -0000 1.234 --- View.java 24 Sep 2007 13:02:18 -0000 1.235 *************** *** 673,680 **** if (picking > 0) { ! selectBuffer = BufferUtil.newIntBuffer(selectionLength); ! gl.glSelectBuffer(selectionLength, selectBuffer); ! gl.glRenderMode(GL.GL_SELECT); ! hitdetection = true; } --- 673,685 ---- if (picking > 0) { ! try { ! selectBuffer = BufferUtil.newIntBuffer(selectionLength); ! gl.glSelectBuffer(selectionLength, selectBuffer); ! gl.glRenderMode(GL.GL_SELECT); ! hitdetection = true; ! } catch (Exception error) { ! System.out.println("error " + error); ! throw new Error(); ! } } *************** *** 692,696 **** initNames(gl); Display.objects(objectTable); ! Display.target((Geometric) target); Display.draw(gld); Display.selecting(false); --- 697,705 ---- initNames(gl); Display.objects(objectTable); ! if (target instanceof Geometric) { ! Display.target((Geometric) target); ! } else { ! Display.target(null); ! } Display.draw(gld); Display.selecting(false); *************** *** 757,764 **** hits = gl.glRenderMode(GL.GL_RENDER); if (hits < 0) { // There were overflow in the selctionBuffer double the buffer and try again selectionLength *= 2; picking = 10; ! glv.repaint(true); } if (log.isDebugEnabled()) { --- 766,774 ---- hits = gl.glRenderMode(GL.GL_RENDER); if (hits < 0) { + System.out.println("overflow in selection buffer!"); // There were overflow in the selctionBuffer double the buffer and try again selectionLength *= 2; picking = 10; ! //glv.repaint(true); } if (log.isDebugEnabled()) { *************** *** 769,776 **** } } catch (Exception e) { ! log.error(e); //Maybe try to reset the gl setting //Project.getInstance().resetCam(); ! Project.getInstance().changed(Project.getInstance().getCurrentCamera()); } } --- 779,788 ---- } } catch (Exception e) { ! e.printStackTrace(); ! throw new Error(); ! //log.error(e); //Maybe try to reset the gl setting //Project.getInstance().resetCam(); ! //Project.getInstance().changed(Project.getInstance().getCurrentCamera()); } } |