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

View differences:

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