Revision 2616 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.splitline/src/main/java/org/gvsig/vectorediting/lib/prov/splitline/operation/CurveSplitLineOperation.java
CurveSplitLineOperation.java | ||
---|---|---|
28 | 28 |
import org.gvsig.fmap.geom.GeometryException; |
29 | 29 |
import org.gvsig.fmap.geom.GeometryLocator; |
30 | 30 |
import org.gvsig.fmap.geom.GeometryManager; |
31 |
import org.gvsig.fmap.geom.aggregate.MultiLine; |
|
31 | 32 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
32 | 33 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
33 | 34 |
import org.gvsig.fmap.geom.primitive.Curve; |
... | ... | |
42 | 43 |
*/ |
43 | 44 |
public class CurveSplitLineOperation implements SplitLineOperation { |
44 | 45 |
|
46 |
@Override |
|
45 | 47 |
public Curve[] split(Geometry geometry, Point projectedPoint) |
46 | 48 |
throws LocatorException, |
47 | 49 |
GeometryOperationNotSupportedException, GeometryOperationException, GeometryException { |
48 | 50 |
|
49 | 51 |
Curve lineToSplit = (Curve) geometry; |
50 | 52 |
if(!(lineToSplit instanceof Line)){ |
51 |
lineToSplit = (Curve) lineToSplit.toLines().getPrimitiveAt(0); |
|
53 |
MultiLine lines = lineToSplit.toLines(); |
|
54 |
if(lines != null && lines.getPrimitivesNumber()>0){ |
|
55 |
lineToSplit = (Curve) lines.getPrimitiveAt(0); |
|
56 |
} |
|
52 | 57 |
} |
53 | 58 |
|
54 | 59 |
int subtype = geometry.getGeometryType().getSubType(); |
Also available in: Unified diff