Revision 22897
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