- unsigned n;
- try
- {
- n = lexical_cast<unsigned>(str.substr(8));
- }
- catch(const lexical_error &)
- {
- throw lexical_error(format("conversion of '%s' to VertexComponent", str));
- }
- c = static_cast<VertexComponent>(ATTRIB1+(str[6]-'1')+n*4);
+ if(convert_attribute(str, "VERTEX", 2, 4, a, VERTEX2) ||
+ convert_attribute(str, "COLOR", 3, 4, a, COLOR3) ||
+ convert_attribute(str, "NORMAL", 3, 3, a, NORMAL3) ||
+ convert_attribute(str, "TANGENT", 3, 3, a, TANGENT3) ||
+ convert_attribute(str, "GROUP", 1, 4, a, GROUP1) ||
+ convert_attribute(str, "WEIGHT", 1, 4, a, WEIGHT1) ||
+ convert_attribute(str, "TEXCOORD", 1, 4, a, TEXCOORD1) ||
+ convert_attribute(str, "GENERIC", 1, 4, a, GENERIC1))
+ return;