+ if(!rebuilding)
+ throw logic_error("!rebuilding");
+
+ if(current!=parts.end() && current->texture==&tex)
+ return *current->mesh;
+
+ for(current=next; current!=parts.end(); ++current)
+ if(current->texture==&tex)
+ {
+ parts.erase(next, current);
+ break;
+ }
+
+ if(current==parts.end())
+ {
+ current = parts.insert(next, CachedPart());
+ current->texture = &tex;
+ current->mesh = make_unique<GL::Mesh>((GL::TEXCOORD2, GL::COLOR4,GL::UNSIGNED_BYTE, GL::VERTEX2));
+ }