Hello.
I've had an issue cloning an already loaded obj file. When accessing any values of the cloned node, the program crashes.
// Open OBJ file
decoder, err := obj.Decode(OBJ_FILE, "") // Empty string to auto-detect matlib
if err != nil {
return
}
for _, material := range decoder.Materials {
// Force Kd to be white. Otherwise this model will be black despite texture being loaded successfully
material.Diffuse.R = 1.0
material.Diffuse.G = 1.0
material.Diffuse.B = 1.0
}
// Creates a new node with all the objects in the decoded file and adds it to the scene
group, err := decoder.NewGroup()
if err != nil {
return
}
scene.Add(group)
clone1 := group.Clone().(*core.Node)
clone1.SetPosition(1, 2, 3) // crashes here
scene.Add(clone1)
Trying to analyze the returned value of the cloned function also ran into the same issue.
/// above is same as before...
scene.Add(group)
fmt.Printf("Type of the original is %T\n", group)
clone1 := group.Clone()
fmt.Printf("Type of the clone is %T\n", clone1) // crashes here
clone1Casted := clone1.(*core.Node)
clone1Casted.SetPosition(1, 2, 3)
scene.Add(clone1Casted)
Results in:
Type of the original is *core.Node
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x48 pc=0x4d2f66]
A workaround was to create a custom clone function:
func cloneCustom(original *core.Node) *core.Node {
clone := core.NewNode()
clone.Dispatcher.Initialize()
clone.SetName(original.Name() + " (Clone)")
for _, child := range original.Children() {
clone.Add(child.Clone())
}
return clone
}
G3N Discord discussion:
https://discordapp.com/channels/877904175546122261/877913551853981697/1372632429025689741
Hello.
I've had an issue cloning an already loaded obj file. When accessing any values of the cloned node, the program crashes.
Trying to analyze the returned value of the cloned function also ran into the same issue.
Results in:
A workaround was to create a custom clone function:
G3N Discord discussion:
https://discordapp.com/channels/877904175546122261/877913551853981697/1372632429025689741