Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6100/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
RectTool.java
Log Message:
Repaired the tool so that it is leagal to make infinite narrow boxes and so that it uses AbstractPencil.cleanUp() instead of RectTool.cleanUp()
Index: RectTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/RectTool.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** RectTool.java 10 Apr 2006 07:11:19 -0000 1.6
--- RectTool.java 21 Apr 2006 14:56:06 -0000 1.7
***************
*** 13,17 ****
--- 13,20 ----
import java.util.List;
+ import org.apache.log4j.Logger;
+
import net.sourceforge.bprocessor.gl.GLView;
+ import net.sourceforge.bprocessor.gl.model.Intersection;
import net.sourceforge.bprocessor.model.Edge;
import net.sourceforge.bprocessor.model.Vertex;
***************
*** 24,27 ****
--- 27,33 ----
private Edge e1, e2, e3, e4;
+ /** The logger */
+ private static Logger log = Logger.getLogger(RectTool.class);
+
/**
* Constructor
***************
*** 38,42 ****
* @param start Start point
* @param end End point
! * @return List of edges forming a rectangle
*/
List createRect(Vertex start, Vertex end) {
--- 44,48 ----
* @param start Start point
* @param end End point
! * @return List of edges forming a rectangle, null if the edges only form a line
*/
List createRect(Vertex start, Vertex end) {
***************
*** 65,68 ****
--- 71,80 ----
v4 = new Vertex(v3.getX(), v3.getY(), v1.getZ());
}
+ if ((Math.abs(d.getX()) < 0.00001 && Math.abs(d.getY()) < 0.00001) ||
+ (Math.abs(d.getX()) < 0.00001 && Math.abs(d.getZ()) < 0.00001) ||
+ (Math.abs(d.getZ()) < 0.00001 && Math.abs(d.getY()) < 0.00001)) {
+ // The box is only in one direction and therefor just an edge
+ return null;
+ }
if (v1 != null) {
e1 = new Edge(v1, v2);
***************
*** 88,92 ****
edge.setConstructor(true);
edges.add(edge);
! edges.addAll(createRect(start.vertex(), current.vertex()));
feedback(edges);
} else {
--- 100,109 ----
edge.setConstructor(true);
edges.add(edge);
! List l = createRect(start.vertex(), current.vertex());
! if (l != null) {
! edges.addAll(l);
! } else {
! edge.setConstructor(false);
! }
feedback(edges);
} else {
***************
*** 124,132 ****
if (start == null) {
start = current;
! cleanUp();
} else {
! insertEdges(createRect(start.vertex(), current.vertex()));
! start = null;
! incident = null;
}
updateFeedback();
--- 141,158 ----
if (start == null) {
start = current;
! e1 = null;
! e2 = null;
! e3 = null;
! e4 = null;
} else {
! List edges = createRect(start.vertex(), current.vertex());
! if (edges != null) {
! insertEdges(edges);
! } else {
! boolean split = (start.type() == Intersection.EDGE_INTERSECTION ||
! current.type() == Intersection.EDGE_INTERSECTION);
! insertEdge(new Edge(start.vertex(), current.vertex()), split);
! }
! cleanUp();
}
updateFeedback();
***************
*** 155,158 ****
--- 181,185 ----
e3 = null;
e4 = null;
+ super.cleanUp();
}
}
|