parseNodeInstance method

Map<String, dynamic> parseNodeInstance(
  1. XmlElement xml
)

Implementation

Map<String, dynamic> parseNodeInstance(XmlElement xml ) {
  final Map<String,dynamic> data = {
    'id': parseId( xml.getAttribute( 'url' )! ),
    'materials': {},
    'skeletons': []
  };

  for (final child in xml.descendantElements) {
    switch ( child.name.local ) {
      case 'bind_material':
        final instances = child.findAllElements( 'instance_material' );
        for (final instance in instances) {
          final symbol = instance.getAttribute( 'symbol' );
          final target = instance.getAttribute( 'target' );

          data['materials'][ symbol ] = parseId( target! );
        }
        break;
      case 'skeleton':
        data['skeletons'].add( parseId( child.innerText ) );
        break;
      default:
        break;
    }
  }

  return data;
}