Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv7555/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
Pencil.java AbstractPencil.java
Log Message:
Improved finish/continue logic in Pencil
Index: Pencil.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/Pencil.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** Pencil.java 5 May 2006 12:14:01 -0000 1.6
--- Pencil.java 19 Jul 2006 12:04:17 -0000 1.7
***************
*** 14,18 ****
import net.sourceforge.bprocessor.gl.GLView;
- import net.sourceforge.bprocessor.gl.model.Intersection;
import net.sourceforge.bprocessor.model.Edge;
--- 14,17 ----
***************
*** 74,90 ****
start = current;
} else {
- Edge edge = new Edge(start.vertex(), current.vertex());
- List edges = new LinkedList();
- edges.add(edge);
- insertEdges(edges);
- hooverEdge = edge;
! if (current.type() == Intersection.VERTEX
! || current.type() == Intersection.EDGE_MIDPOINT) {
! start = null;
! incident = null;
} else {
start = current;
incident = null;
}
}
--- 73,91 ----
start = current;
} else {
! if (start.vertex().equalEps(current.vertex())) {
! cleanUp();
! return;
} else {
+ Edge edge = new Edge(start.vertex(), current.vertex());
+ List edges = new LinkedList();
+ edges.add(edge);
+ hooverEdge = edge;
start = current;
incident = null;
+ if (insertEdges(edges)) {
+ cleanUp();
+ return;
+ }
}
}
Index: AbstractPencil.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** AbstractPencil.java 19 Jul 2006 11:32:19 -0000 1.40
--- AbstractPencil.java 19 Jul 2006 12:04:17 -0000 1.41
***************
*** 198,205 ****
Vertex from = insertVertex(edge.getFrom(), split);
Vertex to = insertVertex(edge.getTo(), split);
- if (from == to) {
- log.error("Cannot insert edge: " + edge + " to and from vertices are the same");
- return null;
- }
edge.setFrom(from);
edge.setTo(to);
--- 198,201 ----
***************
*** 228,233 ****
* Insert a number edges into the model
* @param edges List of edges
*/
! public void insertEdges(List edges) {
if (!edges.isEmpty()) {
Vertex from = ((Edge) edges.get(0)).getFrom();
--- 224,231 ----
* Insert a number edges into the model
* @param edges List of edges
+ * @return Boolean indicating whether the edges are closed
*/
! public boolean insertEdges(List edges) {
! boolean closed = false;
if (!edges.isEmpty()) {
Vertex from = ((Edge) edges.get(0)).getFrom();
***************
*** 240,252 ****
Edge current = (Edge) iter.next();
Edge edge = insertEdge(current, false);
! if (edge != null) {
! actual.add(edge);
! } else {
! return;
! }
}
Surface surface = new Surface(actual);
mesh().insert(surface);
holeAnalysis(surface);
} else {
List actual = new LinkedList();
--- 238,247 ----
Edge current = (Edge) iter.next();
Edge edge = insertEdge(current, false);
! actual.add(edge);
}
Surface surface = new Surface(actual);
mesh().insert(surface);
holeAnalysis(surface);
+ closed = true;
} else {
List actual = new LinkedList();
***************
*** 255,269 ****
Edge current = (Edge) iter.next();
Edge edge = insertEdge(current, true);
! if (edge != null) {
! actual.add(edge);
! } else {
! return;
! }
}
! Geometry.insert(actual);
}
}
Project.getInstance().changed(Project.getInstance());
Project.getInstance().checkpoint();
}
--- 250,261 ----
Edge current = (Edge) iter.next();
Edge edge = insertEdge(current, true);
! actual.add(edge);
}
! closed = Geometry.insert(actual);
}
}
Project.getInstance().changed(Project.getInstance());
Project.getInstance().checkpoint();
+ return closed;
}
|