Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26234/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
RectTool.java AbstractPencil.java
Log Message:
RectTool implemented
Index: RectTool.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/RectTool.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RectTool.java 15 Mar 2006 10:36:29 -0000 1.1
--- RectTool.java 16 Mar 2006 14:34:50 -0000 1.2
***************
*** 41,44 ****
--- 41,88 ----
/**
+ * Create a rectangle
+ * @param start Start point
+ * @param end End point
+ * @return List of edges forming a rectangle
+ */
+ List createRect(Vertex start, Vertex end) {
+ List edges = new LinkedList();
+
+ Vertex d = start.minus(end);
+ Vertex v1 = null;
+ Vertex v3 = null;
+ Vertex v2 = null;
+ Vertex v4 = null;
+
+ if (Math.abs(d.getZ()) < 0.00001) {
+ v1 = start;
+ v3 = end;
+ v2 = new Vertex(v3.getX(), v1.getY(), v1.getZ());
+ v4 = new Vertex(v1.getX(), v3.getY(), v3.getZ());
+ } else if (Math.abs(d.getX()) < 0.00001) {
+ v1 = start;
+ v3 = end;
+ v2 = new Vertex(v3.getX(), v1.getY(), v3.getZ());
+ v4 = new Vertex(v1.getX(), v3.getY(), v1.getZ());
+ } else if (Math.abs(d.getY()) < 0.00001) {
+ v1 = start;
+ v3 = end;
+ v2 = new Vertex(v1.getX(), v1.getY(), v3.getZ());
+ v4 = new Vertex(v3.getX(), v3.getY(), v1.getZ());
+ }
+ if (v1 != null) {
+ Edge e1 = new Edge(v1, v2);
+ Edge e2 = new Edge(v2, v3);
+ Edge e3 = new Edge(v3, v4);
+ Edge e4 = new Edge(v4, v1);
+ edges.add(e1);
+ edges.add(e2);
+ edges.add(e3);
+ edges.add(e4);
+ }
+ return edges;
+ }
+
+ /**
* Update feedback
*
***************
*** 50,86 ****
edge.setConstructor(true);
edges.add(edge);
!
! Vertex d = start.vertex().minus(current.vertex());
! Vertex v1 = null;
! Vertex v3 = null;
! Vertex v2 = null;
! Vertex v4 = null;
!
! if (Math.abs(d.getZ()) < 0.00001) {
! v1 = start.vertex();
! v3 = current.vertex();
! v2 = new Vertex(v3.getX(), v1.getY(), v1.getZ());
! v4 = new Vertex(v1.getX(), v3.getY(), v3.getZ());
! } else if (Math.abs(d.getX()) < 0.00001) {
! v1 = start.vertex();
! v3 = current.vertex();
! v2 = new Vertex(v3.getX(), v1.getY(), v3.getZ());
! v4 = new Vertex(v1.getX(), v3.getY(), v1.getZ());
! } else if (Math.abs(d.getY()) < 0.00001) {
! v1 = start.vertex();
! v3 = current.vertex();
! v2 = new Vertex(v1.getX(), v1.getY(), v3.getZ());
! v4 = new Vertex(v3.getX(), v3.getY(), v1.getZ());
! }
! if (v1 != null) {
! Edge e1 = new Edge(v1, v2);
! Edge e2 = new Edge(v2, v3);
! Edge e3 = new Edge(v3, v4);
! Edge e4 = new Edge(v4, v1);
! edges.add(e1);
! edges.add(e2);
! edges.add(e3);
! edges.add(e4);
! }
feedback(edges);
} else {
--- 94,98 ----
edge.setConstructor(true);
edges.add(edge);
! edges.addAll(createRect(start.vertex(), current.vertex()));
feedback(edges);
} else {
***************
*** 107,110 ****
--- 119,123 ----
start = current;
} else {
+ insertEdges(createRect(start.vertex(), current.vertex()));
start = null;
}
Index: AbstractPencil.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** AbstractPencil.java 16 Mar 2006 12:58:42 -0000 1.4
--- AbstractPencil.java 16 Mar 2006 14:34:50 -0000 1.5
***************
*** 20,23 ****
--- 20,24 ----
import net.sourceforge.bprocessor.model.Geometry;
import net.sourceforge.bprocessor.model.Project;
+ import net.sourceforge.bprocessor.model.Surface;
import net.sourceforge.bprocessor.model.Vertex;
***************
*** 111,115 ****
actual.add(insertEdge(current));
}
! Geometry.insert(actual);
}
--- 112,127 ----
actual.add(insertEdge(current));
}
!
! if (!actual.isEmpty()) {
! Vertex from = ((Edge) actual.get(0)).getFrom();
! Vertex to = ((Edge) actual.get(edges.size() - 1)).getTo();
! if (from == to) {
! Surface surface = new Surface(actual);
! Project.getInstance().add(surface);
! holeAnalysis(surface);
! } else {
! Geometry.insert(actual);
! }
! }
}
|