Revision 496 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.split/src/main/java/org/gvsig/vectorediting/lib/prov/split/operation/CurveSplitOperation.java

View differences:

CurveSplitOperation.java
78 78
                return geometryToBeSplitted;
79 79
            }
80 80

  
81
            if (!firstVertex.equals(curveToBeSplitted.getVertex(0))
82
                && !lastVertex.equals(curveToBeSplitted.getVertex(0))) {
81
            if ((!firstVertex.equals(curveToBeSplitted.getVertex(0)) && !lastVertex
82
                .equals(curveToBeSplitted.getVertex(0)))
83
                && isClosed(curveToBeSplitted)) {
83 84

  
84 85
                Curve firstCurve = difference.getCurveAt(0);
85 86
                Curve lastCurve =
......
104 105
                for (int i = 1; i < difference.getPrimitivesNumber() - 1; i++) {
105 106
                    multicurveSplitted.addCurve(difference.getCurveAt(i));
106 107
                }
107
            } else {
108
                multicurveSplitted = difference;
109 108
            }
110 109
        }
110
        
111
        if(multicurveSplitted == null){
112
            return geometryToBeSplitted.difference(splitter);
113
        }
114
        
111 115
        return multicurveSplitted;
112 116
    }
117

  
118
    private boolean isClosed(Curve curveToBeSplitted) {
119
        
120
        Point firstPoint = curveToBeSplitted.getVertex(0);
121
        Point lastPoint =
122
            curveToBeSplitted.getVertex(curveToBeSplitted.getNumVertices()-1);
123
        
124
        if (firstPoint.equals(lastPoint)) {
125
            return true;
126
        }
127
        return false;
128
    }
113 129
}

Also available in: Unified diff