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
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