Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20320/tool
Modified Files:
PencilTool.java
Log Message:
made corrections to remove strange behaviour when drawing several consecutive parrellel edges, and to remove unwanted vertices created when presseing ESC while drawing
Index: PencilTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/PencilTool.java,v
retrieving revision 1.59
retrieving revision 1.60
diff -C2 -d -r1.59 -r1.60
*** PencilTool.java 25 Jan 2006 10:02:09 -0000 1.59
--- PencilTool.java 16 Feb 2006 20:54:21 -0000 1.60
***************
*** 440,444 ****
Edge edge2 = null;
edge1 = (Edge)it.next();
! edge2 = (Edge)it.next();;
currentPlane = planeFromEdges(edge1, edge2);
} else if (target instanceof Surface) {
--- 440,444 ----
Edge edge2 = null;
edge1 = (Edge)it.next();
! edge2 = (Edge)it.next();
currentPlane = planeFromEdges(edge1, edge2);
} else if (target instanceof Surface) {
***************
*** 449,453 ****
/**
! * Calculates the plane of two edges
* @param e1 the first edge
* @param e2 the second edge
--- 449,453 ----
/**
! * Calculates the plane of two edges. Edges can not be parrallel.
* @param e1 the first edge
* @param e2 the second edge
***************
*** 458,465 ****
Vertex dir2 = e2.getTo().minus(e2.getFrom());
Vertex normal = dir1.cross(dir2);
! return new Plane(normal.getX(), normal.getY(), normal.getZ(),
! (-normal.getX() * e1.getTo().getX() -
! normal.getY() * e1.getTo().getY() -
! normal.getZ() * e1.getTo().getZ()));
}
--- 458,469 ----
Vertex dir2 = e2.getTo().minus(e2.getFrom());
Vertex normal = dir1.cross(dir2);
! if (normal.length() > 0) {
! return new Plane(normal.getX(), normal.getY(), normal.getZ(),
! (-normal.getX() * e1.getTo().getX() -
! normal.getY() * e1.getTo().getY() -
! normal.getZ() * e1.getTo().getZ()));
! } else {
! return null;
! }
}
***************
*** 673,680 ****
Project.getInstance().delete(active);
}
! Iterator it = edges.iterator();
! while (it.hasNext()) {
! Edge edge = (Edge)it.next();
! Project.getInstance().delete(edge);
}
edges = null;
--- 677,689 ----
Project.getInstance().delete(active);
}
! if (edges != null) {
! Iterator it = edges.iterator();
! while (it.hasNext()) {
! Edge edge = (Edge)it.next();
! Project.getInstance().delete(edge);
! }
! }
! if (from != null) {
! Project.getInstance().delete(from);
}
edges = null;
|