]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.g2d/src/org/simantics/g2d/diagram/participant/pointertool/PointerInteractor.java
Performance and resource consumption optimization for G2D picking
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / diagram / participant / pointertool / PointerInteractor.java
index fc0f35cb0b2900a58c728812a3ae8b3d89b7d1a2..4f9df238f4b602ec6e95798570ad2cbbb154f04a 100644 (file)
@@ -307,7 +307,7 @@ public class PointerInteractor extends AbstractDiagramParticipant {
         Shape canvasPickRect = getCanvasPickShape(controlPos);
         if (canvasPickRect == null)
             return Collections.emptyList();
-        return TerminalUtil.pickTerminals(diagram, canvasPickRect, true, true);
+        return TerminalUtil.pickTerminals(getContext(), diagram, canvasPickRect, true, true);
     }
 
     public TerminalInfo pickTerminal(Point2D controlPos)
@@ -315,7 +315,7 @@ public class PointerInteractor extends AbstractDiagramParticipant {
         Shape canvasPickRect = getCanvasPickShape(controlPos);
         if (canvasPickRect == null)
             return null;
-        TerminalInfo ti = TerminalUtil.pickTerminal(diagram, canvasPickRect);
+        TerminalInfo ti = TerminalUtil.pickTerminal(getContext(), diagram, canvasPickRect);
         return ti;
     }
 
@@ -421,7 +421,7 @@ public class PointerInteractor extends AbstractDiagramParticipant {
         Shape       canvasPickRect  = GeometryUtils.transformShape(controlPickRect, util.getInverseTransform());
         int selectionId = me.mouseId;
 
-        PickRequest req = new PickRequest(canvasPickRect);
+        PickRequest req = new PickRequest(canvasPickRect).context(getContext());
         req.pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;
         req.pickSorter = pickSorter;
         //req.pickSorter = PickRequest.PickSorter.CONNECTIONS_LAST;
@@ -592,7 +592,7 @@ public class PointerInteractor extends AbstractDiagramParticipant {
         Shape       canvasPickRect  = GeometryUtils.transformShape(controlPickRect, util.getInverseTransform());
         int         selectionId     = me.mouseId;
 
-        PickRequest req             = new PickRequest(canvasPickRect);
+        PickRequest req             = new PickRequest(canvasPickRect).context(getContext());
         req.pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;
         List<IElement> pick         = new ArrayList<IElement>();
         pickContext.pick(diagram, req, pick);
@@ -641,7 +641,7 @@ public class PointerInteractor extends AbstractDiagramParticipant {
         assertDependencies();
 
         Point2D         curCanvasPos    = util.controlToCanvas(me.controlPosition, curCanvasDragPos);
-        PickRequest     req             = new PickRequest(me.startCanvasPos);
+        PickRequest     req             = new PickRequest(me.startCanvasPos).context(getContext());
         req.pickPolicy = PickRequest.PickPolicy.PICK_INTERSECTING_OBJECTS;
         List<IElement>  picks           = new ArrayList<IElement>();
         pickContext.pick(diagram, req, picks);
@@ -652,7 +652,7 @@ public class PointerInteractor extends AbstractDiagramParticipant {
                double pickDist = getPickDistance();
             Rectangle2D     controlPickRect     = new Rectangle2D.Double(me.controlPosition.getX()-pickDist, me.controlPosition.getY()-pickDist, pickDist*2+1, pickDist*2+1);
             Shape           canvasPickRect      = GeometryUtils.transformShape(controlPickRect, util.getInverseTransform());
-            req = new PickRequest(canvasPickRect);
+            req = new PickRequest(canvasPickRect).context(getContext());
             req.pickPolicy = PickRequest.PickPolicy.PICK_INTERSECTING_OBJECTS;
             pickContext.pick(diagram, req, picks);
             //System.out.println("2nd try: " + picks);