MCPcopy
hub / github.com/g3n/engine / NewScene

Method NewScene

loader/collada/scene.go:19–52  ·  view source on GitHub ↗

NewScene returns a new collada empty scene

()

Source from the content-addressed store, hash-verified

17
18// NewScene returns a new collada empty scene
19func (d *Decoder) NewScene() (core.INode, error) {
20
21 sc := d.dom.Scene
22 if sc == nil {
23 return nil, fmt.Errorf("No Scene element found")
24 }
25
26 ivs := sc.InstanceVisualScene
27 if ivs == nil {
28 return nil, fmt.Errorf("No InstanceVisualScene element found")
29 }
30
31 vs := findVisualScene(&d.dom, ivs.Url)
32 if vs == nil {
33 return nil, fmt.Errorf("VisualScene id:%s not found", ivs.Url)
34 }
35
36 // Creates parent scene
37 scene := core.NewNode()
38 // Rotate scene if necessary
39 if d.dom.Asset.UpAxis == "Z_UP" {
40 scene.SetRotationX(-math32.Pi / 2)
41 }
42
43 // Creates each node and adds it to the scene
44 for _, n := range vs.Node {
45 node, err := d.newNode(n)
46 if err != nil {
47 return nil, err
48 }
49 scene.Add(node)
50 }
51 return scene, nil
52}
53
54func (d *Decoder) newNode(cnode *Node) (core.INode, error) {
55

Callers

nothing calls this directly

Calls 5

SetRotationXMethod · 0.95
newNodeMethod · 0.95
AddMethod · 0.95
NewNodeFunction · 0.92
findVisualSceneFunction · 0.85

Tested by

no test coverage detected