Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv20436/src/net/sourceforge/bprocessor/model
Modified Files:
SurfaceAnalysis.java
Log Message:
Fixed bug in surface-analysis
Index: SurfaceAnalysis.java
===================================================================
RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/SurfaceAnalysis.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** SurfaceAnalysis.java 19 Dec 2006 09:32:53 -0000 1.3
--- SurfaceAnalysis.java 21 Dec 2006 13:33:02 -0000 1.4
***************
*** 524,586 ****
if (!edges.isEmpty()) {
! List left = new LinkedList();
! List right = new LinkedList();
! Iterator iter = edges.iterator();
! while (iter.hasNext()) {
! EdgeNode current = (EdgeNode) iter.next();
! VertexNode other = current.other(this);
! Vertex delta = other.vertex.minus(vertex);
! double dx = system.getI().dot(delta);
! double dy = system.getJ().dot(delta);
! Entry entry = new Entry(current, dx, dy);
! if (dx == 0) {
! if (dy < 0) {
! right.add(entry);
! }
! if (dy > 0) {
! left.add(entry);
! }
! } else {
! if (dx > 0) {
! right.add(entry);
! }
! if (dx < 0) {
! left.add(entry);
}
}
- }
! Object[] rights = right.toArray();
! Arrays.sort(rights);
! Object[] lefts = left.toArray();
! Arrays.sort(lefts);
! List result = new LinkedList();
! for (int i = 0; i < rights.length; i++) {
! result.add(((Entry) rights[i]).node);
! }
! for (int i = 0; i < lefts.length; i++) {
! result.add(((Entry) lefts[i]).node);
! }
! edges = result;
! }
! {
! EdgeNode previous = (EdgeNode) edges.get(edges.size() - 1);
! Iterator iter = edges.iterator();
! while (iter.hasNext()) {
! EdgeNode current = (EdgeNode) iter.next();
! if (previous.to == this) {
! previous.toSucc = current;
! }
! if (previous.from == this) {
! previous.fromSucc = current;
}
! if (current.to == this) {
! current.toPred = previous;
}
! if (current.from == this) {
! current.fromPred = previous;
}
- previous = current;
}
}
--- 524,588 ----
if (!edges.isEmpty()) {
! {
! List left = new LinkedList();
! List right = new LinkedList();
! Iterator iter = edges.iterator();
! while (iter.hasNext()) {
! EdgeNode current = (EdgeNode) iter.next();
! VertexNode other = current.other(this);
! Vertex delta = other.vertex.minus(vertex);
! double dx = system.getI().dot(delta);
! double dy = system.getJ().dot(delta);
! Entry entry = new Entry(current, dx, dy);
! if (dx == 0) {
! if (dy < 0) {
! right.add(entry);
! }
! if (dy > 0) {
! left.add(entry);
! }
! } else {
! if (dx > 0) {
! right.add(entry);
! }
! if (dx < 0) {
! left.add(entry);
! }
}
}
! Object[] rights = right.toArray();
! Arrays.sort(rights);
! Object[] lefts = left.toArray();
! Arrays.sort(lefts);
! List result = new LinkedList();
! for (int i = 0; i < rights.length; i++) {
! result.add(((Entry) rights[i]).node);
}
! for (int i = 0; i < lefts.length; i++) {
! result.add(((Entry) lefts[i]).node);
}
! edges = result;
! }
! {
! EdgeNode previous = (EdgeNode) edges.get(edges.size() - 1);
! Iterator iter = edges.iterator();
! while (iter.hasNext()) {
! EdgeNode current = (EdgeNode) iter.next();
! if (previous.to == this) {
! previous.toSucc = current;
! }
! if (previous.from == this) {
! previous.fromSucc = current;
! }
! if (current.to == this) {
! current.toPred = previous;
! }
! if (current.from == this) {
! current.fromPred = previous;
! }
! previous = current;
}
}
}
|