1 #include "primitivebuilder.h"
6 PrimitiveBuilder::PrimitiveBuilder(VertexArray &a):
13 void PrimitiveBuilder::begin(PrimitiveType t)
16 throw InvalidState("begin() already called");
24 void PrimitiveBuilder::end()
27 throw InvalidState("end() called without begin()");
34 void PrimitiveBuilder::offset(unsigned o)
37 throw InvalidParameterValue("Element offset out of range");
41 void PrimitiveBuilder::element(unsigned i)
44 throw InvalidState("Element specification not between begin() and end()");
45 if(offs+i>=array.size())
46 throw InvalidParameterValue("Element index out of range");
50 PrimitiveType PrimitiveBuilder::get_type() const
53 throw InvalidState("Not between begin() and end()");
57 void PrimitiveBuilder::vertex_(const Vector4 &v)
61 for(std::map<unsigned, Vector4>::iterator i=texc.begin(); i!=texc.end(); ++i)
62 vab.multitexcoord(i->first, i->second);
63 for(std::map<unsigned, Vector4>::iterator i=attr.begin(); i!=attr.end(); ++i)
64 vab.attrib(i->first, i->second);
68 element_(array.size()-1);