Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3965/src/net/sourceforge/bprocessor/gl/view
Modified Files:
Display.java
Log Message:
refactored edge drawing
Index: Display.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/view/Display.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** Display.java 8 Oct 2007 12:11:54 -0000 1.21
--- Display.java 8 Oct 2007 12:57:36 -0000 1.22
***************
*** 272,275 ****
--- 272,323 ----
}
+ private static void draw(Edge edge) {
+ Vertex to = edge.getTo();
+ Vertex from = edge.getFrom();
+ gl.glBegin(GL.GL_LINE_STRIP);
+ gl.glVertex3d(to.getX(), to.getY(), to.getZ());
+ gl.glVertex3d(from.getX(), from.getY(), from.getZ());
+ gl.glEnd();
+ }
+ private static void paint(Edge edge, float[] color, float size) {
+ gl.glColor3fv(color, 0);
+ gl.glLineWidth(size);
+ draw(edge);
+ }
+ private static void paintEdges(Collection<Edge> edges, float[] color, float size) {
+ gl.glColor3fv(color, 0);
+ gl.glLineWidth(size);
+ for (Edge current : edges) {
+ draw(current);
+ }
+ }
+ private static void paintStippled(Collection<Edge> edges, float[] color, float size) {
+ if (!edges.isEmpty()) {
+ gl.glEnable(GL.GL_LINE_STIPPLE);
+ paintEdges(edges, color, size);
+ gl.glDisable(GL.GL_LINE_STIPPLE);
+ }
+ }
+
+ private static void selectEdges(Collection<Edge> edges) {
+ for (Edge current : edges) {
+ push(current);
+ draw(current);
+ pop();
+ }
+ }
+
+ private static void split(Collection<Edge> edges,
+ Collection<Edge> normal,
+ Collection<Edge> stippled) {
+ for (Edge current : edges) {
+ if (current.getStrippled()) {
+ stippled.add(current);
+ } else {
+ normal.add(current);
+ }
+ }
+ }
+
private static void selectSurfaces(Collection<Surface> surfaces) {
***************
*** 348,397 ****
}
- private static void drawEdges(Collection<Edge> edges, boolean active) {
- Collection<Edge> stippled = new LinkedList();
- if (active) {
- gl.glColor3fv(black, 0);
- } else {
- gl.glColor3fv(grey, 0);
- }
- gl.glLineWidth(1.0f);
- for (Edge current : edges) {
- if (current.getStrippled()) {
- stippled.add(current);
- } else {
- draw(current);
- }
- }
- if (!stippled.isEmpty()) {
- gl.glColor3fv(middleblue, 0);
- gl.glEnable(GL.GL_LINE_STIPPLE);
- for (Edge current : stippled) {
- draw(current);
- }
- gl.glDisable(GL.GL_LINE_STIPPLE);
- }
- }
- private static void selectEdges(Collection<Edge> edges) {
- for (Edge current : edges) {
- push(current);
- draw(current);
- pop();
- }
- }
-
- private static void draw(Edge edge) {
- Vertex to = edge.getTo();
- Vertex from = edge.getFrom();
- gl.glBegin(GL.GL_LINE_STRIP);
- gl.glVertex3d(to.getX(), to.getY(), to.getZ());
- gl.glVertex3d(from.getX(), from.getY(), from.getZ());
- gl.glEnd();
- }
-
-
-
-
-
-
private static void paintConstructors(Collection<Constructor> constructors) {
for (Constructor current : constructors) {
--- 396,399 ----
***************
*** 674,678 ****
gl.glDepthMask(true);
}
! drawEdges(edges, active);
}
--- 676,698 ----
gl.glDepthMask(true);
}
! Collection<Edge> stippled = new LinkedList();
! Collection<Edge> normal = new LinkedList();
! split(edges, normal, stippled);
!
! float size;
! float[] color;
!
! if (space instanceof Net) {
! size = 2.0f;
! } else {
! size = 1.0f;
! }
! if (active) {
! color = black;
! } else {
! color = grey;
! }
! paintEdges(normal, color, size);
! paintStippled(stippled, middleblue, size);
}
***************
*** 793,797 ****
selectEdges(edges);
} else {
! drawEdges(edges, true);
}
if (selecting()) {
--- 813,821 ----
selectEdges(edges);
} else {
! Collection<Edge> stippled = new LinkedList();
! Collection<Edge> normal = new LinkedList();
! split(edges, normal, stippled);
! paintEdges(normal, black, 1.0f);
! paintStippled(stippled, middleblue, 1.0f);
}
if (selecting()) {
|