Skip to content

Commit cedecae

Browse files
committed
xyzplan: NewScene* put parent 2nd and optional per standard
1 parent 60781a7 commit cedecae

2 files changed

Lines changed: 21 additions & 15 deletions

File tree

xyz/xyzcore/scene.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,23 @@ type Scene struct {
4242
}
4343

4444
// NewSceneForScene returns a new [Scene] for existing [xyz.Scene],
45-
// in given parent (if non-nil).
46-
func NewSceneForScene(parent tree.Node, sc *xyz.Scene) *Scene {
45+
// in given parent (optional).
46+
func NewSceneForScene(sc *xyz.Scene, parent ...tree.Node) *Scene {
4747
sc.Destroy() // reset any existing GPU stuff, so it gets properly rebuilt
4848
n := &Scene{XYZ: sc}
4949
ni := any(n).(tree.Node)
50-
n.Scene = parent.(core.Widget).AsWidget().Scene
50+
var p tree.Node
51+
if len(parent) > 0 {
52+
p = parent[0]
53+
n.Scene = p.(core.Widget).AsWidget().Scene
54+
}
5155
tree.InitNode(ni)
52-
if parent == nil {
56+
if p == nil {
5357
n.SetName(n.NodeType().IDName)
5458
return n
5559
}
56-
parent.AsTree().Children = append(parent.AsTree().Children, ni)
57-
tree.SetParent(ni, parent)
60+
p.AsTree().Children = append(p.AsTree().Children, ni)
61+
tree.SetParent(ni, p)
5862
return n
5963
}
6064

xyz/xyzcore/sceneeditor.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,23 @@ type SceneEditor struct {
2525

2626
// NewSceneForScene returns a new [Scene] for existing [xyz.Scene],
2727
// in given parent (if non-nil).
28-
func NewSceneEditorForScene(parent tree.Node, sc *xyz.Scene) *SceneEditor {
28+
func NewSceneEditorForScene(sc *xyz.Scene, parent ...tree.Node) *SceneEditor {
2929
n := &SceneEditor{}
3030
ni := any(n).(tree.Node)
3131
tree.InitNode(ni)
32-
n.Scene = parent.(core.Widget).AsWidget().Scene
33-
34-
sw := NewSceneForScene(ni, sc)
32+
var p tree.Node
33+
if len(parent) > 0 {
34+
p = parent[0]
35+
n.Scene = p.(core.Widget).AsWidget().Scene
36+
}
37+
sw := NewSceneForScene(sc, ni)
3538
sw.SetName("scene")
36-
37-
if parent == nil {
39+
if p == nil {
3840
n.SetName(n.NodeType().IDName)
39-
} else {
40-
parent.AsTree().Children = append(parent.AsTree().Children, ni)
41-
tree.SetParent(ni, parent)
41+
return n
4242
}
43+
p.AsTree().Children = append(p.AsTree().Children, ni)
44+
tree.SetParent(ni, p)
4345
return n
4446
}
4547

0 commit comments

Comments
 (0)