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

Method decNode

loader/collada/library_visual_scenes.go:289–351  ·  view source on GitHub ↗
(nodeStart xml.StartElement, parent *[]*Node)

Source from the content-addressed store, hash-verified

287}
288
289func (d *Decoder) decNode(nodeStart xml.StartElement, parent *[]*Node) error {
290
291 // Get node attributes and appends the new node to its parent
292 n := &Node{}
293 n.Id = findAttrib(nodeStart, "id").Value
294 n.Name = findAttrib(nodeStart, "name").Value
295 n.Sid = findAttrib(nodeStart, "name").Value
296 n.Type = findAttrib(nodeStart, "type").Value
297 n.Node = make([]*Node, 0)
298 *parent = append(*parent, n)
299
300 // Decodes node children
301 for {
302 // Get next child element
303 child, data, err := d.decNextChild(nodeStart)
304 if err != nil || child.Name.Local == "" {
305 return err
306 }
307 if child.Name.Local == "matrix" {
308 err = d.decMatrix(data, n)
309 if err != nil {
310 return err
311 }
312 continue
313 }
314 if child.Name.Local == "rotate" {
315 err = d.decRotate(data, n)
316 if err != nil {
317 return err
318 }
319 continue
320 }
321 if child.Name.Local == "scale" {
322 err = d.decScale(data, n)
323 if err != nil {
324 return err
325 }
326 continue
327 }
328 if child.Name.Local == "translate" {
329 err = d.decTranslate(data, n)
330 if err != nil {
331 return err
332 }
333 continue
334 }
335 if child.Name.Local == "instance_geometry" {
336 err = d.decInstanceGeometry(child, n)
337 if err != nil {
338 return err
339 }
340 continue
341 }
342 // Decodes child node recursively
343 if child.Name.Local == "node" {
344 err = d.decNode(child, &n.Node)
345 if err != nil {
346 return err

Callers 1

decVisualSceneMethod · 0.95

Calls 7

decNextChildMethod · 0.95
decMatrixMethod · 0.95
decRotateMethod · 0.95
decScaleMethod · 0.95
decTranslateMethod · 0.95
decInstanceGeometryMethod · 0.95
findAttribFunction · 0.85

Tested by

no test coverage detected