(start xml.StartElement, dest *interface{})
| 647 | } |
| 648 | |
| 649 | func (d *Decoder) decColorOrTexture(start xml.StartElement, dest *interface{}) error { |
| 650 | |
| 651 | child, cdata, err := d.decNextChild(start) |
| 652 | if err != nil || child.Name.Local == "" { |
| 653 | return err |
| 654 | } |
| 655 | if child.Name.Local == "color" { |
| 656 | c := &Color{} |
| 657 | c.Sid = findAttrib(child, "sid").Value |
| 658 | *dest = c |
| 659 | var br bytesReader |
| 660 | br.Init(cdata) |
| 661 | idx := 0 |
| 662 | for { |
| 663 | tok := br.TokenNext() |
| 664 | if tok == nil || len(tok) == 0 { |
| 665 | break |
| 666 | } |
| 667 | v, err := strconv.ParseFloat(string(tok), 32) |
| 668 | if err != nil { |
| 669 | return err |
| 670 | } |
| 671 | c.Data[idx] = float32(v) |
| 672 | idx++ |
| 673 | } |
| 674 | return nil |
| 675 | } |
| 676 | if child.Name.Local == "texture" { |
| 677 | t := &Texture{} |
| 678 | t.Texture = findAttrib(child, "texture").Value |
| 679 | t.Texcoord = findAttrib(child, "texcoord").Value |
| 680 | *dest = t |
| 681 | return nil |
| 682 | } |
| 683 | if child.Name.Local == "param" { |
| 684 | return fmt.Errorf("not supported") |
| 685 | } |
| 686 | return nil |
| 687 | } |
| 688 | |
| 689 | func (d *Decoder) decFloatOrParam(start xml.StartElement, dest *interface{}) error { |
| 690 |
no test coverage detected