Revision 28 org.gvsig.sextante/trunk/org.gvsig.sextante.app/org.gvsig.sextante.app.algorithm/org.gvsig.sextante.app.algorithm.clip/src/main/java/org/gvsig/sextante/app/algorithm/clip/ClipOperation.java
ClipOperation.java | ||
---|---|---|
53 | 53 |
private Geometry clippingConvexHull = null; |
54 | 54 |
|
55 | 55 |
private DALFeaturePersister persister = null; |
56 |
|
|
57 |
private EditableFeature lastEditFeature = null; |
|
56 | 58 |
|
57 | 59 |
public ClipOperation(org.gvsig.fmap.geom.Geometry clip) { |
58 | 60 |
this.clippingConvexHull = Converter.geometryToJts(clip); |
... | ... | |
75 | 77 |
*/ |
76 | 78 |
public EditableFeature invoke(org.gvsig.fmap.geom.Geometry g, Feature feature) { |
77 | 79 |
if(g == null) |
78 |
return null;
|
|
80 |
return lastEditFeature;
|
|
79 | 81 |
|
80 | 82 |
Geometry jtsGeom = Converter.geometryToJts(g); |
81 | 83 |
if(!jtsGeom.getEnvelope().intersects(clippingConvexHull.getEnvelope())) |
82 |
return null;
|
|
84 |
return lastEditFeature;
|
|
83 | 85 |
|
84 | 86 |
if(jtsGeom.intersects(clippingConvexHull)) { |
85 | 87 |
try { |
86 | 88 |
Geometry newGeom = jtsGeom.intersection(clippingConvexHull); |
87 |
return persister.addFeature(feature, newGeom);
|
|
89 |
lastEditFeature = persister.addFeature(feature, newGeom);
|
|
88 | 90 |
} catch(com.vividsolutions.jts.geom.TopologyException e){ |
89 | 91 |
Sextante.addErrorToLog(e); |
90 | 92 |
if(! jtsGeom.isValid()) { |
... | ... | |
97 | 99 |
} |
98 | 100 |
try { |
99 | 101 |
Geometry newGeom = jtsGeom.intersection(clippingConvexHull); |
100 |
return persister.addFeature(feature, newGeom);
|
|
102 |
lastEditFeature = persister.addFeature(feature, newGeom);
|
|
101 | 103 |
} catch(com.vividsolutions.jts.geom.TopologyException ee){ |
102 | 104 |
Sextante.addErrorToLog(ee); |
103 | 105 |
} catch (CreateGeometryException ee) { |
... | ... | |
111 | 113 |
Sextante.addErrorToLog(e); |
112 | 114 |
} |
113 | 115 |
} |
114 |
return null;
|
|
116 |
return lastEditFeature;
|
|
115 | 117 |
} |
116 | 118 |
|
117 | 119 |
/** |
... | ... | |
124 | 126 |
if(g == null) |
125 | 127 |
return; |
126 | 128 |
|
129 |
lastEditFeature = feature; |
|
130 |
|
|
127 | 131 |
Geometry jtsGeom = Converter.geometryToJts(g); |
128 | 132 |
if(!jtsGeom.getEnvelope().intersects(clippingConvexHull.getEnvelope())) |
129 | 133 |
return; |
Also available in: Unified diff