public static final DNEdgeInternalSize INSTANCE = new DNEdgeInternalSize();
- private ThreadLocal<Path2D> path = new ThreadLocal<Path2D>() {
- protected Path2D initialValue() { return new Path2D.Double(); }
- };
-
@Override
public Rectangle2D getBounds(IElement e, Rectangle2D size) {
- DistrictNetworkEdge edge = e.getHint(KEY_DN_EDGE);
+ DistrictNetworkEdgeNode edgeNode = e.getHint(KEY_DN_EDGE_NODE);
if (size == null)
size = new Rectangle2D.Double();
- if (edge != null)
- size.setFrame(DistrictNetworkEdgeNode.calculatePath(edge, path.get(), false).getBounds2D());
+ if (edgeNode != null)
+ size.setFrame(edgeNode.getBoundsInLocal());
else
LOGGER.debug("Element {} does not have edge!", e);
@Override
public Shape getElementShape(IElement e) {
- DistrictNetworkEdge edge = e.getHint(KEY_DN_EDGE);
- if (edge != null) {
- return DistrictNetworkEdgeNode.calculatePath(edge, null, false);
+ DistrictNetworkEdgeNode edgeNode = e.getHint(KEY_DN_EDGE_NODE);
+ if (edgeNode != null) {
+ return edgeNode.getPath();
} else {
return getBounds(e, null);
}