Revision 22897

View differences:

trunk/extensions/extTopology/src/com/iver/cit/gvsig/cad/SimplifyGeometry.java
91 91
								getActiveLayerEdited().
92 92
								getLayer();
93 93
			
94
			int geometryDimensions = FGeometryUtil.getDimensions(lv.getShapeType());
95 94
			
95
			
96 96
			VectorialLayerEdited vle =
97 97
				(VectorialLayerEdited) CADExtension.getEditionManager().getActiveLayerEdited();
98 98
	         VectorialEditableAdapter vea = vle.getVEA();
......
106 106
	        	 IRowEdited rowEd = (IRowEdited) selectedRow.get(i);
107 107
	        	 IFeature feature = (IFeature) rowEd.getLinkedRow();
108 108
	        	 IGeometry geometry = feature.getGeometry();
109
				 Geometry jtsGeometry = geometry.toJTSGeometry();
110
				 Geometry generalizedGeometry = null;
111
				 if(geometryDimensions == 1)
112
					generalizedGeometry = JtsUtil.douglasPeuckerSimplify(jtsGeometry, JtsUtil.GENERALIZATION_FACTOR.doubleValue());
113
				 else 
114
					generalizedGeometry = JtsUtil.topologyPreservingSimplify(jtsGeometry, JtsUtil.GENERALIZATION_FACTOR.doubleValue());
115 109
				 
116
				 IGeometry newGeometry = NewFConverter.toFMap(generalizedGeometry);
117
				 
110
	        	 IGeometry newGeometry = process(geometry, lv.getShapeType());
111
	        		        				 
118 112
				 DefaultFeature modifiedFeature = (DefaultFeature) feature.cloneRow();
119 113
				 modifiedFeature.setGeometry(newGeometry);
120 114
				 
......
125 119
						 					  rowEd.getIndex()));
126 120
				 
127 121
	         }//for
128
		     vea.endComplexRow("SIMPLIFY_GEOMETRY");
122
		     vea.endComplexRow(getName());
129 123
		     vle.setSelectionCache(VectorialLayerEdited.NOTSAVEPREVIOUS, selectedRowAux);
130 124
			
131 125
		} catch (ReadDriverException e) {
......
135 129
			e.printStackTrace();
136 130
		}
137 131
	}
132
	
133
	
134
	protected IGeometry process(IGeometry originalGeometry, int lyrShapeType){
135
		 int geometryDimensions = FGeometryUtil.getDimensions(lyrShapeType);
136
		 Geometry jtsGeometry = originalGeometry.toJTSGeometry();
137
		 Geometry generalizedGeometry = null;
138
		 if(geometryDimensions == 1)
139
			generalizedGeometry = JtsUtil.douglasPeuckerSimplify(jtsGeometry, JtsUtil.GENERALIZATION_FACTOR.doubleValue());
140
		 else 
141
			generalizedGeometry = JtsUtil.topologyPreservingSimplify(jtsGeometry, JtsUtil.GENERALIZATION_FACTOR.doubleValue());
142
		 
143
		 return NewFConverter.toFMap(generalizedGeometry);
144
	}
138 145

  
139 146
	public void initialize() {
140 147
		registerIcons();
141 148
	}
142 149
	
143
	private void registerIcons(){
150
	protected void registerIcons(){
144 151
		PluginServices.getIconTheme().registerDefault("smooth-geometry",
145 152
													   this.getClass().
146 153
													   getClassLoader().
147 154
													   getResource("images/smooth-geometry.gif")
148 155
		);
149 156
	}
157
	
158
	protected String getName(){
159
		return "SIMPLIFY_GEOMETRY";
160
	}
150 161

  
151 162
	/**
152 163
	 * Returns if this Edit CAD tool is visible. 

Also available in: Unified diff