Update of /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30905/src/net/sourceforge/bprocessor/gl/tool
Modified Files:
AbstractPencil.java
Log Message:
Improved handling of holes
Index: AbstractPencil.java
===================================================================
RCS file: /cvsroot/bprocessor/gl/src/net/sourceforge/bprocessor/gl/tool/AbstractPencil.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** AbstractPencil.java 5 Apr 2006 09:36:16 -0000 1.21
--- AbstractPencil.java 5 Apr 2006 10:49:09 -0000 1.22
***************
*** 108,114 ****
* Insert a vertex into model
* @param vertex Vertex
* @return Vertex from model
*/
! public Vertex insertVertex(Vertex vertex) {
Space space = mesh();
--- 108,115 ----
* Insert a vertex into model
* @param vertex Vertex
+ * @param split Split
* @return Vertex from model
*/
! public Vertex insertVertex(Vertex vertex, boolean split) {
Space space = mesh();
***************
*** 131,141 ****
if (actual.getOwner() == null) {
mesh().add(actual);
! Set es = mesh().findEdge(actual);
! if (es.size() > 0) {
! Iterator iter = es.iterator();
! while (iter.hasNext()) {
! Edge e = (Edge) iter.next();
! if (!e.getConstructor()) {
! e.split(actual);
}
}
--- 132,144 ----
if (actual.getOwner() == null) {
mesh().add(actual);
! if (split) {
! Set es = mesh().findEdge(actual);
! if (es.size() > 0) {
! Iterator iter = es.iterator();
! while (iter.hasNext()) {
! Edge e = (Edge) iter.next();
! if (!e.getConstructor()) {
! e.split(actual);
! }
}
}
***************
*** 149,158 ****
* Insert an edge into model
* @param edge Edge
* @return Edge from model
*/
! public Edge insertEdge(Edge edge) {
Edge actual = edge;
! edge.setFrom(insertVertex(edge.getFrom()));
! edge.setTo(insertVertex(edge.getTo()));
{
Collection edges = mesh().getEdges();
--- 152,162 ----
* Insert an edge into model
* @param edge Edge
+ * @param split Split
* @return Edge from model
*/
! public Edge insertEdge(Edge edge, boolean split) {
Edge actual = edge;
! edge.setFrom(insertVertex(edge.getFrom(), split));
! edge.setTo(insertVertex(edge.getTo(), split));
{
Collection edges = mesh().getEdges();
***************
*** 181,199 ****
*/
public void insertEdges(List edges) {
- Iterator iter = edges.iterator();
- List actual = new LinkedList();
- while (iter.hasNext()) {
- Edge current = (Edge) iter.next();
- 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);
mesh().insert(surface);
holeAnalysis(surface);
} else {
Geometry.insert(actual);
}
--- 185,214 ----
*/
public void insertEdges(List edges) {
!
!
! if (!edges.isEmpty()) {
! Vertex from = ((Edge) edges.get(0)).getFrom();
! Vertex to = ((Edge) edges.get(edges.size() - 1)).getTo();
!
!
!
if (from == to) {
+ List actual = new LinkedList();
+ Iterator iter = edges.iterator();
+ while (iter.hasNext()) {
+ Edge current = (Edge) iter.next();
+ actual.add(insertEdge(current, false));
+ }
Surface surface = new Surface(actual);
mesh().insert(surface);
holeAnalysis(surface);
} else {
+ List actual = new LinkedList();
+ Iterator iter = edges.iterator();
+ while (iter.hasNext()) {
+ Edge current = (Edge) iter.next();
+ actual.add(insertEdge(current, true));
+ }
Geometry.insert(actual);
}
|