import org.simantics.scenegraph.INode;
import org.simantics.scenegraph.g2d.G2DParentNode;
import org.simantics.scenegraph.g2d.nodes.SVGNode;
-import org.simantics.scenegraph.utils.GeometryUtils;
import org.simantics.utils.datastructures.hints.IHintContext.Key;
import org.simantics.utils.datastructures.hints.IHintContext.KeyOf;
ICanvasContext ctx = DiagramNodeUtil.getCanvasContext(node);
AffineTransform canvasTransform = ctx.getHintStack().getHint(Hints.KEY_CANVAS_TRANSFORM);
// for some reason PickContextImpl expands the rectangle by 0.001 (too much) - let's counter it
- double counterExpansion = 0.001;
- double x = boundsInLocal.getX() + counterExpansion;
- double y = boundsInLocal.getY() + counterExpansion;
+ double x = boundsInLocal.getX();
+ double y = boundsInLocal.getY();
double scaledWidth = boundsInLocal.getWidth();
double scaledHeight = boundsInLocal.getHeight();
if (canvasTransform != null) {
- scaledWidth = boundsInLocal.getWidth() / canvasTransform.getScaleX() / 10000.0;
- scaledHeight= boundsInLocal.getHeight() / canvasTransform.getScaleY() / 10000.0;
+ scaledWidth = boundsInLocal.getWidth() / canvasTransform.getScaleX();
+ scaledHeight= boundsInLocal.getHeight() / canvasTransform.getScaleY();
}
- double width = scaledWidth - 2*counterExpansion;
- double height = scaledHeight - 2*counterExpansion;
+ double width = scaledWidth;
+ double height = scaledHeight;
size.setFrame(x, y, width, height);
return size;
public boolean pickTest(IElement e, Shape s, PickPolicy policy) {
DistrictNetworkVertexNode node = e.getHint(KEY_DN_VERTEX_NODE);
Rectangle2D boundsInLocal = node.getBounds();
- ICanvasContext ctx = DiagramNodeUtil.getCanvasContext(node);
- AffineTransform canvasTransform = ctx.getHintStack().getHint(Hints.KEY_CANVAS_TRANSFORM);
- Rectangle2D scaledBounds = new Rectangle2D.Double(boundsInLocal.getX(), boundsInLocal.getY(), boundsInLocal.getWidth() / canvasTransform.getScaleX() * 2, boundsInLocal.getHeight() / canvasTransform.getScaleY() * 2);
Rectangle2D bounds = getBounds(s);
switch (policy) {
case PICK_CONTAINED_OBJECTS: