diff --git a/d2graph/layout.go b/d2graph/layout.go index fa1f63341..d0f5a53da 100644 --- a/d2graph/layout.go +++ b/d2graph/layout.go @@ -334,7 +334,7 @@ func (obj *Object) GetMargin() geo.Spacing { } } - if obj.Icon != nil && obj.IconPosition != nil && obj.Shape.Value != d2target.ShapeImage { + if obj.HasIcon() && obj.IconPosition != nil { position := label.FromString(*obj.IconPosition) iconSize := float64(d2target.MAX_ICON_SIZE + label.PADDING) @@ -453,7 +453,7 @@ func (edge *Edge) TraceToShape(points []*geo.Point, startIndex, endIndex int) (n } } } - if !overlapsOutsideLabel && edge.Src.Icon != nil && !srcShape.Is(shape.IMAGE_TYPE) { + if !overlapsOutsideLabel && edge.Src.HasIcon() { // assumes IconPosition is set if there is an Icon iconPosition := label.FromString(*edge.Src.IconPosition) if iconPosition.IsOutside() { @@ -535,7 +535,7 @@ func (edge *Edge) TraceToShape(points []*geo.Point, startIndex, endIndex int) (n } } } - if !overlapsOutsideLabel && edge.Dst.Icon != nil && !dstShape.Is(shape.IMAGE_TYPE) { + if !overlapsOutsideLabel && edge.Dst.HasIcon() { // assumes IconPosition is set if there is an Icon iconPosition := label.FromString(*edge.Dst.IconPosition) if iconPosition.IsOutside() { diff --git a/d2layouts/d2dagrelayout/layout.go b/d2layouts/d2dagrelayout/layout.go index 55e00e6fb..fbf618ed7 100644 --- a/d2layouts/d2dagrelayout/layout.go +++ b/d2layouts/d2dagrelayout/layout.go @@ -1351,7 +1351,7 @@ func fitPadding(obj *d2graph.Object) { } } } - if obj.Icon != nil && shapeType != shape.IMAGE_TYPE && obj.IconPosition != nil { + if obj.HasIcon() && obj.IconPosition != nil { iconPosition = label.FromString(*obj.IconPosition) switch iconPosition { case label.InsideTopLeft, label.InsideTopCenter, label.InsideTopRight, @@ -1386,7 +1386,7 @@ func fitPadding(obj *d2graph.Object) { innerBoxes = append(innerBoxes, *childLabelBox) } } - if child.Icon != nil && child.Shape.Value != d2target.ShapeImage && child.IconPosition != nil { + if child.HasIcon() && child.IconPosition != nil { childIconPosition = label.FromString(*child.IconPosition) if childIconPosition.IsOutside() { childIconTL := child.GetIconTopLeft()