Revision 25027 trunk/libraries/libTopology/src/org/gvsig/topology/topologyrules/MustBeLargerThanClusterTolerance.java

View differences:

MustBeLargerThanClusterTolerance.java
170 170
	public void validateFeature(IFeature feature) {
171 171
		IGeometry geometry = feature.getGeometry();
172 172
		Geometry jtsGeometry = NewFConverter.toJtsGeometry(geometry);
173
		try{
174
			geometrySnapper.snap(jtsGeometry);
173
		try {
174
			if(FGeometryUtil.getDimensions(originLyr.getShapeType()) == 2){
175
				//for polygons we dont try to collapse and use isValid
176
				//because self intersecting polygons will return false
177
				double area = jtsGeometry.getArea();
178
				double minArea = clusterTolerance * clusterTolerance;
179
				if(area < minArea){
180
					TopologyError topologyError = new TopologyError(geometry, this, feature, topology);
181
					topologyError.setID(errorContainer.getErrorFid());
182
					addTopologyError(topologyError);
183
				}
184
			}else{
185
				geometrySnapper.snap(jtsGeometry);
186
				
187
			}
188
		} catch (ReadDriverException e) {
189
			// TODO Auto-generated catch block
190
			e.printStackTrace();
175 191
		}catch(GeometryCollapsedException e){
176 192
			//use an ErrorFactory
177 193
			TopologyError topologyError = new TopologyError(geometry, this, feature, topology);
178 194
			topologyError.setID(errorContainer.getErrorFid());
179 195
			addTopologyError(topologyError);
180 196
		}
197
		
181 198
	}
182 199

  
183 200
	public double getClusterTolerance() {

Also available in: Unified diff