1 package net.systemeD.potlatch2.controller {
3 import flash.display.Stage;
4 import net.systemeD.halcyon.connection.*;
5 import net.systemeD.halcyon.Map;
6 import net.systemeD.potlatch2.tools.Parallelise;
7 import net.systemeD.halcyon.Globals;
9 public class SelectedParallelWay extends SelectedWay {
10 private var startlon:Number;
11 private var startlatp:Number;
12 private var parallelise:Parallelise;
14 public function SelectedParallelWay(originalWay:Way) {
15 parallelise = new Parallelise(originalWay);
16 selectedWay=parallelise.parallelWay;
20 override public function processMouseEvent(event:MouseEvent, entity:Entity):ControllerState {
21 if (event.type==MouseEvent.MOUSE_MOVE) {
22 var lon:Number =controller.map.coord2lon(controller.map.mouseX);
23 var latp:Number=controller.map.coord2latp(controller.map.mouseY);
24 var offset:Number=Math.sqrt(Math.pow(lon-startlon,2)+
25 Math.pow(latp-startlatp,2));
26 if (lon<startlon) { offset=-offset; } // ** this should be smarter than just lon<startlon
27 parallelise.draw(offset);
28 } else if (event.type==MouseEvent.MOUSE_UP) {
29 return new SelectedWay(selectedWay);
34 private function sgn(a:Number):Number {
40 override public function enterState():void {
41 controller.map.paint.createWayUI(selectedWay);
42 startlon =controller.map.coord2lon(controller.map.mouseX);
43 startlatp=controller.map.coord2latp(controller.map.mouseY);
44 Globals.vars.root.addDebug("**** -> "+this);
46 override public function exitState():void {
48 Globals.vars.root.addDebug("**** <- "+this);
51 override public function toString():String {
52 return "SelectedParallelWay";