]> git.tdb.fi Git - libs/gl.git/blobdiff - source/builders/primitivebuilder.cpp
Include only tangent in mesh data and calculate binormal on the fly
[libs/gl.git] / source / builders / primitivebuilder.cpp
index dd869908d9240df76b2f48a2308a0396613a35ad..1b36943031e027b25e79a6df170535a905a281fa 100644 (file)
@@ -59,12 +59,13 @@ PrimitiveType PrimitiveBuilder::get_type() const
 
 void PrimitiveBuilder::vertex_(const Vector4 &v)
 {
-       vab.color(col);
-       vab.normal(nor);
-       for(std::map<unsigned, Vector4>::iterator i=texc.begin(); i!=texc.end(); ++i)
-               vab.multitexcoord(i->first, i->second);
-       for(std::map<unsigned, Vector4>::iterator i=attr.begin(); i!=attr.end(); ++i)
-               vab.attrib(i->first, i->second);
+       const VertexFormat &format = array.get_format();
+       for(const unsigned char *a=format.begin(); a!=format.end(); ++a)
+       {
+               unsigned sem = get_attribute_semantic(*a);
+               if(sem<attr.size())
+                       vab.attrib(sem, attr[sem]);
+       }
        vab.vertex(v);
 
        if(in_batch)