Revision 6160
trunk/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/ComplexSelectionCADTool.java | ||
---|---|---|
322 | 322 |
}else if (status.equals("Selection.NextPointPolygon")){ |
323 | 323 |
if (s.equals(PluginServices.getText(this,"end_polygon")) || s.equals("E") || s.equals("e")) { |
324 | 324 |
IGeometry polygon=getGeometryPolygon(null); |
325 |
GeneralPathX gpx=new GeneralPathX(); |
|
326 |
gpx.append(polygon,true); |
|
327 |
if (gpx.isCCW()) { |
|
328 |
gpx.flip(); |
|
329 |
polygon=ShapeFactory.createPolygon2D(gpx); |
|
330 |
} |
|
325 | 331 |
selectWithPolygon(polygon); |
326 | 332 |
pointsPolygon.clear(); |
327 | 333 |
setType(PluginServices.getText(this,"inside_circle")); |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/InternalPolygonCADTool.java | ||
---|---|---|
259 | 259 |
|
260 | 260 |
theIterator.next(); |
261 | 261 |
} //end while loop |
262 |
newGp.moveTo(ps[ps.length-1].getX(),ps[ps.length-1].getY()); |
|
262 |
GeneralPathX gpxInternal=new GeneralPathX(); |
|
263 |
gpxInternal.moveTo(ps[ps.length-1].getX(),ps[ps.length-1].getY()); |
|
263 | 264 |
for (int i=ps.length-1;i>=0;i--){ |
264 |
newGp.lineTo(ps[i].getX(),ps[i].getY());
|
|
265 |
gpxInternal.lineTo(ps[i].getX(),ps[i].getY());
|
|
265 | 266 |
} |
266 |
newGp.lineTo(ps[ps.length-1].getX(),ps[ps.length-1].getY()); |
|
267 |
gpxInternal.lineTo(ps[ps.length-1].getX(),ps[ps.length-1].getY()); |
|
268 |
if (!gpxInternal.isCCW()) { |
|
269 |
gpxInternal.flip(); |
|
270 |
} |
|
271 |
newGp.append(gpxInternal,false); |
|
272 |
|
|
267 | 273 |
return ShapeFactory.createPolygon2D(newGp); |
268 | 274 |
} |
269 | 275 |
private IGeometry createNewPolygonGC(FGeometryCollection gp,Point2D[] ps) { |
Also available in: Unified diff