Revision 37 org.gvsig.sextante/trunk/org.gvsig.sextante.app/org.gvsig.sextante.app.algorithm/org.gvsig.sextante.app.algorithm.base/src/main/java/org/gvsig/sextante/app/algorithm/base/core/ScalableUnionOperation.java

View differences:

ScalableUnionOperation.java
29 29
import org.gvsig.fmap.dal.feature.Feature;
30 30
import org.gvsig.fmap.dal.feature.FeatureSet;
31 31
import org.gvsig.fmap.dal.feature.FeatureStore;
32
import org.gvsig.fmap.geom.GeometryLocator;
33
import org.gvsig.fmap.geom.GeometryManager;
34 32
import org.gvsig.fmap.geom.Geometry.TYPES;
35
import org.gvsig.fmap.geom.operation.GeometryOperationContext;
36
import org.gvsig.fmap.geom.operation.GeometryOperationException;
37
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
38
import org.gvsig.fmap.geom.operation.fromjts.FromJTS;
39
import org.gvsig.fmap.geom.operation.tojts.ToJTS;
33
import org.gvsig.sextante.app.algorithm.base.util.GeometryUtil;
40 34
import org.gvsig.sextante.app.algorithm.base.util.JTSFacade;
41 35
import org.gvsig.sextante.app.algorithm.base.visitor.exception.VisitorException;
42 36
import org.gvsig.sextante.app.extension.core.gvVectorLayer;
......
58 52
	//(polygon features are optimized in jts with buffer(0) trick, the
59 53
	//nor the rest
60 54
	private Geometry            geometry         = null;
61
	private GeometryManager     geometryManager  = null;
62 55
	
63
	/*public ScalableUnionOperation(IVectorLayer input) {
64
		this.inputLayer = input;
65
		geometryManager = GeometryLocator.getGeometryManager();
66
	}*/
67
	
68
	public ScalableUnionOperation() {
69
		geometryManager = GeometryLocator.getGeometryManager();
70
	}
71
	
72 56
	/*
73 57
	 * (non-Javadoc)
74 58
	 * @see org.gvsig.sextante.app.algorithm.base.core.IOperation#invoke(org.gvsig.fmap.geom.Geometry, org.gvsig.fmap.dal.feature.Feature)
......
80 64
		if(g.getGeometryType().getType() != TYPES.SURFACE)
81 65
			return null;
82 66
		
83
		com.vividsolutions.jts.geom.Geometry actualGeometry = null;
84
		try {
85
			actualGeometry = (Geometry)g.invokeOperation(ToJTS.CODE, null);
86
		} catch (GeometryOperationNotSupportedException e1) {
87
			Sextante.addErrorToLog(e1);
88
		} catch (GeometryOperationException e1) {
89
			Sextante.addErrorToLog(e1);
90
		}
67
		com.vividsolutions.jts.geom.Geometry actualGeometry = GeometryUtil.geomToJTS(g);
91 68
		
92 69
		if(geometry == null){
93 70
			geometry = actualGeometry;
......
126 103
	 * @return
127 104
	 */
128 105
	private org.gvsig.fmap.geom.Geometry getGeometry() {
129
		GeometryOperationContext ctx = new GeometryOperationContext();
130
		ctx.setAttribute(FromJTS.PARAM, geometry);
131
		try {
132
			return (org.gvsig.fmap.geom.Geometry)geometryManager.invokeOperation(FromJTS.NAME, ctx);
133
		} catch (GeometryOperationNotSupportedException e) {
134
			Sextante.addErrorToLog(e);
135
			return null;
136
		} catch (GeometryOperationException e) {
137
			Sextante.addErrorToLog(e);
138
			return null;
139
		}
106
		return GeometryUtil.jtsToGeom(geometry);
140 107
	}
141 108
	
142 109
	/**
......
152 119
		if(g.getGeometryType().getType() != TYPES.SURFACE)
153 120
			return;
154 121
		
155
		com.vividsolutions.jts.geom.Geometry actualGeometry = null;
156
		try {
157
			actualGeometry = (Geometry)g.invokeOperation(ToJTS.CODE, null);
158
		} catch (GeometryOperationNotSupportedException e1) {
159
			Sextante.addErrorToLog(e1);
160
		} catch (GeometryOperationException e1) {
161
			Sextante.addErrorToLog(e1);
162
		}
122
		com.vividsolutions.jts.geom.Geometry actualGeometry = GeometryUtil.geomToJTS(g);
163 123
		
164 124
		if(geometry == null){
165 125
			geometry = actualGeometry;

Also available in: Unified diff