parseKinematicsJointParameter method
Map<String, dynamic>
parseKinematicsJointParameter(
- XmlElement xml
)
Implementation
Map<String,dynamic> parseKinematicsJointParameter(XmlElement xml ) {
final Map<String,dynamic> data = {
'sid': xml.getAttribute( 'sid' ),
'name': xml.getAttribute( 'name' ) ?? '',
'axis': Vector3(),
'limits': {
'min': 0.0,
'max': 0.0
},
'type': xml.name.local,
'static': false,
'zeroPosition': 0,
'middlePosition': 0
};
for (final child in xml.descendantElements) {
switch ( child.name.local ) {
case 'axis':
final array = parseFloats( child.innerText );
(data['axis'] as Vector3).copyFromArray( array );
break;
case 'limits':
final max = child.getElement( 'max' )!;
final min = child.getElement( 'min' )!;
data['limits']['max'] = double.parse( max.innerText );
data['limits']['min'] = double.parse( min.innerText );
break;
}
}
if ( data['limits']['min'] >= data['limits']['max'] ) {
data['static'] = true;
}
data['middlePosition'] = ( data['limits']['min'] + data['limits']['max'] ) / 2.0;
return data;
}