MCPcopy Create free account
hub / github.com/g3n/engine / decCollada

Method decCollada

loader/collada/collada.go:199–292  ·  view source on GitHub ↗
(dom *Collada)

Source from the content-addressed store, hash-verified

197}
198
199func (d *Decoder) decCollada(dom *Collada) error {
200
201 // Loop to read all first level elements
202 var tok interface{}
203 var err error
204 first := true
205 for {
206 // Reads next token
207 tok, err = d.xmldec.Token()
208 if err == io.EOF {
209 return nil
210 }
211 // If not a start element ignore and continue
212 start, ok := tok.(xml.StartElement)
213 if !ok {
214 continue
215 }
216 // First element must be "COLLADA"
217 if first {
218 if start.Name.Local != "COLLADA" {
219 return fmt.Errorf("Not a COLLADA file")
220 }
221 first = false
222 dom.Version = findAttrib(start, "version").Value
223 continue
224 }
225
226 // Decode specified start elements
227 if start.Name.Local == "asset" {
228 err = d.decAsset(start, &dom.Asset)
229 if err != nil {
230 break
231 }
232 continue
233 }
234 if start.Name.Local == "library_animations" {
235 err = d.decLibraryAnimations(start, dom)
236 if err != nil {
237 break
238 }
239 continue
240 }
241 if start.Name.Local == "library_images" {
242 err = d.decLibraryImages(start, dom)
243 if err != nil {
244 break
245 }
246 continue
247 }
248 if start.Name.Local == "library_effects" {
249 err = d.decLibraryEffects(start, dom)
250 if err != nil {
251 break
252 }
253 continue
254 }
255 if start.Name.Local == "library_lights" {
256 err = d.decLibraryLights(start, dom)

Callers 1

DecodeReaderFunction · 0.80

Calls 10

decAssetMethod · 0.95
decLibraryAnimationsMethod · 0.95
decLibraryImagesMethod · 0.95
decLibraryEffectsMethod · 0.95
decLibraryLightsMethod · 0.95
decLibraryMaterialsMethod · 0.95
decLibraryGeometriesMethod · 0.95
decSceneMethod · 0.95
findAttribFunction · 0.85

Tested by

no test coverage detected