Revision 42283 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/aggregate/AbstractMultiPrimitive.java
AbstractMultiPrimitive.java | ||
---|---|---|
29 | 29 |
import org.gvsig.fmap.geom.Geometry; |
30 | 30 |
import org.gvsig.fmap.geom.aggregate.MultiPrimitive; |
31 | 31 |
import org.gvsig.fmap.geom.handler.Handler; |
32 |
import org.gvsig.fmap.geom.jts.GeometryJTS; |
|
32 | 33 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
33 | 34 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
34 | 35 |
import org.gvsig.fmap.geom.primitive.Primitive; |
... | ... | |
57 | 58 |
* @see org.gvsig.fmap.geom.aggregate.MultiPrimitive#addPrimitive(org.gvsig.fmap.geom.primitive.Primitive) |
58 | 59 |
*/ |
59 | 60 |
public void addPrimitive(Primitive primitive) { |
60 |
primitives.add(fixPrimitive(primitive)); |
|
61 |
Geometry geom = fixPrimitive(primitive); |
|
62 |
if (geom != null) { |
|
63 |
if (geom instanceof MultiPrimitive) { |
|
64 |
for (int i = 0; i < ((MultiPrimitive) geom).getPrimitivesNumber(); i++) { |
|
65 |
addPrimitive(((MultiPrimitive) geom).getPrimitiveAt(i)); |
|
66 |
} |
|
67 |
} else { |
|
68 |
primitives.add((Primitive) geom); |
|
69 |
} |
|
70 |
} |
|
61 | 71 |
} |
62 | 72 |
|
63 | 73 |
/** |
64 | 74 |
* @param primitive |
65 | 75 |
* @return |
66 | 76 |
*/ |
67 |
protected abstract Primitive fixPrimitive(Primitive primitive);
|
|
77 |
protected abstract Geometry fixPrimitive(Primitive primitive);
|
|
68 | 78 |
|
69 | 79 |
|
70 | 80 |
protected Geometry clonePrimitives(AbstractMultiPrimitive clone) { |
Also available in: Unified diff