NewScene returns a new collada empty scene
()
| 17 | |
| 18 | // NewScene returns a new collada empty scene |
| 19 | func (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 | |
| 54 | func (d *Decoder) newNode(cnode *Node) (core.INode, error) { |
| 55 |
nothing calls this directly
no test coverage detected