+
+ attr = result;
+ return true;
+}
+
+void operator>>(const LexicalConverter &conv, VertexAttribute &a)
+{
+ const string &str = conv.get();
+ try
+ {
+ 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) ||
+ convert_attribute(str, "PADDING", 1, 4, a, PADDING1))
+ return;
+ }
+ catch(...)
+ { }
+
+ throw lexical_error(format("conversion of '%s' to VertexAttribute", str));