import java.awt.geom.Rectangle2D;
import org.simantics.district.network.ModelledCRS;
-import org.simantics.district.network.ontology.DistrictNetworkResource;
import org.simantics.district.network.ui.DistrictNetworkEdge;
import org.simantics.scenegraph.g2d.G2DNode;
import org.simantics.scenegraph.utils.GeometryUtils;
g2d.setStroke(STROKE);
}
}
- // render
- g2d.draw(edge.getPath());
+ g2d.draw(calculatePath(edge));
+
// Reset
g2d.setStroke(oldStroke);
g2d.setColor(oldColor);
g2d.setTransform(ot);
}
+ public static Path2D calculatePath(DistrictNetworkEdge edge) {
+ // Convert to screen coordinates
+ double startX = ModelledCRS.longitudeToX(edge.getStartPoint().getX());
+ double startY = ModelledCRS.latitudeToY(edge.getStartPoint().getY());
+ double endX = ModelledCRS.longitudeToX(edge.getEndPoint().getX());
+ double endY = ModelledCRS.latitudeToY(edge.getEndPoint().getY());
+
+ // render
+ Path2D path = new Path2D.Double();
+ path.moveTo(startX, startY);
+ path.lineTo(endX, endY);
+ return path;
+ }
+
private boolean isSelected() {
return NodeUtil.isSelected(this, 1);
}
}
private Rectangle2D calculateBounds(Rectangle2D rect) {
- return edge.getBounds(rect);
+ return calculatePath(edge).getBounds2D();
}
public void setDNEdge(DistrictNetworkEdge edge) {