/*---------------- FILE HEADER --------------------------------------- This file is part of Geoide. Copyright (C) 2005-2006 by: IDgis B.V. http://www.idgis.nl This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Contact: Herman Assink IDgis bv P.O. Box 15 7450 AA Holten The Netherlands E-Mail: herman.assink@idgis.nl * @version 1.4.0 * @author IDgis team * ------------------------------------------------------------------------*/ import nl.idgis.giclient.geoma.Ellipse; import nl.idgis.giclient.geoma.LinearRing; import nl.idgis.giclient.geoma.Point; import nl.idgis.giclient.gui.mapviewer.MapGeometry; import nl.idgis.giclient.gui.mapviewer.MapViewer; import nl.idgis.giclient.modes.MapViewerEditCreate; class nl.idgis.giclient.modes.MapViewerCreateEllipse extends MapViewerEditCreate { function performPress(mapViewer:MapViewer,pressX:Number,pressY:Number, worldPoint:Point):Void { var point:Point = mapViewer.pixel2Point(pressX, pressY); if (mapViewer.getGeometryLayer().getSelectedMapGeometry() == null) { createGeometry(mapViewer, point); } else { _root["apiInterpreter"].onChangeGeometry(mapViewer.getGeometryLayer().getSelectedMapGeometry().getGeometry(), true); mapViewer.getGeometryLayer().setSelectedMapGeometry(null); mapViewer.ruler.setActiveMode(mapViewer.ruler.getDefaultEditMode()); } } function performMouseMove(mapViewer:MapViewer):Void { var selectedMapGeometry:MapGeometry = mapViewer.getGeometryLayer().getSelectedMapGeometry(); if (selectedMapGeometry != null) { var point:Point = mapViewer.pixel2Point(mapViewer._xmouse,mapViewer._ymouse); var ellipse:Ellipse = Ellipse(selectedMapGeometry.getGeometry()); ellipse.setRadiusPoint1XY(point.getX(), point.getY()); ellipse.setRadius2((ellipse.getRadius1() / 2), false); selectedMapGeometry.onChangeGeometry(); } } private function createGeometry(mapViewer:MapViewer, point:Point):Void { var points:Array = new Array(point, point); var linearRing:LinearRing = new LinearRing(point.getSRS(), points); linearRing.addPoint(new Point(point.getSRS(), point.getX(), point.getY())); linearRing.addPoint(new Point(point.getSRS(), point.getX(), point.getY())); linearRing.addPoint(new Point(point.getSRS(), point.getX(), point.getY())); var ellipse:Ellipse = new Ellipse(point.getSRS(), linearRing); addGeometry(mapViewer, ellipse); setDrawingMapGeometry(mapViewer); } }