adjust for 3d/multiple
This commit is contained in:
parent
73b60b1289
commit
d6b8149073
2 changed files with 39 additions and 2 deletions
|
|
@ -159,7 +159,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
|
||||||
id := obj.AbsID()
|
id := obj.AbsID()
|
||||||
idToObj[id] = obj
|
idToObj[id] = obj
|
||||||
|
|
||||||
height := obj.Height
|
width, height := obj.Width, obj.Height
|
||||||
if obj.HasLabel() {
|
if obj.HasLabel() {
|
||||||
if obj.HasOutsideBottomLabel() || obj.Icon != nil {
|
if obj.HasOutsideBottomLabel() || obj.Icon != nil {
|
||||||
height += float64(obj.LabelDimensions.Height) + label.PADDING
|
height += float64(obj.LabelDimensions.Height) + label.PADDING
|
||||||
|
|
@ -168,7 +168,14 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
|
||||||
height += float64(obj.LabelDimensions.Height) + label.PADDING
|
height += float64(obj.LabelDimensions.Height) + label.PADDING
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
loadScript += generateAddNodeLine(id, int(obj.Width), int(height))
|
if obj.Style.ThreeDee != nil && obj.Style.ThreeDee.Value == "true" {
|
||||||
|
height += d2target.THREE_DEE_OFFSET
|
||||||
|
width += d2target.THREE_DEE_OFFSET
|
||||||
|
} else if obj.Style.Multiple != nil && obj.Style.Multiple.Value == "true" {
|
||||||
|
height += d2target.MULTIPLE_OFFSET
|
||||||
|
width += d2target.MULTIPLE_OFFSET
|
||||||
|
}
|
||||||
|
loadScript += generateAddNodeLine(id, int(width), int(height))
|
||||||
if obj.Parent != g.Root {
|
if obj.Parent != g.Root {
|
||||||
loadScript += generateAddParentLine(id, obj.Parent.AbsID())
|
loadScript += generateAddParentLine(id, obj.Parent.AbsID())
|
||||||
}
|
}
|
||||||
|
|
@ -258,6 +265,29 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// separate loop so all descendants are placed
|
||||||
|
for _, obj := range g.Objects {
|
||||||
|
if obj.Style.ThreeDee != nil && obj.Style.ThreeDee.Value == "true" {
|
||||||
|
// obj.TopLeft.Y += d2target.THREE_DEE_OFFSET
|
||||||
|
obj.IterDescendants(func(_, child *d2graph.Object) {
|
||||||
|
child.TopLeft.Y += d2target.THREE_DEE_OFFSET
|
||||||
|
})
|
||||||
|
if !obj.IsContainer() {
|
||||||
|
obj.Height -= d2target.THREE_DEE_OFFSET
|
||||||
|
obj.Width -= d2target.THREE_DEE_OFFSET
|
||||||
|
}
|
||||||
|
} else if obj.Style.Multiple != nil && obj.Style.Multiple.Value == "true" {
|
||||||
|
// obj.TopLeft.Y += d2target.MULTIPLE_OFFSET
|
||||||
|
obj.IterDescendants(func(_, child *d2graph.Object) {
|
||||||
|
child.TopLeft.Y += d2target.MULTIPLE_OFFSET
|
||||||
|
})
|
||||||
|
if !obj.IsContainer() {
|
||||||
|
obj.Height -= d2target.MULTIPLE_OFFSET
|
||||||
|
obj.Width -= d2target.MULTIPLE_OFFSET
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for i, edge := range g.Edges {
|
for i, edge := range g.Edges {
|
||||||
val, err := vm.RunString(fmt.Sprintf("JSON.stringify(g.edge(g.edges()[%d]))", i))
|
val, err := vm.RunString(fmt.Sprintf("JSON.stringify(g.edge(g.edges()[%d]))", i))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -1187,6 +1187,13 @@ func drawShape(writer io.Writer, diagramHash string, targetShape d2target.Shape,
|
||||||
var box *geo.Box
|
var box *geo.Box
|
||||||
if labelPosition.IsOutside() {
|
if labelPosition.IsOutside() {
|
||||||
box = s.GetBox()
|
box = s.GetBox()
|
||||||
|
if targetShape.ThreeDee {
|
||||||
|
box.TopLeft.Y -= d2target.THREE_DEE_OFFSET
|
||||||
|
box.Width += d2target.THREE_DEE_OFFSET
|
||||||
|
} else if targetShape.Multiple {
|
||||||
|
box.TopLeft.Y -= d2target.MULTIPLE_OFFSET
|
||||||
|
box.Width += d2target.MULTIPLE_OFFSET
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
box = s.GetInnerBox()
|
box = s.GetInnerBox()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue