Revision 44617 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.geometry/org.gvsig.fmap.geometry.jts/src/main/java/org/gvsig/fmap/geom/jts/primitive/surface/circle/AbstractCircle.java
AbstractCircle.java | ||
---|---|---|
30 | 30 |
import org.cresques.cts.ICoordTrans; |
31 | 31 |
import org.gvsig.fmap.geom.Geometry; |
32 | 32 |
|
33 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
34 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
|
35 | 33 |
import org.gvsig.fmap.geom.jts.gputils.DefaultGeneralPathX; |
36 | 34 |
import org.gvsig.fmap.geom.jts.primitive.point.Point2D; |
37 | 35 |
import org.gvsig.fmap.geom.jts.primitive.point.PointJTS; |
... | ... | |
41 | 39 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
42 | 40 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
43 | 41 |
import org.gvsig.fmap.geom.primitive.Line; |
42 |
import org.gvsig.fmap.geom.primitive.OrientablePrimitive; |
|
44 | 43 |
import org.gvsig.fmap.geom.primitive.Point; |
45 | 44 |
import org.gvsig.fmap.geom.primitive.Polygon; |
46 | 45 |
import org.gvsig.fmap.geom.primitive.Ring; |
47 | 46 |
import org.gvsig.tools.exception.BaseException; |
48 |
import org.gvsig.tools.locator.LocatorException; |
|
49 | 47 |
|
50 | 48 |
|
51 | 49 |
/** |
... | ... | |
88 | 86 |
} |
89 | 87 |
|
90 | 88 |
/** |
91 |
* @param initialPoint
|
|
89 |
* @param point
|
|
92 | 90 |
* @return |
93 | 91 |
*/ |
94 | 92 |
protected abstract Point fixPoint(Point point); |
... | ... | |
100 | 98 |
this.center = fixPoint(center); |
101 | 99 |
} |
102 | 100 |
|
103 |
/* (non-Javadoc) |
|
104 |
* @see org.gvsig.fmap.geom.primitive.Circle#getCenter() |
|
105 |
*/ |
|
106 | 101 |
public Point getCenter() { |
107 | 102 |
return this.center; |
108 | 103 |
} |
... | ... | |
114 | 109 |
this.radius = radius; |
115 | 110 |
} |
116 | 111 |
|
117 |
/* (non-Javadoc) |
|
118 |
* @see org.gvsig.fmap.geom.primitive.Circle#getRadious() |
|
119 |
*/ |
|
120 | 112 |
public double getRadious() { |
121 | 113 |
return this.radius; |
122 | 114 |
} |
123 | 115 |
|
124 |
/* (non-Javadoc) |
|
125 |
* @see org.gvsig.fmap.geom.Geometry#getDimension() |
|
126 |
*/ |
|
116 |
@Override |
|
127 | 117 |
public int getDimension() { |
128 | 118 |
return this.center.getDimension(); |
129 | 119 |
} |
130 | 120 |
|
131 |
/* (non-Javadoc) |
|
132 |
* @see org.gvsig.fmap.geom.Geometry#isSimple() |
|
133 |
*/ |
|
121 |
@Override |
|
134 | 122 |
public boolean isSimple() { |
135 | 123 |
return true; |
136 | 124 |
} |
137 | 125 |
|
138 |
/* (non-Javadoc) |
|
139 |
* @see org.gvsig.fmap.geom.primitive.Circle#setPoints(org.gvsig.fmap.geom.primitive.Point, org.gvsig.fmap.geom.primitive.Point) |
|
140 |
*/ |
|
141 | 126 |
public void setPoints(Point center, Point radius) { |
142 | 127 |
setCenter(center); |
143 | 128 |
this.radius = ((PointJTS)radius).getJTSCoordinate().distance(((PointJTS)this.center).getJTSCoordinate()); |
144 | 129 |
} |
145 | 130 |
|
146 |
/* (non-Javadoc) |
|
147 |
* @see org.gvsig.fmap.geom.primitive.Circle#setPoints(org.gvsig.fmap.geom.primitive.Point, double) |
|
148 |
*/ |
|
149 | 131 |
public void setPoints(Point center, double radius) { |
150 | 132 |
setCenter(center); |
151 | 133 |
this.radius = radius; |
152 | 134 |
} |
153 | 135 |
|
154 |
/* (non-Javadoc) |
|
155 |
* @see org.gvsig.fmap.geom.jts.GeometryJTS#is3D() |
|
156 |
*/ |
|
136 |
@Override |
|
157 | 137 |
public boolean is3D() { |
158 | 138 |
return ((PointJTS)center).is3D(); |
159 | 139 |
} |
160 | 140 |
|
161 |
/* (non-Javadoc) |
|
162 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#getCoordinateAt(int, int) |
|
163 |
*/ |
|
141 |
@Override |
|
164 | 142 |
public double getCoordinateAt(int index, int dimension) { |
165 | 143 |
String message = "Calling deprecated method setPoints of a circle"; |
166 | 144 |
notifyDeprecated(message); |
167 | 145 |
throw new UnsupportedOperationException(message); |
168 | 146 |
} |
169 | 147 |
|
170 |
/* (non-Javadoc) |
|
171 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#setCoordinateAt(int, int, double) |
|
172 |
*/ |
|
173 |
public void setCoordinateAt(int index, int dimension, double value) { |
|
148 |
@Override |
|
149 |
public OrientablePrimitive setCoordinateAt(int index, int dimension, double value) { |
|
174 | 150 |
String message = "Calling deprecated method setPoints of a circle"; |
175 | 151 |
notifyDeprecated(message); |
176 | 152 |
throw new UnsupportedOperationException(message); |
177 | 153 |
} |
178 | 154 |
|
179 |
/* (non-Javadoc) |
|
180 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#addVertex(org.gvsig.fmap.geom.primitive.Point) |
|
181 |
*/ |
|
182 |
public void addVertex(Point point) { |
|
155 |
@Override |
|
156 |
public OrientablePrimitive addVertex(Point point) { |
|
183 | 157 |
String message = "Calling deprecated method setPoints of a circle"; |
184 | 158 |
notifyDeprecated(message); |
185 | 159 |
throw new UnsupportedOperationException(message); |
186 | 160 |
} |
187 | 161 |
|
188 |
/* (non-Javadoc) |
|
189 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#addVertex(double, double) |
|
190 |
*/ |
|
191 |
public void addVertex(double x, double y) { |
|
162 |
@Override |
|
163 |
public OrientablePrimitive addVertex(double x, double y) { |
|
192 | 164 |
String message = "Calling deprecated method setPoints of a circle"; |
193 | 165 |
notifyDeprecated(message); |
194 | 166 |
throw new UnsupportedOperationException(message); |
195 | 167 |
} |
196 | 168 |
|
197 |
/* (non-Javadoc) |
|
198 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#addVertex(double, double, double) |
|
199 |
*/ |
|
200 |
public void addVertex(double x, double y, double z) { |
|
169 |
@Override |
|
170 |
public OrientablePrimitive addVertex(double x, double y, double z) { |
|
201 | 171 |
String message = "Calling deprecated method setPoints of a circle"; |
202 | 172 |
notifyDeprecated(message); |
203 | 173 |
throw new UnsupportedOperationException(message); |
204 | 174 |
} |
205 | 175 |
|
206 |
/* (non-Javadoc) |
|
207 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#removeVertex(int) |
|
208 |
*/ |
|
176 |
@Override |
|
209 | 177 |
public void removeVertex(int index) { |
210 | 178 |
String message = "Calling deprecated method setPoints of a circle"; |
211 | 179 |
notifyDeprecated(message); |
212 | 180 |
throw new UnsupportedOperationException(message); |
213 | 181 |
} |
214 | 182 |
|
215 |
/* (non-Javadoc) |
|
216 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#getVertex(int) |
|
217 |
*/ |
|
183 |
@Override |
|
218 | 184 |
public Point getVertex(int index) { |
219 | 185 |
String message = "Calling deprecated method setPoints of a circle"; |
220 | 186 |
notifyDeprecated(message); |
221 | 187 |
throw new UnsupportedOperationException(message); |
222 | 188 |
} |
223 | 189 |
|
224 |
/* (non-Javadoc) |
|
225 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#getNumVertices() |
|
226 |
*/ |
|
190 |
@Override |
|
227 | 191 |
public int getNumVertices() { |
228 | 192 |
String message = "Calling deprecated method getNumVertices of a circle"; |
229 | 193 |
notifyDeprecated(message); |
230 | 194 |
throw new UnsupportedOperationException(message); |
231 | 195 |
} |
232 | 196 |
|
233 |
/* (non-Javadoc) |
|
234 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#insertVertex(int, org.gvsig.fmap.geom.primitive.Point) |
|
235 |
*/ |
|
236 |
public void insertVertex(int index, Point p) { |
|
197 |
@Override |
|
198 |
public OrientablePrimitive insertVertex(int index, Point p) { |
|
237 | 199 |
String message = "Calling deprecated method setPoints of a circle"; |
238 | 200 |
notifyDeprecated(message); |
239 | 201 |
throw new UnsupportedOperationException(message); |
240 | 202 |
} |
241 | 203 |
|
242 |
/* (non-Javadoc) |
|
243 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#setVertex(int, org.gvsig.fmap.geom.primitive.Point) |
|
244 |
*/ |
|
245 |
public void setVertex(int index, Point p) { |
|
204 |
@Override |
|
205 |
public OrientablePrimitive setVertex(int index, Point p) { |
|
246 | 206 |
String message = "Calling deprecated method setPoints of a circle"; |
247 | 207 |
notifyDeprecated(message); |
248 | 208 |
throw new UnsupportedOperationException(message); |
249 | 209 |
} |
250 | 210 |
|
251 |
/* (non-Javadoc) |
|
252 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#setGeneralPath(org.gvsig.fmap.geom.primitive.GeneralPathX) |
|
253 |
*/ |
|
211 |
@Override |
|
254 | 212 |
public void setGeneralPath(GeneralPathX generalPathX) { |
255 | 213 |
String message = "Calling deprecated method setPoints of a circle"; |
256 | 214 |
notifyDeprecated(message); |
257 | 215 |
throw new UnsupportedOperationException(message); |
258 | 216 |
} |
259 | 217 |
|
260 |
/* (non-Javadoc) |
|
261 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#addMoveToVertex(org.gvsig.fmap.geom.primitive.Point) |
|
262 |
*/ |
|
218 |
@Override |
|
263 | 219 |
public void addMoveToVertex(Point point) { |
264 | 220 |
String message = "Calling deprecated method setPoints of a circle"; |
265 | 221 |
notifyDeprecated(message); |
266 | 222 |
throw new UnsupportedOperationException(message); |
267 | 223 |
} |
268 | 224 |
|
269 |
/* (non-Javadoc) |
|
270 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#closePrimitive() |
|
271 |
*/ |
|
225 |
@Override |
|
272 | 226 |
public void closePrimitive() { |
273 | 227 |
String message = "Calling deprecated method setPoints of a circle"; |
274 | 228 |
notifyDeprecated(message); |
275 | 229 |
throw new UnsupportedOperationException(message); |
276 | 230 |
} |
277 | 231 |
|
278 |
/* (non-Javadoc) |
|
279 |
* @see org.gvsig.fmap.geom.primitive.OrientablePrimitive#ensureCapacity(int) |
|
280 |
*/ |
|
281 |
public void ensureCapacity(int capacity) { |
|
232 |
@Override |
|
233 |
public OrientablePrimitive ensureCapacity(int capacity) { |
|
282 | 234 |
String message = "Calling deprecated method ensureCapacity of a circle"; |
283 | 235 |
notifyDeprecated(message); |
284 | 236 |
throw new UnsupportedOperationException(message); |
285 | 237 |
} |
286 | 238 |
|
287 |
/* (non-Javadoc) |
|
288 |
* @see org.gvsig.fmap.geom.Geometry#getShape(java.awt.geom.AffineTransform) |
|
289 |
*/ |
|
239 |
@Override |
|
290 | 240 |
public Shape getShape(AffineTransform affineTransform) { |
291 | 241 |
return new DefaultGeneralPathX(getPathIterator(affineTransform),false,0); |
292 | 242 |
} |
293 | 243 |
|
294 |
/* (non-Javadoc) |
|
295 |
* @see org.gvsig.fmap.geom.Geometry#getShape() |
|
296 |
*/ |
|
244 |
@Override |
|
297 | 245 |
public Shape getShape() { |
298 | 246 |
return getShape(null); |
299 | 247 |
} |
300 | 248 |
|
301 |
/* (non-Javadoc) |
|
302 |
* @see org.gvsig.fmap.geom.Geometry#getPathIterator(java.awt.geom.AffineTransform) |
|
303 |
*/ |
|
249 |
@Override |
|
304 | 250 |
public PathIterator getPathIterator(AffineTransform at) { |
305 | 251 |
return this.getPathIterator(at, getManager().getFlatness()); |
306 | 252 |
} |
307 | 253 |
|
308 |
/* (non-Javadoc) |
|
309 |
* @see org.gvsig.fmap.geom.Geometry#getPathIterator(java.awt.geom.AffineTransform, double) |
|
310 |
*/ |
|
254 |
@Override |
|
311 | 255 |
public PathIterator getPathIterator(AffineTransform at, double flatness) { |
312 | 256 |
|
313 | 257 |
java.awt.geom.Point2D.Double center = new java.awt.geom.Point2D.Double(this.center.getX(), this.center.getY()); |
... | ... | |
316 | 260 |
return arco.getPathIterator(at, flatness); |
317 | 261 |
} |
318 | 262 |
|
319 |
/* (non-Javadoc) |
|
320 |
* @see org.gvsig.fmap.geom.Geometry#getGeneralPath() |
|
321 |
*/ |
|
263 |
@Override |
|
322 | 264 |
public GeneralPathX getGeneralPath() { |
323 | 265 |
GeneralPathX gp = new DefaultGeneralPathX(getPathIterator(null, getManager().getFlatness()), is3D(), 0.0); |
324 | 266 |
return gp; |
325 | 267 |
} |
326 | 268 |
|
327 |
/* (non-Javadoc) |
|
328 |
* @see org.gvsig.fmap.geom.primitive.Surface#getNumInteriorRings() |
|
329 |
*/ |
|
269 |
@Override |
|
330 | 270 |
public int getNumInteriorRings() { |
331 | 271 |
String message = "Calling deprecated method getNumInteriorRings of a circle"; |
332 | 272 |
notifyDeprecated(message); |
333 | 273 |
throw new UnsupportedOperationException(message); |
334 | 274 |
} |
335 | 275 |
|
336 |
/* (non-Javadoc) |
|
337 |
* @see org.gvsig.fmap.geom.primitive.Surface#getInteriorRing(int) |
|
338 |
*/ |
|
276 |
@Override |
|
339 | 277 |
public Ring getInteriorRing(int index) { |
340 | 278 |
String message = "Calling deprecated method getInteriorRing of a circle"; |
341 | 279 |
notifyDeprecated(message); |
342 | 280 |
throw new UnsupportedOperationException(message); |
343 | 281 |
} |
344 | 282 |
|
345 |
/* (non-Javadoc) |
|
346 |
* @see org.gvsig.fmap.geom.primitive.Surface#addInteriorRing(org.gvsig.fmap.geom.primitive.Ring) |
|
347 |
*/ |
|
283 |
@Override |
|
348 | 284 |
public void addInteriorRing(Ring ring) { |
349 | 285 |
String message = "Calling deprecated method addInteriorRing of a circle"; |
350 | 286 |
notifyDeprecated(message); |
351 | 287 |
throw new UnsupportedOperationException(message); |
352 | 288 |
} |
353 | 289 |
|
354 |
/* (non-Javadoc) |
|
355 |
* @see org.gvsig.fmap.geom.primitive.Surface#addInteriorRing(org.gvsig.fmap.geom.primitive.Line) |
|
356 |
*/ |
|
290 |
@Override |
|
357 | 291 |
public void addInteriorRing(Line ring) { |
358 | 292 |
String message = "Calling deprecated method addInteriorRing of a circle"; |
359 | 293 |
notifyDeprecated(message); |
360 | 294 |
throw new UnsupportedOperationException(message); |
361 | 295 |
} |
362 | 296 |
|
363 |
/* (non-Javadoc) |
|
364 |
* @see org.gvsig.fmap.geom.primitive.Surface#addInteriorRing(org.gvsig.fmap.geom.primitive.Polygon) |
|
365 |
*/ |
|
297 |
@Override |
|
366 | 298 |
public void addInteriorRing(Polygon polygon) { |
367 | 299 |
String message = "Calling unsupported method addInteriorRing of a circle"; |
368 | 300 |
notifyDeprecated(message); |
369 | 301 |
throw new UnsupportedOperationException(message); |
370 | 302 |
} |
371 |
/* (non-Javadoc) |
|
372 |
* @see org.gvsig.fmap.geom.primitive.Surface#removeInteriorRing(int) |
|
373 |
*/ |
|
303 |
|
|
304 |
@Override |
|
374 | 305 |
public void removeInteriorRing(int index) { |
375 | 306 |
String message = "Calling deprecated method removeInteriorRing of a circle"; |
376 | 307 |
notifyDeprecated(message); |
377 | 308 |
throw new UnsupportedOperationException(message); |
378 | 309 |
} |
379 | 310 |
|
380 |
/* (non-Javadoc) |
|
381 |
* @see org.gvsig.fmap.geom.Geometry#reProject(org.cresques.cts.ICoordTrans) |
|
382 |
*/ |
|
311 |
@Override |
|
383 | 312 |
public void reProject(ICoordTrans ct) { |
384 | 313 |
//FIXME: Esto solo ser?a correcto para transformaciones de traslaci?n, rotaci?n y escala |
385 | 314 |
// Ser?a incorrecto para las de deformaci?n en cizallamiento |
... | ... | |
402 | 331 |
} |
403 | 332 |
} |
404 | 333 |
|
405 |
/* (non-Javadoc) |
|
406 |
* @see org.gvsig.fmap.geom.Geometry#transform(java.awt.geom.AffineTransform) |
|
407 |
*/ |
|
334 |
@Override |
|
408 | 335 |
public void transform(AffineTransform at) { |
409 | 336 |
//FIXME: Esto solo ser?a correcto para transformaciones de traslaci?n, rotaci?n y escala |
410 | 337 |
// Ser?a incorrecto para las de deformaci?n en cizallamiento |
... | ... | |
420 | 347 |
|
421 | 348 |
} |
422 | 349 |
|
423 |
/* (non-Javadoc) |
|
424 |
* @see org.gvsig.fmap.geom.jts.GeometryJTS#flip() |
|
425 |
*/ |
|
350 |
@Override |
|
426 | 351 |
public void flip() throws GeometryOperationNotSupportedException, GeometryOperationException { |
427 | 352 |
//FIXME: throw UnssupportedOperationException or do nothing? |
428 | 353 |
// String message = "Can't flip a circle"; |
Also available in: Unified diff